Codeforces 1188 题解
A
首先对于 A1 题,可以加减任意实数,结论是答案为 YES
当且仅当没有度数为 \(2\) 的点。必要性显然,充分性通过下面的构造来证明。
A2 题的构造:考虑随便找一个叶子节点为根,记为 \(rt\)。则对于任何一个非根节点 \(u\),我们可以实现将根到该点的路径上的边权 \(+w\),其中 \(w\) 为任意偶数,其余边权不变。如果 \(u\) 是叶子,那么直接执行操作 \((rt,u,w)\);否则 \(u\) 点子树内一定有两个来自不同子树的叶子,设为 \(v_1,v_2\),则执行 \((rt,v_1,\frac{w}{2}),(rt,v_2,\frac{w}{2}),(v_1,v_2,-\frac{w}{2})\). 那么我们直接自底而上每次计算出要新加的权值然后按这种方法构造即可。
时间复杂度 \(O(n)\) 或 \(O(n^2)\),操作次数不超过 \(3n\).
代码: A1: 56571529 A2: 74629864
B
由于 \(\forall i,j, a_i-a_j\neq 0\),原条件等价于 \((a_i-a_j)(a_i+a_j)(a_i^2+a_j^2)=a_i^4-a_j^4=k(a_i-a_j)\). 把 \((a_i^4-ka_i)\mod p\) 丢进 set
中即可。
时间复杂度 \(O(n\log p)\).
代码: 74623487
C
首先对 \(a_i\) 排序。考虑对每个 \(i\) 求出有多少个权值 \(\ge i\) 的子序列。直接设 \(f[i][j]\) 表示长度为 \(i\) 的序列末尾是 \(a_j\) 的方案数,前缀和转移即可做到一次 DP 复杂度 \(O(nk)\),那么总的复杂度就是 \(O(nk\max a_i)\).
考虑优化,我们发现价值一定不超过 \(\frac{\max a_i}{k-1}\),于是就做完了。
时间复杂度 \(O(n\max a_i)\).
代码: 74622276
D
首先对 \(a_i\) 排序并令 \(a'_i=\max^n_{j=1} a_j-a_i\). 目标转化为给所有的 \(a_i\) 同时加上一个数 \(X\),最小化所有数 \(1\) 的数位个数总和。
考虑数位 DP,设 \(f[i][j]\) 表示 \(X\) 的 \(0\) 至 \((i-1)\) 位是 \(j\),这时发现只有一个后缀的 \(a_i\) 会发生进位。于是把第二维改成前 \(j\) 小的数不会发生进位 (后面的数会发生进位),转移分类讨论一下,发现只需要把所有数按 \(\mod 2^{i+1}\) 的值排序然后求出每个前缀内有多少个第 \(i\) 位为 \(1\) 的数就可以做到 \(O(1)\) 转移。应该可以用归并排序优化复杂度。
时间复杂度 \(O(n\log n\log W)\) (\(W=\max a_i\)) 或 \(O(n\log W)\).
代码: 74606189
E
题解: https://www.cnblogs.com/suncongbo/p/12591476.html
Codeforces 1188 题解相关推荐
- Dominated Subarray[codeforces 1257C]题解
Dominated Subarray[codeforces 1257C] CF-1257C(Dominated Subarray) 题目 输入 输出 题目大意 样例输入 样例输出 CF-1257C(D ...
- Codeforces 833B 题解(DP+线段树)
题面 传送门:http://codeforces.com/problemset/problem/833/B B. The Bakery time limit per test2.5 seconds m ...
- Codeforces 1344 题解
A 假设所有的 \((i+a_i)\) 模 \(n\) 意义下构成排列则答案为 YES,否则为 NO. 时间复杂度 \(O(n)\) 或 \(O(n\log n)\). 代码: 79150268 B ...
- Codeforces 1314 题解
这场整体质量感觉可以算 2020 年度(目前为止)最垃圾. A 按数值从小到大扫描,维护一个优先队列,每遇到一个数加入队列,每次数值发生 \(+1\) 时弹掉队列中价值最大元素,然后把此时队列中所有元 ...
- Codeforces 1338 题解
A 对于每个 \(i\) 我们求出 \(b_i\) 表示 \(i\) 这个数最少要增加多少(\(\max^i_{j=1}a_j-a_i\)),答案等于最小的 \(k\) 使得 \(2^k-1\ge \ ...
- Codeforces 1149 题解
A 特判全是 \(2\),对于有 \(1\) 的情况把 \(1\) 放到第二个和最后. 时间复杂度 \(O(n)\). 代码: 76492031 B 考虑只有一次询问的情况,有一个 \(O(n^3)\ ...
- Codeforces 1025 题解
A 若 \(n=1\) 则答案为 YES,否则答案为 YES 当且仅当存在两个相同的字符. 时间复杂度 \(O(n)\). 代码: 76484733 B 求出所有 \(\text{lcm}(a_i,b ...
- codeforces #1 题解
codeforces1A 题目链接:http://codeforces.com/problemset/problem/1/A 题意:给定一个n*m的矩形,然后给一个a*a的地板,求最少需要多少地板可以 ...
- Codeforces #635题解
Codeforces round 635赛后解题报告 A. Ichihime and Triangle 首先这是一道几何题 那么我们知道,在此题中, x , y , z x,y,z x,y,z 满足 ...
最新文章
- VIL-100: 一个新的车道线检测数据集和基线模型(ICCV2021)
- 武安高中计算机学院那个好,河北邯郸最好的5所高中,前两所学霸如云,看看有你的母校没?...
- 如何利用office绘制施工进度计划横道图?
- Linux学习进阶!!
- leetcode练习
- ie不支持max-height的解决之法
- Python中的虚拟环境-virtualenv
- 方便好用的在线CPU性能调优工具--perf的常见用法
- tomcat重启时保持会话关闭
- k8s中资源对象单数、复数、简写的区别
- 【开发工具集】功能强大的网络设置工具——IPOP
- 实验一 SNMP网络管理架构的验证
- linux鼠标手势软件,在Deepin Linux系统使用Easystroke鼠标手势会更方便工作
- 病毒是什么?地球上万物都是相生相克的,那么病毒在自然界的天敌是什么?...
- android读sdcard大文件系统,Android中使用SDcard读取文件
- 边城性格悲剧_悲剧! 我的手表已延迟!
- 连载:中国最早的一代官派留学生--留美幼童 (结尾)
- Excel遇到错误div/0显示为0或者不显示
- idea中Rebuild是什么意思
- U盘删除附带的CD驱动器内的数据