2013年9月16日

uva 11300

摘要: 分类: 中位数与排序统计学题意: N个人每个人有Ai个金币,综合整除N,每个人可以给相邻的人一定数量的金币(圆环) 如何给使得金币流动数最少,而且每个人最后金币数量一样输入: N,每个人金币Ai输出: 最小的金币流通数目解法: 设Xi为第i个人给第i-1个人的金币数,x1表示第一个人给第四个人,只设置单方向(双向可以抵消) 列方程组 A1 - X1 + X2 = M . . Ai-1 - Xi-1 + Xi+1 = M 有n-1个方程组, Ai和M是常数 优化目的 sigma(|xi|)最小,简... 阅读全文

posted @ 2013-09-16 17:44 小书包_Ray 阅读(150) 评论(0) 推荐(0) 编辑

CLRS 前几章

摘要: 天又翻开CLRS,看了看前几章的习题,做了一些回顾,做一些笔记吧。1.递归式求解常用的主方法以b为base,取a的log,与变量f(n)进行比较,然后三种情况。2. p23 2.3-6 在插入排序中加入二分检索在Insertion-sort中前5-7行向A[1...j -1]寻找一个恰当的位置来放置A[j],在这个过程的同时,把每一个比A[j]大的元素向后移了一位,二分检索可以减少寻找位置的时间,但是不能减少移动元素所需要的时间,因此单独加入二分检索不能减少Insertion-sort所需要的时间。3. p23 2.3-7 设计一个算法,在O(nlgn)以内判断给定集合S中有没有两个数的和为给 阅读全文

posted @ 2013-09-16 16:21 小书包_Ray 阅读(192) 评论(0) 推荐(0) 编辑

uva 11729

摘要: 分类: 贪心题意: 每个人分派任务,分配和完工需要时间,如何安排分配顺序总完工时间最小输入: 任务数N,每个人分配需要的时间B,每个人执行需要的时间J输出: 总完成最快时间、解法:贪心核心:①两个任务交换顺序不会影响其它任务的最终完成时间②那么何种情况下交换两种任务可以减少总时间分两种情况情况一:交换之前前面的任务后结束J[1] >= J[2] + B[2] [B...1][J...........1] [B.2][J.2] B[1]+J[1]是总时间且 > B[2]+B[1]+J[2] 如果交换 交换后完成总时间是 B[2]+B[1]... 阅读全文

posted @ 2013-09-16 10:59 小书包_Ray 阅读(155) 评论(0) 推荐(0) 编辑

uva 11292

摘要: 题意:有n条恶龙,m个骑士,每个骑士能够斩掉直径为x的恶龙需要支付他x的费用,如何聘请骑士费用最小输入:整数n,m 每个龙的直径,每个骑士的能力(费用)输出:最小费用,无解则输出Loowater is doomed解法:贪心#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using na 阅读全文

posted @ 2013-09-16 10:25 小书包_Ray 阅读(118) 评论(0) 推荐(0) 编辑

poj 3253

摘要: 分类: 堆题意: 切割平板为指定的分块大小,每一次切割的费用都是当前木块的长度输入: 切割成的块数N,每块大小xi输出: 最小的切割费用自己练习写一写堆,也可用STL的优先队列 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 ... 阅读全文

posted @ 2013-09-16 09:19 小书包_Ray 阅读(164) 评论(0) 推荐(0) 编辑

poj 1151

摘要: 分类: 线段树题意: 求矩阵面积并输入: 矩阵个数N,每个矩阵的左下角坐标和右上角坐标输出: 矩阵的面积并很久没有做数据结构了,这道题算是比较经典,难度相对适中的吧,今天拿出来写了一遍。数据结构主要是线段树。虽然写过几次了,每次动手写都会遇到一些问题。做个笔记:1.基本算法:将矩形沿着Y方向的平行于X轴的线作为扫描线。核心算法在于对于n – 1条扫描线作的高度差用来算矩阵的面积上面两张是比较好理解的图(来自网络)。线段树的作用就在于保存当前的X轴覆盖区域的长度为多少,每一次,顺着扫描方向,插入一段扫描线更新当前的覆盖区域长度(会有重合)。一个技巧:把下边的边flag设置为true,上面的边设置 阅读全文

posted @ 2013-09-16 09:13 小书包_Ray 阅读(228) 评论(0) 推荐(0) 编辑

导航