
Codeforces
文章平均质量分 57
Rose_max
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Codeforces 水题选刷
翻译会给出在代码中 Ctrl+F点开网页搜索,直接查题号即可 有一些很棒的题我会单独拿出来写题解的,特别水的题就不做了嘻嘻嘻 Codeforces 938C /* 题解: 给定两个正整数n,m(m≤n),对于一个n阶0-1方阵, 其任意m阶子方阵中至少有一个元素“0”,则可以求解这个方阵中的“1”的最大数目。现求解这个问题的逆向问题:已知这个最大数目为X,求相应的n和m。 */ ...原创 2018-03-26 09:14:24 · 1139 阅读 · 2 评论 -
[Codeforces1046D][BFS序][树状数组]Interstellar battle
翻译 给出一棵树以及树上的点消失的概率 Q次修改 每次修改一个点消失的概率 问每次修改之后当前树剩下的连通块个数的期望 Q<=200000 N<=100000 题解 通过这题gay到了一个新姿势: 树上连通块个数=点数-边数 相当于动态维护一个E(V−E)E(V-E)E(V−E) 根据期望的线性性,上式可以写为E(V)−E(E)E(V)-E(E)E(V)−E(E) 可以先将消失...原创 2018-09-23 09:03:43 · 253 阅读 · 0 评论 -
[Codeforces1046B][圆方树]Hyperspace Highways
翻译 给你一张N个点M条边且边权均为1的图 Q次询问两点之间的最短路 性质: 如果图中有环 这个环上的点构成的子图一定是一个完全子图 题解 如果有环那么显然环上任意两点的距离都是1 建出圆方树 数一下两点路径上圆点个数+方点个数 乱撸一下… 其实只是来扔板子的 #include<cstdio> #include<cstring> #include<cstdli...原创 2018-09-23 09:19:13 · 389 阅读 · 0 评论 -
[Codeforces348E][bzoj4342][DP]Pilgrims
Description 在很久以前有一片土地被称为 Dudeland。Dudeland 包含 n 个城镇, 它们用 n − 1 条双向道路连接起来。这些城镇通过道路可以两两互达。这 里有 m 个修道院坐落在 m 个不同的城镇。每个修道院有一个教徒。 在一年之始,每个教徒会选择离他最远的一个修道院。如果有多个, 他会把所有的都列入清单。在 “BigLebowskiday” 里,每个教徒会随机选 择...原创 2018-10-07 21:51:08 · 420 阅读 · 2 评论 -
[Codeforces908G][DP]New Year and Original Order
翻译 定义S(x)表示x的数位从小到大排序后得到的值 如S(505)=55,S(43231)=12334 求∑S(i)\sum S(i)∑S(i),i&lt;=n,n&lt;=10700i&lt;=n,n&lt;=10^{700}i<=n,n<=10700 题解 很套路的东西 考虑把贡献拆开 比如 11122233344 11111111111 —...原创 2018-10-08 19:35:47 · 372 阅读 · 0 评论 -
[Codeforces436D][DP]Pudding Monsters
翻译 有一条无限长的数轴 上面放着n个布丁 相邻两个布丁会黏在一起,移动任意一块另外一块也会移动 每次你可以向左或者向右移动一块布丁,这块布丁会一直运动到撞到一块布丁为止 然后他们就黏在一起了 数轴上有m个特殊点 你可以做无数次操作,求最多能覆盖多少个特殊点 n<=100000,m<=2000 题解 容易发现,最后布丁一定会分成一段一段的 其中每一段的左边或者右边一定有一个没有动...原创 2018-10-09 14:28:30 · 331 阅读 · 2 评论 -
[Codeforces314E][DP]Sereja and Squares
翻译 Sereja在平面上画了n个点,第i点(1<=i<=n)坐标为(i,0)。然后Seraja在每个点上标记了一个大写或小写的英文字母。Seraja不喜欢字母’x’,所以她没有用’x’标记任何点。Seraja认为,当标记方式满足以下条件时,这些点就被“美丽地”标记了: 1.所有点能够被分成若干点对,每个点在且仅在一个点对中; 2.在每个点对中,横坐标较小的点被小写字母标记,横坐标较...原创 2018-10-09 17:09:28 · 965 阅读 · 1 评论 -
[Codeforces1097F][莫比乌斯反演]Alex and a TV Show
翻译 n个可重集,有Q次操作 1 u v 表示将第u个可重集的元素置为1个v 2 u a b 表示将第u个可重集置为第a个可重集和第b个可重集的并集 3 u a b 表示将第u个可重集置为第a个可重集的每个元素和第b个可重集的每个元素的gcd的并集 4 u v 表示求在第u个可重集中元素v的出现次数是奇数还是偶数 n<=1e5 Q<=1e6 1<=v<=7000 题解...原创 2019-01-05 09:11:03 · 565 阅读 · 0 评论 -
[bzoj5052][Codeforces765F][主席树]繁忙的财政官/Souvenirs
Description 伟大的王朝即将在下个月迎来奥西利斯节,这是整个埃及最盛大的节日。胡夫非常重视这次盛会,所以他经常向财 政官询问国家的财政事项。但是同时,有成堆的文件等待着财政官检视,为此他忙得不可开交。现在他正处于崩溃 的边缘(辞职申请都写好了)。他听说你这个异乡人拥有神奇的能力,于是带着丰厚的礼品来带了你的居所,看样 子你是没法拒绝他了…….财政官的工作很简单,但是国王的视察很繁琐(官...原创 2019-03-26 19:22:22 · 398 阅读 · 0 评论 -
[codeforces1019B][二分法求函数零点]The hat
翻译 有一个大小为nnn的圈,满足相邻的数绝对值差为111且nnn为偶数 你每次可以询问一个位置上的数的数值 现在问是否存在一个位置xxx满足xxx与x+n2x+\frac{n}{2}x+2n上的数是相等的 询问次数不超过60次 题解 第一场vp直接给我掉飞分了肯定 没有课内玩家日常gg 首先可以知道n%4n\%4n%4不为000时是一定无解的 我们先定义d[i]d[i]d[i]为iii位...原创 2019-04-02 16:36:44 · 287 阅读 · 0 评论 -
[codeforces1060F][DP]Shrinking Tree
翻译 你有一棵nnn个点的树,做n−1n-1n−1次如下操作 随机选择一条当前存在的边并把他的两个端点缩起来,新端点的编号在两个端点间等概率随机 问最后每个点成为最后一个点的概率 n≤50n\leq 50n≤50 题解 吼啊 先放一下参考了这位爷爷的 自己很辣鸡的一点就是遇见这种nnn不小不大的就不会玩了… 首先当然可以想到,枚举需要计算的顶点 然后把他拉到根节点,开始考虑怎么计算 然后就被...原创 2019-04-03 19:40:18 · 377 阅读 · 0 评论 -
[Codeforces713E][DP]Sonya Partymaker
翻译 题解 注意一个人确定了一个方向就不会改变… 容易想到二分+dpdpdp判断 然后考场上就想了个假飞的做法23333333 我们考虑怎么check 首先能够发现是答案的上界是最长的一段,不妨把这一段转到111和nnn之间,为什么稍后会介绍 把这个问题扔到序列上做的话,我们可以这样dpdpdp 设f[i]f[i]f[i]表示覆盖完了[1,i][1,i][1,i],往后最远还能覆盖到多少 ...原创 2019-04-13 10:49:04 · 457 阅读 · 0 评论 -
[Codeforces1139D][DP][莫比乌斯反演]Steps to One
翻译 给你一个数nnn 每次随机在[1,n][1,n][1,n]中选一个数加入aaa数组 如果aaa数组中gcd=1gcd=1gcd=1时就结束 问aaa数组的期望长度 题解 把图建出来,发现如果去掉自环就是一个DAG 发现自己居然不会求这个期望… 先记住一点东西 f[x]=∑(f[y]+1)∗tf[x]=\sum (f[y]+1)*tf[x]=∑(f[y]+1)∗t 然后如果已经求出了除了...原创 2019-04-21 16:35:07 · 614 阅读 · 0 评论 -
[Codeforces1153F][数论]Serval and Bonus Problem
翻译 你有一个长度为LLL的数列,在上面随机选择2∗n2*n2∗n条线段 求至少被覆盖了KKK次的区间的长度和的期望 题解 数学菜逼来啦 先考虑一个子问题,在一个[0,1][0,1][0,1]的数轴上随机撒iii个点,求某个间隔长度的期望 抛出结论的话就是期望是1i+1\frac{1}{i+1}i+11 感性认知的话我们可以想象一下每个区间的期望其实是相同的… 理性认知的话我们考虑这iii...原创 2019-04-14 16:52:13 · 758 阅读 · 0 评论 -
[Codeforces938F][DP]Erasing Substrings
翻译 给你一个长度为n的串 K次操作(K==⌊log2n⌋\lfloor \log_2n\rfloor⌊log2n⌋) 第i次操作去掉长度为2i−12^{i-1}2i−1的串 求最后剩下的字典序最小的串 n<=5000 题解 显然我们可以找到一种方案 使得删去的串在原串中没有相交的情况 设f[i][j]f[i][j]f[i][j]表示删去后剩下的串长度为i,删除掉的长度状态为j 第...原创 2018-10-05 21:06:03 · 329 阅读 · 0 评论 -
[Codeforces755G][DP][NTT]PolandBall and Many Other Balls
翻译 给你n个球,把他们分成K组,允许有的球没有组 每组不能为空也不能超过两个球 求方案数 n<=1e9 K<=2^15 题解 设f[i][j]f[i][j]f[i][j]表示前iii个球分成jjj组的方案数 朴素DP容易想到 f[i][j]=f[i−1][j]+f[i−1][j−1]+f[i−2][j−1]f[i][j]=f[i-1][j]+f[i-1][j-1]+f[i-2]...原创 2018-10-05 19:33:55 · 494 阅读 · 0 评论 -
[Codeforces938D][Dijkstra]Buy a Ticket
翻译: 给定一张包含n(n<=2*10^5)个节点的图,给出m(m<=2*10^5)条双向边,边有权,每个点也有权 对于每个点i,你要输出i到任意一个点再回来的最小代价,到达那个点时要加入那个点的点权,经过则不用 题解 可以发现,假如不计边权的情况下,一个点到另一个点的来回路径是固定的。即为这个点到那个点的最短路。在这个条件下,我们直接把边权全部*2,一个点到...原创 2018-04-02 11:30:26 · 233 阅读 · 0 评论 -
[Codeforces946F][DP]Fibonacci String Subsequences
翻译: 定义f[i]=f[i-1]+f[i-2],+表示拼接的意思,即为f[i-1]与f[i-2]拼接起来组成f[i] 给出一个子串(长度<=100),求这个子串在fn(n<=100)的子序列中出现了多少次 答案对1e9+7取模 题解 由于英文不好我理解成了子串与后缀 然后发现就不会做了2333 上网%了一发题解发现原来我我我我看错题了 ...原创 2018-03-27 20:36:04 · 432 阅读 · 0 评论 -
[Codeforces946E][贪心]Largest Beautiful Number
翻译 定义一个数为美丽数,当且仅当这个数长度为偶数,且他的某一个排列可以组成一个回文数 给出n(n<=2*10^100000),求小于n的最大美丽数 题解 从定义中可以发现,一个数为美丽数的情况,当且仅当他出现过的所有数字出现的次数均为偶数次 贪心地想,如果这个数较高的位能取大,那么一定取大 预处理在当前位置i,每个数字出现的次数是偶数次还是奇数次 ...原创 2018-03-28 08:18:08 · 398 阅读 · 0 评论 -
[Codeforces940F][莫队算法]Machine Learning
翻译: 给出一个长度为n(n<=100000)的序列,序列中每个数a[i]<=10^9 设c[i]表示第i种数出现的次数 q(q<=100000)次询问,询问共有两种 第一种 1 x y 表示求序列中x~y c[i]的mex。mex表示最小的没有出现过的值(不包括0) 第二种 2 x y 表示把序列中第x位的数替换为y 题解 治数据结构学傻系...原创 2018-03-28 16:01:53 · 351 阅读 · 0 评论 -
[Codeforces451E][数论][容斥原理]Devu and Flowers
翻译 给定n个盒子,每个盒子里有a[i](1< =a[i]<=10^12)朵花,现在要求从盒子中取出共m(1<=m<=10^14)朵花,求不同的方案数有多少种 题解 容斥原理+多重集组合数 首先很明显能看出这是个多重集组合数,且是m更为一般的情况 根据容斥原理有公式 ans=Cn−1n+m−1−∑i=1nCn−1n+m−1−(a[i]+...原创 2018-07-17 10:39:47 · 293 阅读 · 0 评论 -
[Codeforces1045B][乱搞] Space Isaac
翻译 有0~m-1的数被分成了两个集合 每次你可以从两个集合中任取一个数做加法并对m取模 问最后0~m-1中不能被组合出来的数有多少个 会给出你A集合 大小不超过200000 m&lt;=1e9 题解 比赛的时候想不到… 不妨先看一个数在什么情况下不能被表示出来 设这个数为P 如果有一个数x在A集合 显然(P-x)mod m也要在A集合 否则显然可以表示出这个数 x可以分为两段 小于P和大于...原创 2018-09-23 20:23:04 · 527 阅读 · 0 评论 -
[Codeforces1058E][分治]Vasya and Good Sequences
翻译 给你一些数 你可以把这些数二进制表示中的1任意移动 问有多少个区间满足 你做完上面的操作后他们的异或和为0 题解 显然是给你一些数 你要把每个数分成两半 加入两个集合 要求这两个集合的数值相同 大概就是结论吧… 你会发现 这一段区间满足条件的话 当且仅当区间权值和&gt;=区间MAX*2 然后分治就好了… #include&lt;cstdio&gt; #include&lt;cstr...原创 2018-09-25 08:24:57 · 312 阅读 · 0 评论 -
[Codeforces960G][NTT][DP]Bandit Blues
翻译 给你三个正整数 n,a,b,定义 A 为一个排列中是前缀最大值的数的个数,定义 B 为一个排列中是后缀最大值的数的个数,求长度为 nn 的排列中满足 A = a且 B = b 的排列个数。n≤10^5,答案对 998244353取模。 题解 很妙 我是膜beginend的! 开始想的是每次加入n+1 然后就凉了啊… 转换一下思路 每次加入最小的一个数 显然只有在加入到最前方的时候才会对...原创 2018-10-01 16:13:58 · 315 阅读 · 0 评论 -
[Codeforces301E][DP]Yaroslav and Arrangements
翻译 如果一个数列相邻两项之差的绝对值均为 1(我们认为首项和末项也相 邻),并且首项是数列中最小的元素之一,那么我们称之为良好数列。 如果一个数列单调不降且长度在 1 到 n 之间,数列中每个数的值在 1 到 m 之间,且重排后能得到至少 1 个至多 k 个良好数列,那么我们称之为优秀数列。 给出 n、m、k,求优秀数列的个数。 答案对 1000000007 取模 题解 这题有点东西… 把...原创 2018-10-11 09:47:37 · 480 阅读 · 0 评论 -
[Codeforces856C][DP]Eleventh Birthday
翻译 对于每组数据,给出n个数字,求有多少种排列方式,使得排列后的n个数字首尾相接形成的数字能被11整除。答案对998244353取模 题解 把位数是奇数和是偶数的数分开考虑 如果有i个奇数的数 显然有floor(i2)floor(\frac{i}{2})floor(2i)个数的贡献必须取负 偶数的数不管怎么插入奇数的数里面 奇数的数的贡献都不会改变 可以直接dp f[i][j][k]f[...原创 2018-10-03 11:31:26 · 269 阅读 · 0 评论 -
[Codeforces958C3][DP][树状数组]Encryption (hard)
翻译 给你一个长度为n的序列,要求你把它分成K段 每段的价值为这段的总权值%P 要求总价值最小 n<=500000 K<=100 P<=100 题解 方程 f[i][j]=min(f[k][j−1]+(sum[i]−sum[k])mod&ThinSpace;&ThinSpace;P)f[i][j]=min(f[k][j-1]+(sum[i]-sum[k])\...原创 2018-10-03 16:09:18 · 312 阅读 · 0 评论 -
[Codeforces954H][DP]Path Counting
翻译 给你一棵树 其中深度为i的点有a[i]个儿子 求树上路径长度为K(1<=K<=2*n-2)的两个点集合有多少个 n<=5000,a[i]<=1e9 题解 设f[i][j]表示在深度为i的节点,只在他两棵子树内与他距离相距为j的点对数量 对于一个序列i a[i] a[i+1] a[i+2] a[i+3] 在dp到i的时候,长度为j的数量其实就是j分成两个...原创 2018-10-04 09:35:05 · 254 阅读 · 0 评论 -
[Codeforces643E][DP]Bear and Destroying Subtrees
翻译 给你一棵初始只有根为1的树 两种操作 1 x表示加入一个新点以x为父亲 2 x表示以x为根的子树期望最深深度 每条边都有12\frac{1}{2}21的概率断裂 题解 性质:我们只用考虑40层以内的节点 因为深度过大的的概率太小不予考虑 设f[i][j]f[i][j]f[i][j]表示以i为根的子树 最深深度不大于j的概率 计算答案可以直接 ∑(f[x][i]−f[x][i−1])∗...原创 2018-10-04 10:47:47 · 257 阅读 · 0 评论 -
[Codeforces264E][线段树][DP]Roadside Trees
翻译 在 1∼n1∼n1∼n 的位置能种树,刚开始能种树。 第 iii 个时刻会有操作: 1.在一个没种过树的位置 pip_ipi种一颗高度为hih_ihi的树。 2.砍掉第 xix_ixi棵树,保证这个位置以后不会种树。 每天树会长高111 每执行一次操作,输出最长上升子序列长度 任意时刻树的高度不同 题解 看完题…不会做 看完数据范围…有点想法 每次加入的高度不会超过10 每次删除...原创 2018-10-12 10:32:25 · 336 阅读 · 1 评论 -
[Codeforces888F][DP]Connecting Vertices
翻译 给你一个邻接矩阵 为1代表可以连边 要求你把N个点连成一棵树 其中没有任意两条边满足(i<x<j<y) 求方案数 题解 显然是一个只满足包含的情况 设f[i][j]表示在(i,j)区间内,i->j有一条边且区间联通的方案数 设g[i][j]表示在(i,j)区间内,只要求区间联通的方案数 如果g直接转移g的话显然会算重 枚举左端点与谁连边,用f转移到g,这样不会有...原创 2018-10-05 10:24:41 · 370 阅读 · 0 评论 -
[Codeforces1155F][DP]Delivery Oligopoly
翻译 给你一张双联通图,问你最少留下多少条边使得他还是双联通 这里的双联通指两点能够通过至少两条边不相交路径互达 题解 貌似是一个经典问题 fuck考场掉分一点都不想写这场题解来着… 我们考虑成为答案的双联通图是可以怎么构造的 我们可以每次拿出一条链,然后使得答案的双连通图变成一个更小的双联通图 然后一个思路就出来了 预处理一个g[S][x][y]g[S][x][y]g[S][x][y]表示...原创 2019-04-24 19:14:10 · 765 阅读 · 0 评论