07 2020 档案

摘要:P1402 酒店之王 把人放中间拆点即可 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #include<cmath> #include<ctime> #include<set> #include<ma 阅读全文
posted @ 2020-07-28 22:02 WeiAR 阅读(117) 评论(0) 推荐(0) 编辑
摘要:A - Going Home https://vjudge.net/contest/385979#problem 0到所有🐎,🐎到🏠,房子到cnt+1连边,其中🐎和🏠的代价为曼哈顿距离 #include<iostream> #include<cstdio> #include<queue> 阅读全文
posted @ 2020-07-28 21:44 WeiAR 阅读(150) 评论(0) 推荐(0) 编辑
摘要:#include <bits/stdc++.h> #define inf 2333333333333333 #define N 2000010 #define p(a) putchar(a) #define For(i,a,b) for(int i=a;i<=b;++i) //by war //20 阅读全文
posted @ 2020-07-24 15:56 WeiAR 阅读(141) 评论(0) 推荐(0) 编辑
摘要:f[i][j]表示向上扩展了i行,向右扩展了j列的方案数显然f[i][j]=f[i-1][j]*j+f[i][j-1]*i;但是这样会有重复的怎么去重是关键,top行和right列对称操作会重复算,所以最后为f[i][j]=f[i-1][j]*j+f[i][j-1]*i-(i-1)*(j-1)*f[ 阅读全文
posted @ 2020-07-22 10:39 WeiAR 阅读(247) 评论(0) 推荐(0) 编辑
摘要:每个位置的数变化最多为[0,1,2],就像1,1,2这种情况,中间位置最多加2,我们从后往前处理 #include <bits/stdc++.h> #define inf 2333333333333333 #define N 1000010 #define p(a) putchar(a) #defi 阅读全文
posted @ 2020-07-22 10:34 WeiAR 阅读(145) 评论(0) 推荐(0) 编辑
摘要:第一个数的范围是[1,2*a],不然不如把它变成1,同理第二位为[1,3*b],第3位可以直接算出来 #include <bits/stdc++.h> #define inf 2333333333333333 #define N 1000010 #define p(a) putchar(a) #de 阅读全文
posted @ 2020-07-22 10:32 WeiAR 阅读(96) 评论(0) 推荐(0) 编辑
摘要:#include <bits/stdc++.h> #define inf 2333333333333333 #define N 1000010 #define p(a) putchar(a) #define For(i,a,b) for(long long i=a;i<=b;++i) //by wa 阅读全文
posted @ 2020-07-15 13:00 WeiAR 阅读(1486) 评论(0) 推荐(0) 编辑
摘要:自己独立做出来的第一道数位dp(虽然一共做了3道qwq #include <bits/stdc++.h> #define inf 2333333333333333 #define N 1000010 #define p(a) putchar(a) #define For(i,a,b) for(lon 阅读全文
posted @ 2020-07-14 11:24 WeiAR 阅读(122) 评论(0) 推荐(0) 编辑
摘要:数位dp模板题 #include <bits/stdc++.h> #define inf 2333333333333333 #define N 1000010 #define p(a) putchar(a) #define For(i,a,b) for(int i=a;i<=b;++i) //by 阅读全文
posted @ 2020-07-13 10:52 WeiAR 阅读(138) 评论(0) 推荐(0) 编辑
摘要:Gym - 101991D 离散化+前缀和统计上次写离散化已经是一年前多了 #include <bits/stdc++.h> #define inf 2333333333333333 #define N 1010 #define p(a) putchar(a) #define For(i,a,b) 阅读全文
posted @ 2020-07-08 10:06 WeiAR 阅读(120) 评论(0) 推荐(0) 编辑
摘要:B - Balanced Neighbors 非常巧妙的一道构造题构造一个完全k分图,每个部分的和都相等就满足要求 #include <bits/stdc++.h> #define inf 2333333333333333 #define N 1000010 #define p(a) putchar 阅读全文
posted @ 2020-07-06 17:00 WeiAR 阅读(119) 评论(0) 推荐(0) 编辑
摘要:#include <bits/stdc++.h> #define inf 2333333333333333 #define N 1000010 #define p(a) putchar(a) #define For(i,a,b) for(long long i=a;i<=b;++i) using n 阅读全文
posted @ 2020-07-06 16:24 WeiAR 阅读(245) 评论(0) 推荐(0) 编辑
摘要:http://codeforces.com/problemset/problem/743/C构造题2/n=1/a+1/b+1/ca=nb=mc=m*n解得m=n+1当n=1时是无解的 #include <bits/stdc++.h> #define inf 2333333333333333 #def 阅读全文
posted @ 2020-07-05 23:04 WeiAR 阅读(139) 评论(0) 推荐(0) 编辑
摘要:hdu 6069假设i=(p1^w1)*(p2^w2)*...这一步是质因数分解它的因数个数为(w1+1)*(w2+1)*...那么i^k的约数个数为(w1*k+1)*(w2*k+1)*... 如果我们对每个i都分解质因数,那么复杂度将是1e6*sqrt(1e12)的那我们反着来,我们对每一个质数去 阅读全文
posted @ 2020-07-04 20:22 WeiAR 阅读(134) 评论(0) 推荐(0) 编辑
摘要:hdu 6096前缀l,后缀r,中间部分mid一个字符串为k=l+mid+r,其中l和r没有相交的部分题目给了一些字符串和一些前后缀,问每个前后缀能匹配多少字符串我们构造字符串s=r+'^'+l,t=k+'^'+k用s去建立ac自动机,对每个字符串k进行查询。怎么保证不会重叠呢?如果不重叠的话,后缀 阅读全文
posted @ 2020-07-04 09:49 WeiAR 阅读(118) 评论(0) 推荐(0) 编辑
摘要:爬山算法 #include <bits/stdc++.h> #define inf 2333333333333333 #define N 1000010 #define p(a) putchar(a) #define For(i,a,b) for(int i=a;i<=b;++i) using na 阅读全文
posted @ 2020-07-01 13:15 WeiAR 阅读(182) 评论(0) 推荐(0) 编辑