上一页 1 2 3 4 5 6 7 ··· 22 下一页
摘要: 问题抽象成图论,对于每一对欢迎关系(A,B),我们从A向B连一条有向边,得到的图是有可能存在环的,在原图上使用Tarjan算法,得到一个新图(有向无环),如果缩后仅剩一个点,答案为n,即任意点都被其他点欢迎,否则统计每一个新点的出度,对于出度为0的点的个数1:答案是该点包含的原图点数,其他的牛都不能被他们欢迎>=2:答案为0,出度为0的点间互不欢迎。View Code 1 program pku2186(input,output); 2 type 3 node=^link; 4 link=record 5 goal:longint; 6 ... 阅读全文
posted @ 2012-05-04 17:19 Codinginging 阅读(566) 评论(0) 推荐(0) 编辑
摘要: 需要这样一个数据结构,支持如下操作1:插入优先级为p,编号为k的节点2:查询优先级最高的节点,输出编号并删除3:查询优先级最低的节点,输出编号并删除用一颗SBT即可完美解决问题,没什么好说的,多说无益~~~View Code 1 program pku3481(input,output); 2 var 3 left,right,key,s,th:array[0..200000] of longint; 4 tot,root:longint; 5 procedure left_rotate(var t:longint); 6 var 7 k:longint... 阅读全文
posted @ 2012-05-04 16:38 Codinginging 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 有一个仓库,在时间段[M,E]需要一直被打扫。现在有n头奶牛来干这项工作。每头奶牛都有一个工作时间段[start,final],并且需要付的费用是cost。问题是聘用哪些奶牛能使费用最少?允多头奶牛在同一时间工作。先把区间按照final升序排列,然后进行DP,考虑到范围较大,O(L^2)超时,引入线段树进行优化,将决策的复杂度降到logn。还要输出-1,WA死了。。。这是我的pku第100题,庆祝啊,激动死了。。View Code 1 program pku3171(input,output); 2 type 3 node=record 4 left,righ... 阅读全文
posted @ 2012-04-19 17:58 Codinginging 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 有n个火车站,从一个站点到另一个站点的费用C与它们的距离L有关,有3种距离,对应有3种费用。现在求从一个站点S到另一个站点E所需的最小费用。很简单的DP,难度等价于数字三角形,注意:输入中起点不一定大于终点View Code 1 program pku2355(input,output); 2 var 3 f :array[0..10010] of longint; 4 d :array[0..10010] of longint; 5 l,c :array[1..3] of longint; 6 x,y :longint; 7 ... 阅读全文
posted @ 2012-04-19 17:20 Codinginging 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 准确的说,这个题叫递推,不叫DP,用f[i,j]表示长度为i,和为j的方案数f[i,j]=∑f[i-1,j-k]边界见程序。View Code 1 program pku2346(input,output); 2 var 3 f:array[0..5,0..45] of int64; 4 answer:array[0..11] of int64; 5 n:longint; 6 i,j,k:longint; 7 begin 8 fillchar(f,sizeof(f),0); 9 for i:=0 to 9 do10 f[1,i]... 阅读全文
posted @ 2012-04-19 16:48 Codinginging 阅读(194) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 22 下一页