随笔分类 -  CODEVS

摘要:Update 单点修改 Query 区间询问 阅读全文
posted @ 2016-07-23 11:03 rpSebastian 阅读(126) 评论(0) 推荐(0)
摘要:1 type xh=record 2 x,y:double; 3 end; 4 arr=array[0..1000008] of xh; 5 var n,m:longint; 6 s1,s2:ansistring; 7 a,b,g,w:a... 阅读全文
posted @ 2015-03-11 19:55 rpSebastian 阅读(206) 评论(0) 推荐(0)
摘要:Update 区间修改 Query 区间询问 阅读全文
posted @ 2015-01-06 20:48 rpSebastian 阅读(173) 评论(0) 推荐(0)
摘要:先做一遍匈牙利算法。对于已经匹配的边,如果删去之后还能最大匹配数增加,则不符合要求。一遍匈牙利算法是O(n^3)的,对于每一条边做n次,每次O(n^2),总的复杂度是O(n^3)。注意:不要忘记输出none。 1 var a:array[0..1000,0..1000] of boolean; 2 ... 阅读全文
posted @ 2014-12-24 20:36 rpSebastian 阅读(250) 评论(0) 推荐(0)
摘要:先对整幅图进行二分图染色,再跑一遍匈牙利算法。 1 /* CODEVS1022 */ 2 #include 3 #include 4 #include 5 #include 6 7 #define maxn 10008 8 9 struct edge{ 10 i... 阅读全文
posted @ 2014-12-23 20:39 rpSebastian 阅读(238) 评论(0) 推荐(0)
摘要:基础的矩阵乘法。Program CODEVS1287;const maxn=208;var k1,k2,k3,sum:int64; a,b,c:array[0..maxn,0..maxn] of int64; i,j,k:longint;begin readln(k1,k2); fo... 阅读全文
posted @ 2014-12-18 20:13 rpSebastian 阅读(127) 评论(0) 推荐(0)
摘要:真是道坑题,数据范围如此大。首先构造矩阵 [ f[0] , 1] * [ a,0 ] ^n= [ f[n],1 ] [ c,1 ]注意到m, a, c, x0, n, g0 do begin if y mod 2=1 then ans:=(ans+x)... 阅读全文
posted @ 2014-12-17 21:12 rpSebastian 阅读(194) 评论(0) 推荐(0)
摘要:嗯,,,矩阵乘法最基础的题了。Program CODEVS1250;type arr=array[1..2,1..2] of longint;var T,n,mo:longint; a,b:arr;operator *(a,b:arr) c:arr;var i,j,k,sum:longint... 阅读全文
posted @ 2014-12-17 20:18 rpSebastian 阅读(187) 评论(0) 推荐(0)
摘要:由于权值是在边上,所以很容易发现一个性质:d(x,y)=d(x,root) xor d(y,root)。 因为有了这个性质,那么就很好做了。对于每一个点统计到root的距离,记为f 数组。 将f数组里的每个值插进按照二进制位插进字典树里面。 枚举每一个点,然后在字典树中搜索最大的xor值就可以了。 阅读全文
posted @ 2014-12-16 20:45 rpSebastian 阅读(285) 评论(0) 推荐(0)
摘要:真是语死早,题目看了两遍才看懂。 按照题目要求建边,从'Z'开始跑最短路即可。 阅读全文
posted @ 2014-12-14 22:02 rpSebastian 阅读(198) 评论(0) 推荐(0)
摘要:由于m很大,所以不能使用DP。注意到n≤30,直接暴力2^n会TLE。所以,将砝码平均分成两份,对一份进行一次暴力,用哈希表存下可能的结果。对下一份再进行一次暴力,在哈希表中搜索剩余的砝码重量是否存在,若存在则更新答案。输出最小答案即可。Program CODEVS2144;const maxn=1... 阅读全文
posted @ 2014-12-11 22:29 rpSebastian 阅读(194) 评论(0) 推荐(0)
摘要:f[i,0] 表示 第i个人不参加舞会f[i,1] 表示 第i个人参加舞会f[i,1]=sigma(f[j,0])+v[i] j 为 i 的孩子f[i,1]=sigma(max(f[j,0],f[j,1])) j 为 i 的孩子ans=max(f[root,0],f[root,1])Progra... 阅读全文
posted @ 2014-12-11 21:55 rpSebastian 阅读(166) 评论(0) 推荐(0)
摘要:对所有边从大到小排序,枚举最大边,O(m)验证,用并查集维护图是否联通。program CODEVS1001;const maxm=5008; maxn=508; INF=2000000000;type arr=record u,v,w:int64; end;... 阅读全文
posted @ 2014-12-10 20:41 rpSebastian 阅读(213) 评论(0) 推荐(0)