Codeforces
linkfqy
A link to FQY.
展开
-
【单调栈】Codeforces 601B Lipshitz Sequence
题面在这里单调栈裸题……可以发现一个很显然的结论:L(h)L(h)只会从相邻两个位置得到具体证明可以把L(h)L(h)看作斜率然后每个子序列的权值就是Max{|ai−ai−1|}Max\{ |a_i-a_{i-1}|\}把ai−ai−1a_i-a_{i-1}看成did_i,用一个单调栈维护就好了因为询问只有100,所以每次询问可以直接O(n)O(n)搞。示例程序:原创 2017-08-09 22:18:47 · 842 阅读 · 0 评论 -
【贪心+线段树】Codeforces 557C Arthur and Table
题面在这里其实很简单……暴枚最长桌脚的长度ll,然后长度比ll长的桌脚全部都要砍掉长度比ll短的桌脚选择代价前kk小的砍掉用线段树维护……示例程序 :原创 2017-10-25 12:50:01 · 922 阅读 · 0 评论 -
【线段树+Hash】Codeforces 452F Permutation
题面在这里按顺序枚举i,则ai±ka_i\pm k必须在同一侧(即同时出现或同时不出现)维护权值线段树其实就是[ai−k,ai][a_i-k,a_i]和[ai,ai+k][a_i,a_i+k]对称线段树维护正反两个hash值就好了示例程序:原创 2017-10-05 21:25:48 · 665 阅读 · 0 评论 -
【字符串+乱搞】Codeforces 762C Two strings
题面在这里一开始题目看错了……还以为是求LCA\text {LCA}……其实很简单:对A串的每个位置求能匹配到B串的最长前/后缀然后就是在A串上枚举一个位置ii,把[1,i][1,i]能匹配的前缀 和(i,n](i,n]能匹配的后缀拼起来就好了答案在这里面求最优示例程序:原创 2017-10-25 09:58:20 · 630 阅读 · 0 评论 -
【扫描线+贪心+线段树】Codeforces 458C Elections
题面在这里考虑暴枚dd表示所有的对手选票不大于dd那么选票大于dd的对手都需要抢选票,如果这样自己的票数还是不够就从选票小于等于dd的对手哪里抢选票这个可以用线段树维护前K小示例程序:原创 2017-10-24 19:02:30 · 894 阅读 · 0 评论 -
【并查集】Codeforces 566D Restructuring Company
题面在这里对于本题,只需要再维护一个并查集表示i所在联通块的最右位置因为相邻两个元素之间的关系至多被处理1次所以均摊是O(q⋅α(n))O(q\cdot \alpha (n))示例程序:原创 2017-10-22 17:10:59 · 568 阅读 · 0 评论 -
【DFS】Codeforces 717E Paint it really, really dark gray
题面在这里其实就是用DFS递归处理:对于子树x,先把它的所有儿子子树处理掉然后再看x,如果颜色不对,为了不改变下面的颜色,就x→fa→xx\rightarrow fa \rightarrow x如果x是根就比较特殊了,可以x→son→xx\rightarrow son\rightarrow x示例程序:原创 2017-10-21 14:26:57 · 696 阅读 · 0 评论 -
【矩阵乘法优化DP】Codeforces 717D Dexterina’s Lab
题面在这里首先要知道Nim游戏的结论:当前局面所有堆的异或和为0则先手必败其实就是要求异或和不为0的概率fi,jf_{i,j}表示前i堆,异或和为j的概率转移矩阵非常优美:Ti,j=p(i⊕j)T_{i,j}=p(i\oplus j)注意异或和有可能大于x,为此WA了一发……好不爽示例程序:原创 2017-10-08 20:23:26 · 980 阅读 · 0 评论 -
【暴力讨论+主席树】Codeforces 853C Boredom
题面在这里按照每次询问的子矩阵,把整个矩阵分为9块:1 2 3 4 5 6 7 8 9(块5是询问的子矩阵)那么块1与块5,6,8,9中的点有贡献,累计sum(1)∗sum(5+6+8+9)sum(1)*sum(5+6+8+9)(sum表示这个块里点的个数)……以此类推,暴力讨论每个块的贡献就好了怎么求sum?由于每一列有且只有1个点其实就是求一个序列的指定区间中值属于某个范围的个数用主席树维护就好原创 2017-09-27 18:00:31 · 621 阅读 · 0 评论 -
【贪心+并查集】Codeforces 853A Planning
题面在这里这题其实非常水……只需要按照(Ci,i)(C_i,i)的优先级顺序对每个航班取能取的最早的时刻这个贪心很显然吧……示例程序:原创 2017-09-27 17:47:22 · 725 阅读 · 0 评论 -
【贪心+堆】Codeforces 752D Contest Balloons
题面在这里显然每次只要给排名比自己大的人送气球那么肯定选需要最小气球的人来猥琐他然后更新一下排名比自己大的人的集合就好了示例程序:原创 2017-09-02 10:44:01 · 556 阅读 · 0 评论 -
【二分+乱搞】Codeforces 743E Vladik and cards
题面在这里发现子序列的长度是单调的,所以可以直接二分答案如果答案确定了,那么每个数字(1~8)(1\text{~}8)只能取⌊mid8⌋\lfloor \frac {mid} 8 \rfloor或⌊mid8⌋+1\lfloor \frac {mid} 8 \rfloor+1再8!8!暴力枚举一下8个数字出现的顺序然后直接乱搞就可以验证答案是否符合题意复杂度:由于加了很多剪枝,复杂度远小于O(nlog原创 2017-09-24 15:08:39 · 603 阅读 · 0 评论 -
【2-SAT】Codeforces 876E National Property
题面在这里其实就是2-SAT……对于每个字母,考虑是否改掉那么只需要相邻两个满足字典序,所有的单词就都满足字典序了然后应该很好处理吧……nm打反狂WA 3发……示例程序:原创 2017-10-17 14:38:23 · 906 阅读 · 0 评论