上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 109 下一页

2019年9月12日

经典排序背包——cf1203F

摘要: 先把收益为正数的处理掉:策略是挨个扫,扫n遍,碰到能买的就买,然后可以得到一个更新后的r 剩下的就看做是一个背包模型:物品(a,b)表示当背包体积>a时才能装下体积为b的该物品,问最多装几个 无序枚举所有物品显然错误,要选择先买哪个更优 对于两个物品(ai,bi),(aj,bj),有两种顺序 先买i 阅读全文

posted @ 2019-09-12 21:49 zsben 阅读(372) 评论(0) 推荐(0)

思维+贪心——cf1042D

摘要: /* 首先考虑从后往前计算lis,显然0的在很多情况下的贡献要大于1 如果遇上0,那么lis++,如果遇上1,那么cnt1++,并且用cnt1更新lis 这样的贪心保证正确,因为从[i,j]这一段的lis必定是前一段0,后一段1这样的构成,当前面多了个0时,显然lis+1 当前面多了个1时当且仅当区间1的个数大于lis,才能让lis+1, 因此当且仅当后缀[i,n]中1的个数大于lis时,对于所有 阅读全文

posted @ 2019-09-12 17:18 zsben 阅读(181) 评论(0) 推荐(0)

分块——cf1207F

摘要: 这么傻逼的题当时想了那么久 用a数组维护原序列,b[i][j]表示 pos%i=j 的 a[pos]之和 对于每个修改1 x y,先直接修改a[x],然后枚举i=1..700,修改b[i][x%i] 对于每个查询2 x y,如果x>700,那么我们直接去a数组里枚举i=kx+y, 如果x<700,b 阅读全文

posted @ 2019-09-12 13:41 zsben 阅读(169) 评论(0) 推荐(0)

线段树双tag+差分数组——cf1208E

摘要: 写了一上午 阅读全文

posted @ 2019-09-12 11:58 zsben 阅读(216) 评论(0) 推荐(0)

构造——cf1213E

摘要: 分情况讨论,构造很简单 阅读全文

posted @ 2019-09-12 00:18 zsben 阅读(188) 评论(0) 推荐(0)

2019年9月11日

排序+并查集——cf1213F

摘要: /* 有向边(pi,pi+1),形成链后进行dfs,求出dfs序 一个联通块内的元素必须是同一个字符,如果最后的联通块个数 using namespace std; #define N 200005 int n,k,p[N],q[N]; int rk1[N],rk2[N]; struct Node{int id,rk;}a[N],b[N]; int cmp1(Node a,Node b){... 阅读全文

posted @ 2019-09-11 21:23 zsben 阅读(243) 评论(0) 推荐(0)

离线+生成树+并查集——cf1213G

摘要: #include using namespace std; #define N 200005 #define ll long long struct Edge{int u,v,w;}e[N]; struct Query{int id,qq;}qq[N]; int n,q; ll ans[N],sum; bool operator>n>>q; for(int i=1;i=e[p].w &... 阅读全文

posted @ 2019-09-11 18:32 zsben 阅读(186) 评论(0) 推荐(0)

2019年9月8日

分治维护dp——19南昌网络赛C/cf750E

摘要: 南昌网络赛,是cf的原题 第一次做到这种题,所以认真想了下,每次给一个询问[L,R],要求出这个区间里有2017子序列,但是不能有2016子序列需要删掉的最少元素个数 首先如果我们之询问一小段区间[L,R]那么显然有一个简单的三维dp可以做,状态0|1|2|3|4表示关键字一个也没有,有2,有21, 阅读全文

posted @ 2019-09-08 23:05 zsben 阅读(244) 评论(0) 推荐(0)

2019年9月6日

线段树区间合并——cf1217E

摘要: /* 定义:多重集s的元素和是sum,对于sum的第i位为x,如果s里找不到第i位也是x的元素,那么称这个多重集为bad, 现在给定一个 序列a 两种操作 1 i x:将序列第i个元素改为x 2 l r: a[l..r]组成的多重集中,找一个和最小的bad子集,如果没有这样的子集,输出-1 如果集合中有两个数A,B在某一位都不为0,那么这个集合必定为bad,那么在区间[l..r]里找一个最小的ba 阅读全文

posted @ 2019-09-06 16:05 zsben 阅读(174) 评论(0) 推荐(0)

2019年9月5日

构造——cf1214E

摘要: 首先定义三元组(2*i-1,2*i,d),将n个三元组按d降序排列,然后取每个三元组的2*i-1连在一起,构成一条长为n-1的链 然后降序枚举每个三元组,把对应的2*i在链上合法的位置接上, 能保证一定有解 阅读全文

posted @ 2019-09-05 18:40 zsben 阅读(262) 评论(0) 推荐(0)

上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 109 下一页

导航