【题解】CF#852 E-Casinos and travel】的更多相关文章

天啊我怎么这么蠢……写了一个树形dp,的确发现记录的很多值并没有什么用,然而当时脑子没转过弯来还是写了这个树形dp……虽然能A但就不解释了,总之是个垃圾算法(ー̀дー́) #include <bits/stdc++.h> using namespace std; #define maxn 1000000 #define mod 1000000007 #define int long long int n, ans, rec, fa[maxn]; ], f[maxn][]; int read()…
题目链接 \(Desccription\) 给定一棵树,John从任意一个点开始,每次走向一个未到达过的点.每个点都可以有或没有赌场,每经过一个赌场心情都会反转,旅行开始前心情很好. 问有多少种方案使得旅行结束后心情很好. \(n≤10^5\) \(Solution\) 把题目抽象一下: 每个点随机一个\(0/1\)的权值,随机选择一个点作为根,有多少种方案使得根节点到所有叶节点路径上的异或和为\(0\). 发现叶节点到根的路径的权值异或和可以由叶节点确定.记叶节点数为\(tot\). 1.若所…
CF Round #524 Div.2 - 竞赛题解 不容易CF有一场下午的比赛,开心的和一个神犇一起报了名 被虐爆--前两题水过去,第三题卡了好久,第四题毫无头绪QwQ Codeforces 传送门 Tab, 先写了ABC题,后面的之后再补 QwQ 『解析』 A-Petya and Origami 读懂题意就会做--根据题意可以求出3种"sheet"各自需要的数量,然后每一种的数量除以k向上取整后求和就是答案. B-Margarite and the best present 简单的…
还是dfs? 好像自己写的有锅 过不去 看了题解修改了才过qwq #include <cstdio> #include <algorithm> #include <cstring> #include <stack> #include <set> using namespace std; ],v[],n,m,k,ans; ],vis[]; ]; stack<int> S; void dfs(int u){ if(sons[u].size…
Olya and magical square - 竞赛题解 借鉴了一下神犇tly的博客QwQ(还是打一下广告) 终于弄懂了 Codeforces 传送门 『题目』(直接上翻译了) 给一个边长为 \(2^n(n>0)\) 的正方形,你需要对它进行恰好 \(k(k>0)\) 次"剪切","剪切"的方法是:选取一个边长不为 \(1\) 的正方形,将它剪成 \(4\) 个大小相同的正方形,不能挪动位置. 要求在 \(k\) 次操作后存在一条路径:从左下角的正方…
题目大意 有一棵\(n\)个点的树,令\(f(u)\)表示给树黑白染色,满足以\(u\)为根的树中,每个叶子节点到根的路径上黑点数量为偶数的染色方案数,求\(\sum\limits_{u=1}^n f(u)\) 题解 可以发现,确定了非叶子节点后,可以通过调整叶子的颜色使得每种方案均成立.令\(leaf\)为叶子的个数,答案为\(2^{n-leaf}(n+leaf)\) 当然也可以通过树形\(\mathrm{dp}\)来解决,不过这样比较麻烦 卡点 快速幂写挂(\(\mathrm{CSP}\)前…
题面 题目大意: 给定一个 \(n\) , 所有军人的数量均在 \([1, n]\) 给定 \(a_i\) 代表高度为 \(i\) 的军人的个数 你要将这些军人分成 \(k\) 行, 满足下面两个条件 每行人数相等 同一行任意两个军人的高度差的绝对值不超过 1 问你最多能够选多少个军人分成 \(k\) 行 题解 题目满足单调性, 可以二分 我们二分一个 \(mid\) 表示每一行有 \(mid\) 个军人 不难证得首先将高度相等的分成一行, 再分高度不相等的是最优的 简要证明 : 可将不是上述方…
题目 传送门 题意 给出 \(n\),输出 \(a\) ,\(b\) (\(0 < a \leq b < n\)),使\(a+b=n\)且 \(\operatorname{lcm}(a,b)\) 最小. 思路 前言 如果你没有到现场,你永远也不会体验到cf 的 OI赛制有多强,评测队列曾超过15min,不得不让此次比赛unrated. 但是,我也不知道怎么B.C题提交把语言选成了:C11 ,然后在20分钟后完美地CE 了. 声明 lcm : 最小公倍数 minn : n 的最小质因数 mul…
随便模拟下就过了qwq 然后忘了特判WA了QwQ #include <cstdio> #include <algorithm> #include <cstring> #include <set> #include <queue> using namespace std; ],v[],fir[],nxt[],cnt=,dep[],squ[]; ]; void addedge(int ui,int vi){ cnt++; u[cnt]=ui; v[c…
是一道水题 虽然看起来像是DP,但其实是贪心 扫一遍就A了 QwQ #include <cstdio> #include <algorithm> #include <cstring> #include <set> #include <map> using namespace std; ],b[],f[]; ],bx[]; int main(){ scanf("%d",&n); scanf(); scanf(); ;i&…