摘要: 题意:一个工厂接到了N张订单。他们有M个车间,如果第i张单在第j个车间加工需要花费Zij的时间。现在给出这个Z的矩阵,问做完这N张单需要时间的平均值(总时间/N)包括等待时间。(比如说我在一个车间连续以1个时间单位接了3张单,那么总时间为1+2+3=6,平均值为6/3=2)(N,M 2 #include 3 #include 4 #include 5 #include 6 #define maxn 2600 7 #define maxm 1000000 8 #define INF 1 > q; 32 d[src] = 0; 33 q.pus... 阅读全文
posted @ 2013-11-20 21:56 浙西贫农 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 求补集。题意:给出一列长为n(n 2 int a[1000010],vis[1= 0;i--){11 if(vis[i]) continue;12 for(int j = 0;j < 22;j++){13 if(vis[i|(1<<j)]){14 vis[i] = vis[i|(1<<j)];15 break;16 }17 }18 }19 for(int i = 0;i < n;i++){20 if(v... 阅读全文
posted @ 2013-11-20 21:44 浙西贫农 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 题意:城市中有从左到右排列起来的高度为hi的n个塔。现在要求作出一些改变使得景观更美丽,也就是要从左到右排列起来的塔呈非递减序列。你可以用吊车吊起一座塔然后叠加到左右相邻的任意一座塔上,这样新塔的高度等于两座塔之和,每次做这样的操作,塔的总数都会减少1(废话)。问最少进行几次这样子的操作可以使得景观美丽。dp(i)表示使得前i个塔美丽的最小操作次数,sum(i)表示前i座塔的前缀和,last(i)表示使得前i个塔美丽操作次数最小的情况下,最右侧一座塔最小的塔高。那么就有状态转移方程:dp(i)=min{dp(j)+i-j+1},sum(i)-sum(j)>=last(j). 1 #inc 阅读全文
posted @ 2013-11-20 13:10 浙西贫农 阅读(254) 评论(0) 推荐(0) 编辑