摘要:
hdu1166http://acm.hdu.edu.cn/showproblem.php?pid=1166题意:中文不说了,大体意思是给定n个数;接下来每行有一条命令,命令有4种形式:(1) Add i j,i和j为正整数,表示第i个营地增加j个人(j不超过30)(2)Sub i j ,i和j为正整数,表示第i个营地减少j个人(j不超过30);(3)Query i j ,i和j为正整数,i<=j,表示询问第i到第j个营地的总人数;(4)End 表示结束,这条命令在每组数据最后出现;很纯的单点更新题目:View Code #include <cstdio>#include &l 阅读全文
摘要:
http://poj.org/problem?id=3686题意:有n个订单,和m个工厂,给出data[i][j]矩阵表示第i个订单在第j工厂加工消耗的时间。同一时间内每个机器只能加工一个订单,问加工完所有订单后,使得平均加工时间最小。这里关键是拆点建图,很是难理解看老长时间;假设订单N个订单的完成时间为T1 T2 T3 ......Tn。则总的时间为T = T1*n + t2*(n - 1) + ..... + Tn*1;前边完成的时间还会影响后边订单完成的时间T1T1+T2T1 +T2 + T3......设第i个订单,把第j个机器拆成N个点,这N个点中的第k个点表示第i个订单在j机器上倒 阅读全文
摘要:
http://poj.org/problem?id=2400题意:有n个管理员需要雇佣n个工作人员。 每个管理员对每个工作人员的评价不同,评价值(score)从0-n-1,0代表评价最高,n-1代表评价最低,(这样处理用KMq求解时才能出现0)同样,每个工作人员对每个管理员也有不同 的评价,评价值也是从0-n-1,0代表评价值最高,n-1代表最低。问n个管理员怎样选择n个工作人员可以使的每个人的平均评价值最小。即总的评价值 /(2*n)最小。如果存在多种最佳方案,则按照字典序输出每一种情况。思路:我们把N个管理员与N个员工分成两个点集,X,Y.管理员X[i]与员工Y[j]总的评价值为X[i]对 阅读全文
摘要:
HDU 4217 Data Structure?http://acm.hdu.edu.cn/showproblem.php?pid=4217CZ做的一道题目,我帮忙看了看。题意:给定N个数(1---N),K个操作,然后给K数,i1,i2,i3.......ik 每次取走当前状态下等的第i个数(从小到大的),问取走的数的和。给的那个的n为262144可以断定肯定是O(n*log(n))级的算法,所以选定线段树。叶子节点赋值为1,这些节点存储的就是数的个数,在添加一个val数组记录是哪个数。每次更新将节点a[rt]变成0,找出对应的val[rt]即可。这里坑爹的地方时sum求和时,要用—int64 阅读全文