- 博客(409)
- 收藏
- 关注
原创 cf1197e dp
#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>using namespace std;int n;long long dp[2][200005][2];struct node{ ...
2019-11-10 18:32:15
295
1
原创 Cf1156e 分治+倍增
考虑区间l,r,最大值在mid(倍增),枚举长度小的一边,然后分治(l,mid-1)(mid+1,r)#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <string>#include <cmath&g...
2019-08-11 22:29:49
274
原创 Cf1155d dp+优先队列
枚举乘x区间的开头i;dp[2][i]表示从i往左往右最大sum;对于每个i要找max<j>(sum(i~j)*x+dp[1][j+1]),考虑优先队列维护i到i-1时是把所有的sum加上a[i]*x,可以外部用个变量sum维护变化,每次插入一个dp[1][j]-sum;#include <iostream>#include <cstdio>#i...
2019-08-10 15:48:36
249
原创 Cf1152 欧拉回路
https://blog.youkuaiyun.com/qq_37555704/article/details/83347641无向图建双向边但只能用一个,nxt数组优化当前节点考虑的边号防止反复从头枚举,离散化数组要开大,可能有2*n的-1样例坑#include <iostream>#include <cstdio>#include <algorithm>...
2019-08-07 22:04:45
186
原创 Cf1151f dp+矩阵快速幂
0有x个,1有y个;定义dp[i][j]:i次时前x位置有j个1的概率;可以从加减不变转移;k很大用矩阵快速幂#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include <cma...
2019-08-06 22:11:46
135
转载 cf1149b dp
#include<bits/stdc++.h>using namespace std; typedef long long ll;const int inf = 0x3f3f3f3f;int n, q,ch[100010][26];char s[100010], d[5][255];int l[5], dp[255][255][255];int main(){ i...
2019-08-05 17:59:09
170
转载 cf1148f 构造
https://blog.youkuaiyun.com/lixuanjing2016/article/details/90756240#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <string>#include &...
2019-08-03 18:17:43
234
原创 Cf1144g dp
dp[i][j][3]:第i个取j(0:增,1:减)的 0:增列最小值,1:减列最大值,2:记录前驱#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>#include <string>...
2019-07-31 12:20:20
221
原创 Cf1142b 倍增+离线
//根据顺序,连向最近下一个,然后倍增,找到长度n的位置,然后离线排序优先队列优先就行了#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <queue>using...
2019-07-30 13:13:40
180
原创 cf1141f2 greedy
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <string>#include <map>#include <vector>using...
2019-07-29 12:44:06
165
转载 CF1137C】Museums Tour Tarjan+dp
https://blog.youkuaiyun.com/rzo_kqp_orz/article/details/88544103
2019-07-27 21:41:35
202
原创 cf1137b kmp
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;char s[500005];char t[500005];int nxt[500005];v...
2019-07-26 12:25:02
154
转载 cf1136e sdtree
https://blog.youkuaiyun.com/heucodesong/article/details/88529248https://www.cnblogs.com/pkgunboat/p/10527569.html利用前缀和的前缀和维护
2019-07-25 23:28:30
175
原创 cf1132f dp
区间dp[i][j],枚举第一个,i,它可以自己消了,也可以附在后面任何一个相同的上消#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>using namespace std;int n;...
2019-07-24 13:15:06
161
原创 Cf1129c dp
dp[i][j]:i到j的串有多少种编码,求和减重复可得答案dp1[i][j]:以i结尾和以j结尾最长相同的长度,用于处理重复每次加上以当前j结尾的所有dp,枚举重复结尾求得最长重复长度,减去,前缀数字优化一下。#include <iostream>#include <cstdio>#include <queue>#include <c...
2019-07-23 12:27:58
193
转载 Codeforces 1120C Compress String(DP)
https://www.cnblogs.com/pkgunboat/p/10664997.html
2019-07-21 18:16:12
257
原创 Cf1114f xdtree bitmark
维护一个乘积和一个bitmark表示有那些质因子注意 mp[i]|=(1ll<<j); 1后面加ll;#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>using namesp...
2019-07-18 22:57:26
202
转载 Codeforces 1110D Jongmah (DP)状态限制
题意:你有n个数字,范围[1, m],你可以选择其中的三个数字构成一个三元组,但是这三个数字必须是连续的或者相同的,每个数字只能用一次,问这n个数字最多构成多少个三元组?解析:首先我们容易发现,我们发现,假设有3个三元组(x, x + 1, x + 2),我们不妨把这3个三元组换成(x, x, x), (x + 1, x + 1, x + 1), (x + 2, x + 2, x + 2)这3...
2019-07-16 22:23:41
173
原创 CF1108f 并查集
每种w一起考虑,与同层冲突就加#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include <queue>using namespace std;int n,m;s...
2019-07-15 13:14:39
227
原创 Cf1108E2 xdtree
枚举minn+维护变化+线段树区间最大#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>#include <cstring>#include <vector>using namespace std;int n,...
2019-07-14 22:06:33
167
原创 cf1106e dfs+dp
稍微剪枝一下,干扰直接干扰到有用#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <string>#include <cmath>#include <queue>using na...
2019-07-14 12:25:30
131
转载 Codeforces Round #531 (Div. 3) F. Elongated Matrix(状压DP)-C
https://blog.youkuaiyun.com/优快云jiangshan/article/details/86239183?tdsourcetag=s_pctim_aiomsg#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include &...
2019-07-12 23:42:28
106
原创 cf 1100E E. Andrew and Taxi (二分+拓扑排序)
二分花费,保证大于的不成环,然后拓扑排序,保证连边的单向#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <vector>#include <stack&g...
2019-07-11 23:53:36
202
转载 [Codeforces1097D] Makoto and a Blackboard dp期望 独立 积性
https://blog.youkuaiyun.com/qq_36797743/article/details/85834812
2019-07-10 23:14:44
152
转载 CF1089F Fractions
题意:将n-1(n为正整数)分为若干个n的约数倍数和(约数不为1或n).n<=1e9.无解输出"NO".题解:先考虑无解的情况,因为n-1与n互质,故若所有约数的公约数不为1,则n-1一定不能被表示,即n为一个质数的次幂时无解。接着考虑剩余情况是否一定有解。因为多个数过于复杂,故先考虑两个数。首先这两个数要互质,设n-1=ax+by(x,y|n,x,y为互质的大于1的正整数),...
2019-07-07 14:04:18
306
原创 CodeForces - 1088E Ehab and a component choosing problem 树形dp
题意:给你一棵数,选出k个联通块,让 k个联通块内所有点权值加和 / k 最大,若结果多个 让k最大,输出权值和 和 k题解:先找出最大的联通块,然后看看有几个符合的联通块,从下往上选#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>...
2019-07-06 21:33:35
141
原创 working record
Cf/Lc/ML/R/Math-(6)——7.5-(1)1.C1086a-A;——7.6-(2)1.Cf1086b-A;2.Cf1088e-B;——7.7-(1)1.Cf1089f-B;——7.8-(1)1.Cf1091d-A;——7.9-(2)1.Cf1092c-A;2.Cf1095e-A;——7.10-(1)1.Cf1095f-A;2.Cf109...
2019-07-05 22:37:13
256
转载 2018.10.21 codeforces1071B. Minimum path(dp+贪心+bfs)
先dp出最开始最多多少个连续的a.然后对于没法继续连续下去的用贪心+bfs 来弄就行了#include<bits/stdc++.h>using namespace std;int n,k,mx[2005][2005],maxA;char mp[2005][2005];bool vis[2005][2005];queue<pair<int,int>...
2019-06-22 10:34:22
154
原创 Codeforces 1070C - Cloud Computing 贪心set
题意:有n天,每天需要用k个cpu, 然后给定m个计划,对于每个计划包含L,R, c, p表示,从第L天到第R天期间,每天你都可以选用c个cpu,每个cpu的花费为p;问n天的最小花费;(当某天不能得到k个cpu时,就把能选的全选)#include <iostream>#include <cstdio>#include <algorithm&g...
2019-06-19 23:00:14
222
原创 Codeforces Round #518 (Div. 2): D. Array Without Local Maximums(DP)
有一个长度为n的序列,满足对于所有的a[x],与它相邻的两个元素a[x-1]和a[x+1]中至少有一个大于等于它,其中a[1]和a[n]当然只有一个相邻元素, 现在这个序列中有些数字被破坏了(标记为-1),问有多少种合法恢复方案(每个数字∈[1,200])dp[2][100005][205]; 1当前数字ok么,2编号,3结尾数字,4有几个#include <iostream>...
2019-06-18 21:24:01
152
原创 [ CodeForces 1063 B ] Labyrinth 优先队列
给出一个四联通的N×M网格图和起点。图中有一些位置是障碍物。现在上下移动步数不限,向左至多走a步,向右至多走b步,求从起点出发能到达多少个空地。优先cur.l+cur.r小的,因为差值恒定#include <iostream>#include <cstdio>#include <algorithm>#include <cstri...
2019-06-17 21:28:26
215
原创 cf1062e E. Company xdtree+最近公共祖先
题意:在一棵树中,每次选择一个区间[l,r]最多删除一个点,使得这个区间内所有点的lca的深度最大。思路:首先有一个点,就是一颗树中一堆点的LCA其实就是这堆点DFS序最小和最大的两个点的LCA,线段树维护区间max1,max2,min1,min2,然后倍增求LCA#include <iostream>#include <cstdio>#include...
2019-06-08 23:21:09
238
原创 Codeforces Round #510 (Div. 2) D. Petya and Array
题意:给出一个序列a,求区间[i,j]的个数,使得和小于t树状数组维护前缀和#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <set>#include <cmath>#include &...
2019-06-04 16:36:49
143
转载 [Codeforces 1037E. Trips]
题目大意:有n个人,m天,每天晚上都会有一次聚会,一个人会参加一场聚会当且仅当聚会里有至少k个人是他的朋友。每天早上都会有一对人成为好朋友,问每天晚上最多能有多少人参加聚会。朋友关系不满足传递性。 相当于有n个点,进行m次加边操作,每次操作后附加一个询问,问最大点集的大小,使得点集中每个点的度数均大于等于k题解:如果直接边加边询问可能比较麻烦,本着“正难则反”的原则,我们可以将题...
2019-06-01 17:17:55
187
原创 Codeforces Round #511 (Div. 2)-C - Enlarge GCD (素数筛)
题意: 给定n个数,问最少要去掉几个数,使得剩下的数gcd 大于原来n个数的gcd值。思路:这道题可以枚举素数x,对于每个x,找到所有(a【i】/gcd(all)) 是x倍数的个数,就是一个次数。找这个次数的过程正好与素数筛的过程一致。分解质因数会T#include <iostream>#include <cstdio>#include <...
2019-05-31 21:25:19
252
原创 codeforces round#522 E - The Unbearable Lightness of Weights 分组背包
题意:有n个砝码,你不知道每个砝码的重量,但是你的朋友知道,你可以每次拿出k个砝码给你的朋友,他会告诉你k个砝码的重量和,经过1次尝试之后,你最多可以区分出多少个砝码?题解:首先对于你拿出的k个砝码,若要想区分出来,这k个砝码必然是相同的且其质量和的方案数唯一,那么对于所有砝码的重量和的方案数可以用多重背包来求解,最后特判只有2种物品的就可以了。#include <iostream...
2019-05-31 16:52:27
166
转载 Codeforces 1025D Recovering BST【区间DP】
cap[i][j]表示点i,j能否连边:l[i][j]表示以i号点为根节点能否扩展到j,r[i][j]表示以j号点为根节点能否扩展到i,然后枚举区间长度与根节点关键是因为区间左右并没有关联可以分别考虑,就不需要用dp[i][j]来表示ij区间,不用左右对应减少了一个纬度#include <iostream>#include <cstdio>#incl...
2019-05-09 14:58:51
149
原创 Codeforces Round #504 D. Array Restoration xdtree
题目描述:有一个长度为n的序列a,有q次操作,第i次选择一个区间,将区间里的数全部改为i,序列a的每个位置至少被改一次。得到最终的序列,然后将序列里的某些位置变成0,输出一种可能的置零之前的最终序列,或无解线段树维护区间0数,在数i的区间中i的个数+0数要等于区间长,然后即可把区间全置0;注意细节,q得有#include <iostream>#include <cst...
2019-05-09 00:09:03
173
转载 Codeforces 1017F The Neutral Zone(数论 埃氏筛)
https://blog.youkuaiyun.com/优快云jiangshan/article/details/81536536
2019-05-08 19:47:31
128
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人