随笔分类 -  贪心

[校内训练21_02_20]
摘要:第一题在尝试了几个错误的dp后,意识到所有合法的序列可以抽象为选出一个子序列,并将他们拓展至长度为n的序列。为了避免记重,我们强制选择第一个出现的字符。于是,f[i][j]表示已经填了i个字符,现在正停留在原序列的第j个字符上,若是朴素转移,需要借助nxt[i][26],即下一个字符的位置。而这件事 阅读全文
posted @ 2021-02-21 06:24 GreenDuck 阅读(76) 评论(0) 推荐(0)
[校内训练20_09_29]ABC
摘要:1.问一个圆上的最多不交弧的个数。 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=1E6+5; 4 int n,m,tot; 5 int totT,tmp[maxn],jump[maxn][20]; 6 struc 阅读全文
posted @ 2020-09-29 13:32 GreenDuck 阅读(155) 评论(0) 推荐(0)
[校内训练20_09_22]AB
摘要:1.结论题,不会证 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int base=200*500; 4 const int limit=2*200*500; 5 int T,n,a[555]; 6 bitset<205*505*2 阅读全文
posted @ 2020-09-22 17:39 GreenDuck 阅读(208) 评论(0) 推荐(0)
agc039f
摘要:https://atcoder.jp/contests/agc039/tasks/agc039_f 由于难以直接计数,我们不妨虑容斥。假设我们枚举了每一行、每一列的最小值分别是什么,那么可以算出这种情况的贡献为\prod_{i=1}^{n}\prod_{j=1}^{m}{max\{a[i],b[j] 阅读全文
posted @ 2020-09-21 20:52 GreenDuck 阅读(196) 评论(0) 推荐(0)
[家里训练20_03_01]ABC
摘要:1.不可做题。 求出满足 $$\sum_{i=1}^{m}{x_i}\leq s$$ 对任意$$i\leq m,x_i>0$$ 对所有$$i,x_i\leq t$$ 的解数 答案对10^9+7取模 m-n<=1000,t<=100000,m<=1E9,nt<=s<=1E18 2.树上LIS:一棵树, 阅读全文
posted @ 2020-03-10 16:47 GreenDuck 阅读(162) 评论(0) 推荐(0)
[校内训练20_01_20]ABC
摘要:1.问有多少个大小为N的无标号无根树,直径恰好为L。$N,L \leq 200$ 2.问一个竞赛图中有多少个长度为3、4、5的环。$N \leq 2000$ 3.给出一些直线和单个点A,问这些直线的交点与A最近的M个距离之和为多少。$N \leq 50000,M \leq 10^7$。保证不存在两个 阅读全文
posted @ 2020-01-20 16:27 GreenDuck 阅读(182) 评论(0) 推荐(0)
[校内训练19_09_06]排序
摘要:题意 一个这样的算法: 现在你cnt和原始数组a,求cnt步数后a的结果。注意a是n排列。 $1 \leq n \leq 10^6,1 \leq cnt \leq \frac{n(n-1)}{2}$ 思考 对于某个i,如果j从i+1循环到了n,那么含义就是将i~n中最小的数放到第i位上,剩下的访问过 阅读全文
posted @ 2019-09-20 09:00 GreenDuck 阅读(138) 评论(0) 推荐(0)
[CF526G]Spiders Evil Plan
摘要:题意 https://codeforces.com/problemset/problem/526/G 思考 先考虑只有一次询问。如果我们选择了k条路径,那么就会有2k个叶子节点;反过来,如果选择了2k个叶子节点,总存在一种方案使得组成的k条路径形成一个联通块。因为若还没有连通块,总可以交换两条不交叉 阅读全文
posted @ 2019-08-27 09:43 GreenDuck 阅读(331) 评论(0) 推荐(0)
[CCPC2019 ONLINE]H Fishing Master
摘要:题意 http://acm.hdu.edu.cn/showproblem.php?pid=6709 思考 先考虑所有鱼的烹饪时间小于k的情况。将T从大到小排序后,煮一条鱼相当于将其时间补齐至k。 由于鱼的烹饪时间会大于等于k,那么,最优解一定不会出现鱼不够煮的情况。在煮鱼期间,可以钓到$\frac{ 阅读全文
posted @ 2019-08-26 09:08 GreenDuck 阅读(258) 评论(0) 推荐(0)
[CF1037H]Security
摘要:题意 https://codeforces.com/contest/1037/problem/H 思考 贪心的思路是,尽可能多地找到读入串的一段前缀,然后再添上一个字典序比较大的字符。 先对原串建立SAM,考虑到有区间限制,需线段树合并维护endpos集合。 对于一个询问,我们现在SAM上找对它的前 阅读全文
posted @ 2019-08-25 21:22 GreenDuck 阅读(198) 评论(0) 推荐(1)
19_07_08校内训练[grid]
摘要:题意 现有n*m的长方形网格,每个格子中写着一个数,并构成了[0,n*m)的排列。每次可以将一行循环平移x格,也可以将一列循环平移x格。给出初始状态,给出一个到达给定状态的方案。n*m<=10000,n,m>=2。 思考 发现存在一种方法,能够使任意三个方格进行顺时针或逆时针改变位置。其中有一个方格 阅读全文
posted @ 2019-07-08 16:38 GreenDuck 阅读(154) 评论(0) 推荐(0)
19_07_8校内训练[sort]
摘要:题意 一个排列,每次选一个子序列按顺序放在开头,要求变成升序的操作次数不超过17次,给出方案。n<=1E5。 思考 对于ai=aj-1且i<j的数字,一定要保持其相对顺序。可以根据这个关系分成若干个块,并根据每个块最小的数从小到大将块编号为1~m。 接着把所有奇数编号的块选出来放在左侧。能发现这次操 阅读全文
posted @ 2019-07-08 14:39 GreenDuck 阅读(137) 评论(0) 推荐(0)
CF727F [Polycarp's problems] & [EX_Polycarp's problems]
摘要:原题题意 给出长度为n的有序数组,m次询问,每次给出一个正整数x。你要删除数组中最少的元素,使得数组中的前缀和+x都为非负整数。允许离线,n≤750,m≤200,000。 原题思路 首先注意到,x能成功通过测试当且仅当前缀和中最小的数≥x。 将询问从大到小排个序,对于一个新的询问,每次尝试从数组中删 阅读全文
posted @ 2019-03-26 21:09 GreenDuck 阅读(214) 评论(1) 推荐(0)