07 2019 档案

摘要:Gym100889Lhttps://vjudge.net/problem/341988/origin题目大意:有一个n*n的图,m条双向边(没有重边自环),求从每个节点出发走k条路后到其他所有节点的最短距离和方案数,方案数取模1e9+7输出做法:传递闭包,走k条路,就是做k次矩阵乘法,所谓矩阵乘法就 阅读全文
posted @ 2019-07-31 23:13 WeiAR 阅读(156) 评论(0) 推荐(0) 编辑
摘要:(g++比c++快不少 分治+矩阵快速幂 阅读全文
posted @ 2019-07-31 17:27 WeiAR 阅读(112) 评论(0) 推荐(0) 编辑
摘要:upper_bound1.temp=upper_bound(a+1,a+n+1,x)-b;temp表示在数组a中第一个大于x的位置 2.bool cmp(int a,int b){ return a>b;}temp=upper_bound(a+1,a+n+1,x,cmp)-b;temp表示在数组a中 阅读全文
posted @ 2019-07-31 16:09 WeiAR 阅读(111) 评论(0) 推荐(0) 编辑
摘要:lower_bound1.temp=lower_bound(a+1,a+n+1,x)-b;temp表示在数组a中第一个大于等于x的位置 2.bool cmp(int a,int b){ return a>b;}temp=lower_bound(a+1,a+n+1,x,cmp)-b;temp表示在数组 阅读全文
posted @ 2019-07-31 16:06 WeiAR 阅读(165) 评论(0) 推荐(0) 编辑
摘要:https://vjudge.net/problem/Gym-102141E 用set乱搞 阅读全文
posted @ 2019-07-31 15:23 WeiAR 阅读(128) 评论(0) 推荐(0) 编辑
摘要:严格上升的话,减1就好啦 阅读全文
posted @ 2019-07-30 09:59 WeiAR 阅读(127) 评论(0) 推荐(0) 编辑
摘要:求循环节之类的问题 阅读全文
posted @ 2019-07-29 15:36 WeiAR 阅读(106) 评论(0) 推荐(0) 编辑
摘要:hdu2087kmp模板题,在匹配文本串成功之后,模式串要跳整个自身的长度 阅读全文
posted @ 2019-07-29 11:28 WeiAR 阅读(137) 评论(0) 推荐(0) 编辑
摘要:前缀数组O(n^3)做法 s.substr()的应用非常方便 阅读全文
posted @ 2019-07-29 10:52 WeiAR 阅读(198) 评论(0) 推荐(0) 编辑
摘要:非AC版,会T,待更新 阅读全文
posted @ 2019-07-27 20:45 WeiAR 阅读(144) 评论(0) 推荐(0) 编辑
摘要:#include #include #include #include #include #include #include #include #include #include #pragma GCC optimize(2) #define inf 2147483647 #define ls rtq; void build(){ For(i,0,25) ... 阅读全文
posted @ 2019-07-27 15:45 WeiAR 阅读(99) 评论(0) 推荐(0) 编辑
摘要:字典树裸题,字符串的末节点出现次数++,次数为一的贡献了答案。主要收获是读入的技巧 阅读全文
posted @ 2019-07-26 20:41 WeiAR 阅读(102) 评论(0) 推荐(0) 编辑
摘要:hdu1251 trie模板题,用g++会MLE,用c++就好了 阅读全文
posted @ 2019-07-26 17:49 WeiAR 阅读(93) 评论(0) 推荐(0) 编辑
摘要:0%0==1gcd(0,0)会RE 阅读全文
posted @ 2019-07-25 11:33 WeiAR 阅读(329) 评论(0) 推荐(0) 编辑
摘要:P1494 [国家集训队]小Z的袜子 阅读全文
posted @ 2019-07-25 11:21 WeiAR 阅读(96) 评论(0) 推荐(0) 编辑
摘要:dsu on tree先分轻重儿子先处理轻边,再处理重儿子再加上轻儿子的答案 阅读全文
posted @ 2019-07-25 10:47 WeiAR 阅读(137) 评论(0) 推荐(0) 编辑
摘要:#pragma GCC optimize(2) 阅读全文
posted @ 2019-07-24 16:34 WeiAR 阅读(246) 评论(0) 推荐(0) 编辑
摘要:莫队模版题 阅读全文
posted @ 2019-07-24 16:23 WeiAR 阅读(99) 评论(0) 推荐(0) 编辑
摘要:poj3417lca+差分每加入一条新边就会形成一个环,这个环上除了新边都会被覆盖一次,断掉覆盖一次的边再断了覆盖它的新边就能把树分成两部分。对于被覆盖数大于1次的边,就得至少断两条新边,对答案就没有贡献了。对于没有被覆盖的,对答案贡献为新边的数量,覆盖为1的,贡献为1,再否则为0。d[x]表示节点 阅读全文
posted @ 2019-07-24 12:09 WeiAR 阅读(291) 评论(1) 推荐(0) 编辑
摘要:博弈论基本知识1、定义P-position和N-position:其中P代表Previous,N代表Next。直观的说,上一次move的人有必胜策略的局面是P-position,也就是“先手必败”(奇异局势),现在轮到move的人有必胜策略的局面是N-position,也就是“先手可保证必胜”(非奇 阅读全文
posted @ 2019-07-22 15:25 WeiAR 阅读(514) 评论(0) 推荐(0) 编辑
摘要:hdu1527两堆博弈模型,威佐夫博弈 阅读全文
posted @ 2019-07-22 15:23 WeiAR 阅读(149) 评论(0) 推荐(0) 编辑
摘要:hdu2516斐波那契博弈,也是一堆博弈的一种,第一个人第一次可以拿任意多,但是不能取完,第二个人拿至少一个,但不能超过上一个人拿的两倍 阅读全文
posted @ 2019-07-22 15:10 WeiAR 阅读(102) 评论(0) 推荐(0) 编辑
摘要:hdu4764bash博弈主要是找准必胜状态,以及好好理解题意。这里的必胜状态是n-1,虽然是写的数比上一个大1到k,但是相当于这个人拿1到k,然后是累加的效果 阅读全文
posted @ 2019-07-22 11:27 WeiAR 阅读(157) 评论(0) 推荐(0) 编辑
摘要:#include #include #include #include #include #include #include #include #include #include #define inf 2147483647 #define ls rtq; void in(long long &x){ long long y=1; char c=g();x=0; whil... 阅读全文
posted @ 2019-07-22 10:25 WeiAR 阅读(149) 评论(0) 推荐(0) 编辑
摘要:hdu6277结论题 阅读全文
posted @ 2019-07-21 22:50 WeiAR 阅读(157) 评论(0) 推荐(0) 编辑
摘要:poj3463大意:统计最小的长度个数+统计最小的长度+1的个数,大概就是求最短路和次短路的条数更新的时候有5种情况,有个细节就是它得是二维的,一个表示节点编号,一个0/1表示它是次短路的还是最短路的,把结构体扔到队列里。需要更新的就是4种情况。w<最小值w=最小值w<次小值w=次小值 阅读全文
posted @ 2019-07-21 22:42 WeiAR 阅读(123) 评论(0) 推荐(0) 编辑
摘要:Gym - 100543Lhttps://vjudge.net/problem/153854/origin区间dp,要从区间长度为1开始dp 阅读全文
posted @ 2019-07-20 20:05 WeiAR 阅读(141) 评论(0) 推荐(0) 编辑
摘要:Gym - 102021Ehttps://vjudge.net/problem/2109787/origin主要是一个处理精度的技巧,避免精度误差可以加eps,然后乘1e(小数点之后的位数)。 阅读全文
posted @ 2019-07-20 15:07 WeiAR 阅读(173) 评论(0) 推荐(0) 编辑
摘要:Gym 100712Hhttps://vjudge.net/problem/195715/origin先缩点,再建立新图,然后跑两遍dfs求树上最长路 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #i 阅读全文
posted @ 2019-07-20 13:28 WeiAR 阅读(238) 评论(0) 推荐(0) 编辑
摘要:CodeForces - 752Bhttps://vjudge.net/problem/597648/origin简单模拟,主要是细节特殊情况多考虑一下,看代码就行 阅读全文
posted @ 2019-07-19 19:52 WeiAR 阅读(163) 评论(0) 推荐(0) 编辑
摘要:CodeForces - 1087Dhttps://vjudge.net/problem/2115151/origin2*和/叶子结点的个数 阅读全文
posted @ 2019-07-19 19:22 WeiAR 阅读(138) 评论(0) 推荐(0) 编辑
摘要:AtCoder - 3959https://vjudge.net/problem/1583855/origin求最长连续递增长度就行,答案是n-max(len) 阅读全文
posted @ 2019-07-19 19:13 WeiAR 阅读(80) 评论(0) 推荐(0) 编辑
摘要:poj2135根本想不到系列求1到n,和n到1的最短路,但是不能重复走。超级源点连到1,流量为2,费用为0;n连到超级汇点,流量为2,费用为0。其他的流量为1,费用为边的长度。(图中为双向边 阅读全文
posted @ 2019-07-19 10:17 WeiAR 阅读(197) 评论(0) 推荐(0) 编辑
摘要:#include #include #include #include #include #include #include #include #include #include #define inf 2147483647 #define ls rtq; void in(int &x){ int y=1; char c=g();x=0; while(c'9'){ ... 阅读全文
posted @ 2019-07-18 20:59 WeiAR 阅读(115) 评论(0) 推荐(0) 编辑
摘要:poj3281根本想不到了网络流题,把牛拆点,如图方式建图,然后跑网络流 阅读全文
posted @ 2019-07-18 16:06 WeiAR 阅读(279) 评论(0) 推荐(0) 编辑
摘要:CodeForces - 627Ahttps://vjudge.net/problem/326413/origina+b == (a&b)<<1 +(a^b);然后是位运算,如果对于这一位置,异或值为1时,有两种可能,由乘法原理,答案<<1。如果s==x,就会出现一方全0,一方全1的情况,所以-2. 阅读全文
posted @ 2019-07-18 10:50 WeiAR 阅读(163) 评论(0) 推荐(0) 编辑
摘要:hdu6243结论题,每个的概率是(n-1)/n,然后乘以总数n,结果就是 n-1 阅读全文
posted @ 2019-07-18 09:03 WeiAR 阅读(166) 评论(0) 推荐(0) 编辑
摘要:Gym - 102163M https://vjudge.net/problem/2356949/origin取对数,然后特判特殊情况,就是0的那些情况 阅读全文
posted @ 2019-07-17 21:28 WeiAR 阅读(106) 评论(0) 推荐(0) 编辑
摘要:Gym - 102082Ghttps://vjudge.net/problem/2198225/origin对于数列中任意一个数,要么从最左边到它不递减,要么从最右边到到它不递减,为了满足这个条件,就要移动,而移动的最少步数就是逆序对数。所以这个数要么往左移动,要么往右移动,所以两个取最小就好了 阅读全文
posted @ 2019-07-17 11:13 WeiAR 阅读(265) 评论(0) 推荐(0) 编辑
摘要:https://vjudge.net/problem/2198220/origin枚举等差数列第一个和第二个,然后二分确定数列后面是否存在,复杂度比较玄学,卡过了。 也可以dp做,f[j][i]=max(f[j][i],f[i][pre]+1);f[j][i]表示j是等差数列最后一个下标,i是倒数第 阅读全文
posted @ 2019-07-16 20:16 WeiAR 阅读(911) 评论(0) 推荐(0) 编辑
摘要:https://vjudge.net/problem/2198221/origin逆向思维,原题是人出来,我们处理成人进去,算出来每个人的曼哈顿距离,然后从大到小排序,距离长的先入。走的距离+这个人从队伍中走到入口的距离的最小值就是答案 #include<iostream> #include<cst 阅读全文
posted @ 2019-07-16 19:39 WeiAR 阅读(842) 评论(0) 推荐(0) 编辑
摘要:#include #include #include #include #include #include #include #include #include #include #define inf 2147483647 #define ls rtq; void in(int &x){ int y=1; char c=g();x=0; while(c'9'){ ... 阅读全文
posted @ 2019-07-16 10:55 WeiAR 阅读(154) 评论(0) 推荐(0) 编辑
摘要:poj2752找所有的前缀等于后缀,那就是找所有前缀等于后缀的前缀,递归再用栈存一下 阅读全文
posted @ 2019-07-10 19:43 WeiAR 阅读(104) 评论(0) 推荐(0) 编辑
摘要:poj1961主要是考察对next数组的理解,abaabaabaaba abaabaabaabaabaaba错开的部分便是循环节 7月29日更 如果n%(n-kmp[k])==0,那么n-kmp[k]便是循环节的长度,我来解释一下为什么 阅读全文
posted @ 2019-07-10 10:26 WeiAR 阅读(190) 评论(0) 推荐(0) 编辑
摘要:#include #include #include #include #include #include #include #include #include #include #define inf 2147483647 #define ls rt'9'){ if(c=='-')y=-1; c=g(); } while(c='0'){ ... 阅读全文
posted @ 2019-07-09 16:45 WeiAR 阅读(129) 评论(0) 推荐(0) 编辑