上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 22 下一页
摘要: 题目大意 题解 直接按要求平衡即可,因为源汇可以出入所以要连n->1 贡献根据c<f和c>f讨论,一开始把c设作max(c,f),根据f的变化使c在>=f的情况下尽量靠近原c code #include <bits/stdc++.h> #define fo(a,b,c) for (a=b; a<=c 阅读全文
posted @ 2020-09-17 22:18 gmh77 阅读(147) 评论(0) 推荐(0)
摘要: 题目大意 题解 很快想出来了,但细节挺多 可以发现答案是2L的倍数,每个数与T和X有关,和T的具体值关系不大 先把T模2L,将点分成四类,从右往左下车后能/否往右,从左往右下车后能/否往左,全否称为0,全是称为1,从右往左称为左,从左往右称为右 可以发现不存在先左后右的情况,因为一个左意味着x>L- 阅读全文
posted @ 2020-09-17 20:57 gmh77 阅读(351) 评论(0) 推荐(0)
摘要: 题目大意 题解 首先只有能被拓扑的点才能被选,分成森林之后考虑计算 如果一个树的根仍连向未选点,那么这个根要选的话只能最后选,dp求 否则一个树没有固定的最后选的,直接算会算重,考虑对于一种方案将其唯一计算 把树提出来,把点按照拓扑序编号,每次硬点前i-1个必选,第i个必不选,这样就可以唯一算到,对 阅读全文
posted @ 2020-09-17 12:02 gmh77 阅读(152) 评论(0) 推荐(0)
摘要: 题目大意 题解 哈希,表示成Σai*p^i(i可以为负),设Si表示后缀哈希值,sumi表示前缀>+1<-1的和 那么区间[l,r]满足当且仅当$S_l-S_r*p^{sum_r-sum_}=S_1$,移项后乘上p^sum(l-1),枚举lmap统计 要写双哈希 code #include <bit 阅读全文
posted @ 2020-09-16 12:24 gmh77 阅读(127) 评论(0) 推荐(0)
摘要: 题目大意 题解 二分+hash判断 长链剖分求k级祖先 性质:一个点的k级祖先所在链长度>=k 证明:如果该点和祖先在同一条链上则得证,否则存在更长的链 在每条链顶维护往上/下len个,找的时候先跳到2i级祖先(2i<k且i最大),然后O(1)找即可 因为2^i级祖先所在链长度>=2^i,且k-2^ 阅读全文
posted @ 2020-09-15 22:52 gmh77 阅读(200) 评论(0) 推荐(0)
摘要: 题目大意 题解 一道找规律的题目手玩了一天晚上直接打表切了我tmsb 一个显然的思路:把an用ab的某种运算表示出来,然后找规律 那么这个运算显然要满足结合律,题目给的运算并不符合 直接用置换群的概念,这样运算满足结合律,原来的$f(p,q)=p^{-1}q$ 由于置换的乘法要考虑左右,因此$c=a 阅读全文
posted @ 2020-09-15 20:07 gmh77 阅读(180) 评论(0) 推荐(0)
摘要: 题目大意 题解 缩点双前缀和判断,注意连通性与重边 code #include <bits/stdc++.h> #define fo(a,b,c) for (a=b; a<=c; a++) #define fd(a,b,c) for (a=b; a>=c; a--) #define min(a,b) 阅读全文
posted @ 2020-09-14 21:59 gmh77 阅读(204) 评论(0) 推荐(0)
摘要: 题目大意 题解 想了一天结果连边都没有挨到 结论:如果a1>=an,则车一定会先去1,之后从1去往n 证明:n=2时满足,n>2时如果车在n-1~n处,因为a1>=an所以1想的话可以直接消掉n的影响,同时2~n-1也会跟着这么做(其实根据题目的描述来说每个人的选择与本轮其他人的选择无关,但是也可以 阅读全文
posted @ 2020-09-14 12:10 gmh77 阅读(130) 评论(0) 推荐(0)
摘要: 题目大意 交互题 有一个[1,n]中的数x,要求在10000次操作内找出,有一个集合{1...n}和三种操作 A:询问集合内a的倍数个数 B:询问集合内a(a>=2)的倍数个数,同时删掉除x外所有a的倍数 C:回答 题解 在被Good Bye2019打出心里阴影后九个月没打了尝试上分 由于10000 阅读全文
posted @ 2020-09-13 07:26 gmh77 阅读(180) 评论(0) 推荐(0)
摘要: 题目大意 题解 裸题 建SAM,在SAM上面数位dp维护位置和当前长度即可 注意要先枚举新加的数,然后统一跳fail直到可以往下接,否则时间不能保证 时间复杂度O(10*nd^2) code #include <bits/stdc++.h> #define fo(a,b,c) for (a=b; a 阅读全文
posted @ 2020-09-12 21:42 gmh77 阅读(214) 评论(0) 推荐(0)
摘要: 题目大意 题解 从各种意义上来说都很离谱的题 看到k<=1e3,一眼k^2logn,结果是(n+m)k,1.5s两亿 并且还是上升子序列,所以用nlogn的方法在不确定时维护指针扫一遍转移即可 转移的时候记下来上一个非-1的位置,最后贪心填 关于如果是单调不减的思考(口胡): 在维护的时候维护填入的 阅读全文
posted @ 2020-09-12 20:17 gmh77 阅读(185) 评论(0) 推荐(0)
摘要: 题目描述 有n堆石子,第i堆有xi个。 Alice和Bob轮流取石子(先后手未定),Alice每次从一堆中取走a个,Bob每次从一堆中取走b个,无法操作者输。 不难发现只会有四种情况:Alice必胜;Bob必胜;先手必胜;后手必胜。 你需要选定若干堆石子(共有2^n种方案),Alice和Bob只能在 阅读全文
posted @ 2020-09-12 15:11 gmh77 阅读(408) 评论(0) 推荐(1)
摘要: 题目大意 题解 类似二维,二分后变成一个六顶点八面体,维护四对面x+y+z,x+y-z,x-y+z,x-y-z的限制 要求对这个不等式组求解,想过一些做法感觉不可行 考虑换元,设A=-x+y=z,B=x-y+z,C=x+y-z,则x+y+z=A+B+C,变成关于A+B+C,A,B,C的限制,这个可以 阅读全文
posted @ 2020-09-11 22:41 gmh77 阅读(127) 评论(0) 推荐(0)
摘要: 题目大意 题解 直接费用流连边有n^2条边,所以考虑新建四个点分别表示四种绝对值情况,然后和这四个点连即可 因为求的是最大值所以没有问题 code 记得标记队列里的元素 #include <bits/stdc++.h> #define fo(a,b,c) for (a=b; a<=c; a++) # 阅读全文
posted @ 2020-09-10 22:09 gmh77 阅读(135) 评论(0) 推荐(0)
摘要: 题目大意 题解 不知道能不能过的乱搞做法:求出一次重心和二次重心,暴力判断路劲上的,从二次开始判断应该会更快,还可以加个二分 一条链就直接二分并判断相邻两个的值,往更小的那边跳 树的话就点分治算重心答案再判断临边,但如果是菊花图就炸了 设一个点的贡献时wx^1.5,其中x是距离,改成判断导数即可,走 阅读全文
posted @ 2020-09-09 22:49 gmh77 阅读(202) 评论(0) 推荐(0)
摘要: 题目大意 题解 一开始想枚举每段的分界再判断,然而不好搞 实际上把每个点到两边的距离设为(x,y),类似https://www.cnblogs.com/gmh77/p/12813589.html,变为用一条折线把所有点分成两个集合 直接dp折线,转移时要么继承上一行位置,要么转移到前面的某个点,线段 阅读全文
posted @ 2020-09-09 21:35 gmh77 阅读(190) 评论(0) 推荐(0)
摘要: 题目大意 题解 把一个点拆成两个点,L->R和R->L连成二分图,n-匹配数就是链数,链数-1就是答案 所以贪心匹配就行了,最后根据首尾LR情况有4种,LR和RL在存在LL或RR时都可以消掉 如果同时存在LR和RL且没有LL和RR就会挂掉,所以在找的时候优先构出LL和RR即可 这样的话就不会同时有L 阅读全文
posted @ 2020-09-08 22:40 gmh77 阅读(224) 评论(0) 推荐(0)
摘要: 题目大意 https://www.luogu.com.cn/problem/AT4502 题解 二分+map/栈判断 code #include <bits/stdc++.h> #define fo(a,b,c) for (a=b; a<=c; a++) #define fd(a,b,c) for 阅读全文
posted @ 2020-09-08 21:31 gmh77 阅读(204) 评论(0) 推荐(0)
摘要: 题目大意 题解 不难但是因为字符串太菜所以想了很久 排行榜上跑得快的一些做法假了,不知道有没有更简单的做法 结论:存在一种最优序列,使得Si是Si-1的后缀,证明把任意一种最优的不断删掉末尾将其顶住 也可以同时满足开头但是不需要,这样可以写个O(n^2)KMP暴力来拍 把SAM建出来,同一个点上的串 阅读全文
posted @ 2020-09-08 20:40 gmh77 阅读(115) 评论(0) 推荐(0)
摘要: 题目大意 一个长度2n的ab各n个的ab串,每次可以同时删第i个a和第i个b,求剩下的最大字典序的串 n<=3000 题解 菜 把a当作+1b当作-1,在前缀和为0的位置划开变成若干段,那么删只会影响到段的内部 结论:在同一个段内,每个ab对(x,y)的x和y的大小关系相同,否则一定会经过前缀和为0 阅读全文
posted @ 2020-09-07 17:17 gmh77 阅读(233) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 22 下一页