随笔分类 -  CF题解

摘要:题面 "传送门" 分析 先考虑$O(nk)$的做法,先按s从小到大排序,每个串的数显然形成了n个连续区间$[s_i+l,s_i+r]$,且这些区间的左端点升序排列,然后把区间合并就可以知道有多少个不同的数了 然后考虑优化 对于s[i]产生的区间,我们考虑s[i]和s[i+1]产生的区间之间的间隔 若 阅读全文
posted @ 2019-04-06 23:18 birchtree 阅读(364) 评论(0) 推荐(0)
摘要:题面 "传送门" 分析 这种题的重点是寻找不变量 我们发现如果改变4个角,则每一行和每一列的xor和不会改变(1^0=0^1) 所以只要算出异或和然后比较就可以 代码 cpp include include define maxn 505 using namespace std; int n,m; 阅读全文
posted @ 2019-04-06 23:06 birchtree 阅读(218) 评论(0) 推荐(0)
摘要:题面 "传送门" 题意: 给出长度为n的序列b,t,定义一个子序列的值为$\min\{ b_i\} \times \sum t_i$,求所有子序列中值最大的一个,输出最大值 分析 假如固定某个b[i],则最大值为$b_i \times \sum t_j (b_j\geq b_i)$,且t[j]为所有 阅读全文
posted @ 2019-03-23 15:13 birchtree 阅读(634) 评论(0) 推荐(0)
摘要:题面 "传送门" 分析 对于每一个数a[i],找到它后面第一个大于它的数a[p],由p向i连边,最终我们就会得到一个森林,且p是i的父亲。为了方便操作,我们再增加一个虚拟节点n+1,把森林变成树。 由于序列不是递增的,不能二分。维护一个单调栈,栈顶元素最小。从n到1依次对每个 数操作,弹出栈里比它小 阅读全文
posted @ 2019-03-09 13:13 birchtree 阅读(410) 评论(0) 推荐(0)
摘要:题面 "传送门" 分析 二分答案,考虑如何判定 可以用贪心的方法,每次找最快没电的电脑,在没电前1单位时间给它充电 正确性显然 实现上可以维护一个堆,存储每个电脑电用完的时刻,每次从堆顶取出最小的一个给它充电。设二分值为mid,对于每个电脑记录它的充电次数num[i],则没电的时间就是$\lfloo 阅读全文
posted @ 2019-03-09 12:39 birchtree 阅读(329) 评论(0) 推荐(0)
摘要:题面 "传送门" 分析 法1(区间DP): 首先,我们可以把连续的相等区间缩成一个数,用unique来实现,不影响结果 {1,2,2,3,3,3,5,3,4} {1,2,3,5,3,4} 先从一个极端情况来考虑,a={1,2,3,4,5},此时答案显然为4,从1个点出发,先把它变成和左边的点相等,再 阅读全文
posted @ 2019-02-11 10:42 birchtree 阅读(618) 评论(2) 推荐(1)
摘要:题面 "传送门" 分析 通过二分答案,我们显然可以求出数组中最大的数,即等差数列的末项 接着随机取一些数组中的数,对他们两两做差,把得到的差取gcd即为公差 例a={1,5,9,13},我们随机取了1 9 13,两两的差为8,4,12,取gcd为4 已知末项和公差即可求出首项 可以证明错误的概率32 阅读全文
posted @ 2019-02-11 09:08 birchtree 阅读(337) 评论(0) 推荐(0)
摘要:题面 "传送门" 分析 我们先考虑n!在10进制下有多少个0 由于10=2 5, 我们考虑n!的分解式中5的指数,答案显然等于$\frac{n}{5}+\frac{n}{5^2}+\frac{n}{5^3}+\dots\frac{n}{5^k}(\frac{n}{5^k}\geq 1,\frac{n 阅读全文
posted @ 2019-02-11 09:02 birchtree 阅读(522) 评论(0) 推荐(0)
摘要:题面 "传送门" 分析 答案很好看出,显然是选最大的m k个数 那么如何构造方案呢 我们把最大的m k个数的位置标记为1,其他标记为0 从左到右维护一个ptr,记录有标记的数的个数,如果当前有m个有标记的数,则已经找到一个满足条件的区间分界点,break 这样的操作进行k 1次,由于ptr单调递增, 阅读全文
posted @ 2019-02-11 08:51 birchtree 阅读(313) 评论(0) 推荐(0)
摘要:题面 "传送门" 分析 观察题目中的这段伪代码,发现实际上就是求出每个节点的DFS序, 注意 ,要按编号从小到大访问每个节点,所以要对邻接表排序(可以用vector实现) 对询问离线,每个结点保存由该节点出发所有询问 第一次DFS, 求出每个点到根节点的距离,以及DFS序。顺便把每个节点的子树对应的 阅读全文
posted @ 2019-02-09 10:26 birchtree 阅读(277) 评论(0) 推荐(0)
摘要:题面 "传送门" 分析 一开始考虑贪心和DP,发现不行 考虑差分: 设d[i]=c[i+1] c[i] (i include include define maxn 100005 using namespace std; int n; int a[maxn]; int b[maxn]; int da 阅读全文
posted @ 2019-02-09 09:46 birchtree 阅读(302) 评论(0) 推荐(0)
摘要:题面 "传送门" 分析 这种计数问题,要不是纯数学推公式,要不就是dp 先处理出[l,r]中除3余0,1,2的数的个数,记为cnt0,cnt1,cnt2 设$dp[i][j]$表示前i个数的和除3余j的个数 则$dp[1][0]=cnt0,dp[1][1]=cnt1,dp[1][2]=cnt2$ 最 阅读全文
posted @ 2019-01-21 08:03 birchtree 阅读(506) 评论(0) 推荐(0)
摘要:题面 "传送门" 分析 假设k是固定的,那访问到的节点编号就是$1+(a·k \mod n )$,其中a为正整数。 通过找规律不难发现会出现循环。 通过题目中的图片我们不难发现 只有k=1,2,3,6得到的四种结果,而其他的情况都和这4种结果的某种一样 所以我们只要考虑n的因数即可 对于固定的k我们 阅读全文
posted @ 2019-01-08 14:41 birchtree 阅读(215) 评论(0) 推荐(0)
摘要:题目 "传送门" 分析 考虑$n=p^q$且p为质数的情况 设dp[i][j]表示经过i次变化后数为$p^j$的概率 则初始值dp[0][q]=1 状态转移方程为$dp[i][j]=\sum{}\frac{1}{u+1}dp[i 1][u],u\in[j,q]$ 最终的期望值$E(p^q)=\sum 阅读全文
posted @ 2019-01-07 16:51 birchtree 阅读(340) 评论(0) 推荐(0)
摘要:题面 "传送门" 题目大意:给出一个无向图,每个节点可以填1,2,3三个数中的一个 问有多少种填数方案,使两个相邻节点的数之和为奇数 分析 如果图中有奇环,一定无解 我们对图黑白染色,由于图可能不联通,记第i个连通分量的黑点数量为$b_i$,白点数量为$w_i$ 观察发现每一条边的连接的两个节点,一 阅读全文
posted @ 2018-12-16 18:54 birchtree 阅读(335) 评论(0) 推荐(0)
摘要:题面 "传送门" 题目大意: 有一个长n(n为偶数)的序列a 已知a满足 $a_1≤a_2≤⋯≤a_n$ 给出一个长度为$\frac{n}{2}$ 的序列b,定义$b_i=a_i+a_{n i+1}$ 求出序列a (输出任意一种答案即可) 分析 为了保证序列不下降,我们采用贪心的思想,先假设$a_i 阅读全文
posted @ 2018-12-16 15:30 birchtree 阅读(232) 评论(0) 推荐(0)
摘要:题面 "传送门" 分析 贪心 将度限制大于1的点连成一条链,然后将度限制等于1的点挂上去 形状如下图,其中(1,2,3)为度数限制 1的点 显然直径长度=(度数限制 1的节点个数) 1+min(度数限制等于1的节点个数,2) 那么具体如何构造? 首先将度为1和度 1的节点分开 如果有至少1个度为1的 阅读全文
posted @ 2018-12-04 16:13 birchtree 阅读(187) 评论(0) 推荐(0)
摘要:题面 "传送门" 真是令人胃疼的题面 我不管,我要把苹果都给雪菜!(滑稽)(冬马党不要打我) 分析 突然感觉这题跟今年NOIP Day1T2有点像,都是根据数加减来构造背包,只不过这题是01背包而不是完全背包 背包模型: 设总和为sum,则容量为sum/2 其实本题不需要代价,dp[j]为1表示容量 阅读全文
posted @ 2018-12-04 10:50 birchtree 阅读(265) 评论(2) 推荐(0)
摘要:题面 "传送门" 分析 考虑DP 设$dp[i][j]$表示前i个数选出的序列长度为j的方案数 状态转移方程为: $$ dp[i][j]= \begin{cases}dp\left[ i 1\right] \left[ j 1\right] +dp\left[ i 1\right] \left[ j 阅读全文
posted @ 2018-11-24 21:24 birchtree 阅读(483) 评论(0) 推荐(0)
摘要:题面 "传送门" 题目大意: 有一个黑白的棋盘,现在将棋盘上的一个子矩形全部染成黑色,另一个子矩形全部染成白色 求染完色后黑,白格子的总数 分析 我们可以发现,对于一个(1,1)到(x,y)的矩形,若xy为偶数,则黑、白的个数都是 $ \frac{xy}{2} $ 若xy为奇数,则黑格个数为$\ [ 阅读全文
posted @ 2018-11-24 20:54 birchtree 阅读(271) 评论(0) 推荐(0)