A

假设所有的 \((i+a_i)\) 模 \(n\) 意义下构成排列则答案为 YES,否则为 NO.
时间复杂度 \(O(n)\) 或 \(O(n\log n)\).
代码: 79150268

B

由于每行每列必须有至少一个 S,所以每行每列为 # 的格子要么构成一个连续区间要么不存在。
如果某行或列不存在 #,则该行或列的格子必须放在一个不存在 # 的列或行。
于是得到了有解的必要条件:(1) 每行每列 # 的格子要么不存在要么构成连续区间;(2) “存在一行无 #”和“存在一列无 #”二者要么同时满足要么同时不满足。
充分性:每个连通块全放 S,再随便一个位置放 N,显然最优。
时间复杂度 \(O(nm\alpha(nm))\).
代码: 79341530

C

首先按大小关系建图,拓扑排序,有解当且仅当无环(全放 \(\exists\) 即可)。
对于一个 \(x_i\) 而言,显然如果有 \(j\gt i\) 且 \(i,j\) 之间有大小关系(即存在一条路径从 \(i\) 到 \(j\) 或从 \(j\) 到 \(i\)),那么 \(j\) 不可以是 \(\forall\).
于是对每个点统计一下能到它的和它能到的点中编号最小的,如果大于它本身就可以是 \(\forall\),否则设为 \(\exists\),这样的方案是最优的。
而这保证了每个 \(\forall\) 是所有和它限制了大小关系的点中编号最小的,因此一定能构造合法解。
时间复杂度 \(O(n+m)\).
代码: 79198382

D

由于贡献关于 \(b_i\) 是凸的(\(f(b_i+1)-f(b_i)\) 随 \(b_i\) 的上升而下降),所以可以考虑这样一个过程:初始时 \(b_i\) 都是 \(0\),进行 \(K\) 轮,每一轮选择当前 \(b_i\lt a_i\) 且 \(\Delta(b_i)=f(b_i+1)-f(b_i)\) 最大的 \(i\),把 \(b_i\) 加一。
考虑优化:每次选择的 \(\Delta\) 单调不升,因此可以二分最终结束时的 \(\Delta\),判断加的轮数是否 \(\ge K\) 即可。注意二分边界,有可能 \(\Delta=x\) 的时候个数 \(\lt K\),\(\Delta=x-1\) 的时候个数 \(\gt K\),这时候随便调整一下即可。
时间复杂度 \(O(n\log W)\).
代码: 79350373

E

不难发现限制形如“在区间 \([l_i,r_i]\) 中要操作一次 \(u_i\)”. 假设我们提取出所有的限制(共 \(S\) 个),就可以在 \(O(S\log n)\) 的时间内得到答案——用一个优先队列维护,每次时间后推,把所有 $l\le $ 当前时间的加入优先队列,然后删去 \(r\) 最小的。
由 LCT 的经典分析可知有用的限制总数是 \(O(n+m\log n)\) 级别。考虑用 LCT 提取出这些限制。
每一次 access 时,当轻重边切换的时候更新切换的点的限制列表,拉成同一棵 Splay 之后打一个标记,表示这些点最后一次被 access 的时间。
注意细节问题。无论重边切换成什么(即便是 \(0\))都要加到列表里,最后对列表进行处理,去掉 \(0\),合并相邻相同的。典型错误做法是如果切换成 \(0\) 则不加入列表,这样会导致后面的区间的 \(l\) 变大。
时间复杂度 \(O(n\log n+m\log^2 n)\).
代码: 79797116

F

题解: https://www.cnblogs.com/suncongbo/p/12872134.html

Codeforces 1344 题解相关推荐

  1. Dominated Subarray[codeforces 1257C]题解

    Dominated Subarray[codeforces 1257C] CF-1257C(Dominated Subarray) 题目 输入 输出 题目大意 样例输入 样例输出 CF-1257C(D ...

  2. Codeforces 833B 题解(DP+线段树)

    题面 传送门:http://codeforces.com/problemset/problem/833/B B. The Bakery time limit per test2.5 seconds m ...

  3. Codeforces 1314 题解

    这场整体质量感觉可以算 2020 年度(目前为止)最垃圾. A 按数值从小到大扫描,维护一个优先队列,每遇到一个数加入队列,每次数值发生 \(+1\) 时弹掉队列中价值最大元素,然后把此时队列中所有元 ...

  4. Codeforces 1338 题解

    A 对于每个 \(i\) 我们求出 \(b_i\) 表示 \(i\) 这个数最少要增加多少(\(\max^i_{j=1}a_j-a_i\)),答案等于最小的 \(k\) 使得 \(2^k-1\ge \ ...

  5. Codeforces 1149 题解

    A 特判全是 \(2\),对于有 \(1\) 的情况把 \(1\) 放到第二个和最后. 时间复杂度 \(O(n)\). 代码: 76492031 B 考虑只有一次询问的情况,有一个 \(O(n^3)\ ...

  6. Codeforces 1025 题解

    A 若 \(n=1\) 则答案为 YES,否则答案为 YES 当且仅当存在两个相同的字符. 时间复杂度 \(O(n)\). 代码: 76484733 B 求出所有 \(\text{lcm}(a_i,b ...

  7. Codeforces 1188 题解

    A 首先对于 A1 题,可以加减任意实数,结论是答案为 YES 当且仅当没有度数为 \(2\) 的点.必要性显然,充分性通过下面的构造来证明. A2 题的构造:考虑随便找一个叶子节点为根,记为 \(r ...

  8. codeforces #1 题解

    codeforces1A 题目链接:http://codeforces.com/problemset/problem/1/A 题意:给定一个n*m的矩形,然后给一个a*a的地板,求最少需要多少地板可以 ...

  9. Codeforces #635题解

    Codeforces round 635赛后解题报告 A. Ichihime and Triangle 首先这是一道几何题 那么我们知道,在此题中, x , y , z x,y,z x,y,z 满足 ...

最新文章

  1. 安全问题会对网络购物季产生负面影响吗
  2. 第4章 管道与FIFO
  3. python自增_python – 类实例的自动递增ID
  4. mysql中序列的使用,在MySQL中使用序列的简单教程
  5. 带有AWS Lambda和Java的无服务器FaaS
  6. 容器编排技术 -- Kubernetes JSONpath Support
  7. 介绍Angular的注入服务
  8. 全球约30%的智能手机受高通新漏洞影响,打补丁状况不明
  9. Java安全之数字证书
  10. 19.高性能MySQL --- 锁的调试
  11. NSGA2算法MATLAB
  12. 机器学习(周志华) 第十六章强化学习
  13. 洛必达法则介绍及使用注意点
  14. 计算机文件夹加密码怎么设置,如何为文件夹设置密码,教您如何设置
  15. 超级玛丽游戏(C语言)
  16. 955 互联网公司白名单来了!这些公司月薪 20k,没有 996!福利榜国内大厂只有这家!...
  17. python中括号的作用_python中中括号
  18. JAVA_面向对象2
  19. 社区运营秘笈:病毒式营销!
  20. python-pymongo模块

热门文章

  1. 《应试教育洗礼的“好”学生的学习行为特征分析》 2019-11-02
  2. 台湾大学林轩田机器学习技法课程学习笔记5 -- Kernel Logistic Regression
  3. PHP中的else怎么用,php中ifelse与elseif使用区别实例介绍
  4. MatConvnet中集成的损失函数(孪生网络的思考)
  5. QT计算器功能的实现
  6. P6 计算机系统的层次结构
  7. BugkuCTF-Misc:做个游戏(08067CTF)
  8. idea怎么搜索文件——search everywhere
  9. 安装虚拟机 Network boot from AMD Operating System no...
  10. Source Insight 4怎么取消函数结束提示字符