cf2107D

\(Question:\)给定一个节点为\(n(1 \leq n \leq 2e5)\)的树,定义三元组\((d,u,v)\)为从点\(u\)到点\(v\)的路径长度\(d\),每次选择一个三元组删除从点\(u\)到点\(v\)的路径上的点及相关的边,

并将其从右端加入序列\(A\),要求使序列A的字典序最大。

\(Apparent:\)始终选树的直径删除,维护以每个点为lca的直径\(f[i]\)。

\(Attention:\)每次删除后, 需更新所有祖先节点\(u\)的\(f[u]\),可以暴力更新,因为每次更新的点数一定小于等于此次删除的直径长度,所有直径长度和为\(n\),所以暴力更新总复杂度为\(O(n \log n)\)。

cf2042E

\(Question:\)给定一棵点数为\(2n(1 \leq n \leq 2e5)\)的树,每个点\(i\)有颜色\(a_i(1 \leq a_i \leq n)\),保证每种颜色出现\(2\)次, 要求选定一个联通点集满足:

  • 每种颜色至少出现\(1\)次.
  • 按编号降序排序后,字典序最小.

\(Apparent:\)考虑不选哪些点,降序排序后,能删则删,如何\(check\)?任选一点为根,动态维护每个点子树内外是否存在不可删点,问题转化为复杂数据结构,代码难度较高。

\(Attention:\)

经典刻画:一个必选根的联通块可由原树删去若干子树得到.

考虑选两个颜色相同的点为根各跑一次,此时\(check\)不需要考虑子树外的点:

  • 两个颜色相同的点的\(LCA\)及其祖先不可删.
  • 每删去一个点,其子树内的点均删去,对于已删去的点,其对应颜色的另一个点及其祖先不可删.

总时间复杂度:\(O(n \log n)\)

提交记录:code for cf2042E

cf2064E

\(Question:\)给定一个排列p和一个序列c,长度均为\(n\),以此描述一个\(n \times n\)方格图,符合以下规则:

  • \(\forall \;1 \leq i \leq n 且1\leq j \leq p_i\),存在一个颜色为\(c_i\)的方格.
  • 方格会竖直下落,直到下方存在另一个方格.

计数存在多少个\(p'\)形成的方格图与\(p\)相同,对\(998244353\)取模.

\(Apparent:\)考虑对原排列\(p\)交换元素,\(p_i\)与\(p_j(i < j)\)可交换当且仅当\(i,j\)满足以下条件:

  • \(c_i = c_j\).
  • \(max_{k=i+1}^{j-1}p_k*[c_k \neq c_i] < min(p_i,p_j)\)

然后?然后就不会了……

\(Attention:\)考虑排列\(p\)中的最小数为\(p_i\),其只能与所属同色联通块中的元素交换,令\(p_i\)可交换的集合为\(S_i\),满足\(\forall j \neq i ,S_i \supseteq S_j 或 S_i \cap S_j = \varnothing\),可以乘法原理,将答案乘上\(p_i\)所属同色连通块大小,并删除\(p_i\),联通块大小减一,重复以上步骤排列为空,以上操作可以通过并查集加链表实现。

总时间复杂度:\(O(n \alpha(n))\)

提交记录:code for cf2064E

cf记录的更多相关文章

  1. NoSQL数据库笔谈(转)

    NoSQL数据库笔谈 databases , appdir , node , paper颜开 , v0.2 , 2010.2 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 ...

  2. NoSQL数据库笔谈

    NoSQL数据库笔谈 databases , appdir , node , paper颜开 , v0.2 , 2010.2 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 ...

  3. 【题解】「CF1352A」Sum of Round Numbers

    应该是纯模拟吧. 直接输入一个字符串,然后一位一位看,如果不是0,就 k++,并计算这个数的真实的值,最后输出就行了. #include<iostream> #include<cst ...

  4. 【cf比赛记录】Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4)

    比赛传送门 只能说当晚状态不佳吧,有点头疼感冒的症状.也跟脑子没转过来有关系,A题最后一步爆搜没能立即想出来,B题搜索没有用好STL,C题也因为前面两题弄崩了心态,最后,果然掉分了. A:简单数学 B ...

  5. CF练习记录

    2018/5/6 Codeforces Round #478 (Div. 2) C http://codeforces.com/contest/975/problem/C Valhalla Siege ...

  6. 【cf比赛记录】Codeforces Round #605 (Div. 3)

    比赛传送门 Div3真的是暴力杯,比div2还暴力吧(这不是明摆的嘛),所以对我这种一根筋的挺麻烦的,比如A题就自己没转过头来浪费了很久,后来才醒悟过来了.然后这次竟然还上分了...... A题:爆搜 ...

  7. 【cf比赛记录】Educational Codeforces Round 78 (Rated for Div. 2)

    比赛传送门 A. Shuffle Hashing 题意:加密字符串.可以把字符串的字母打乱后再从前面以及后面接上字符串.问加密后的字符串是否符合加密规则. 题解:字符串的长度很短,直接暴力搜索所有情况 ...

  8. 【cf比赛记录】Codeforces Round #601 (Div. 2)

    Codeforces Round #601 (Div. 2) ---- 比赛传送门 周二晚因为身体不适鸽了,补题补题 A // http://codeforces.com/contest/1255/p ...

  9. 【cf比赛记录】Codeforces Round #600 (Div. 2)

    Codeforces Round #600 (Div. 2) ---- 比赛传送门 昨晚成绩还好,AC A,B题,还能上分(到底有多菜) 补了C.D题,因为昨晚对C.D题已经有想法了,所以补起题来也快 ...

  10. 【cf比赛练习记录】Codeforces Round #579 (Div. 3)

    思考之后再看题解,是与别人灵魂之间的沟通与碰撞 A. Circle of Students 题意 给出n个数,问它们向左或者向右是否都能成一个环.比如样例5是从1开始向左绕了一圈 [3, 2, 1, ...

随机推荐

  1. 天线增益是什么意思?DBI越大越好吗?

    作者: 技象物联网/ 行业百科 / 无线通信, 通信系统 / 2023年6月23日 11:58:21 天线增益是指天线在某个方向上相对于一个理想点源天线所辐射的功率密度的增益.换句话说,天线增益是天线 ...

  2. php中的转义字符

    " \n" ==>换行 "\r"==>回车 "\t"==>水平制表符 "\\"==> 反斜杠 & ...

  3. minecraft mods descrip

    1. [Advanced Finders]矿物探测器 mod 显示玩家周围附近矿石的方向(指针显示水平面上可到达的矿石) 探测地下深部矿脉(箭头显示最近矿脉的方向(上/下)) 发现大型矿床时发出信号( ...

  4. wxformbuilder 如何生成python 代码

    ?问题 正常通过F8->F6 ,我执行这两步操作后如下图,以.fbp格式显示,没生成文件 解决方案 object properties 下勾选python 效果图:

  5. DNS+scapy学习

    DNS前置知识 大部分介绍转自这篇文章. 官方解释: DNS ( Domain Name System ,域名系统) ,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联 ...

  6. IDEA 使用GIt提交代码时,如果不小心提交了不需要提交的内容,在本地仓库中,此时需要回滚版本,如何回滚

    选择上次提交的提交记录 选择上次提交的提交记录复制版本号 选中项目的Git重置器 填入刚复制的回滚版本号-点击Reset 这样一来就回滚回去了,本地提交就没了

  7. DEV插件--Spreadsheet1电子表格

    常用操作Spreadsheet常用属性标题栏是否可见 Spreadsheet1.TitleBar.Visible=true标题栏背景颜色 Spreadsheet1.TitleBar.Interior. ...

  8. 前端必备的 CSS 库,normalize.css

    这是一个小 CSS 样式表,是著名的库,作为 CSS 基础样式的一部分,可消除客户端渲染不一致问题. 地址是 https://necolas.github.io/normalize.css/ 别小看这 ...

  9. English interview - how to show your skills in English during the interview process?(probably used in resume,cover letter)

    Formula We can use the formula below to express our skills in English. Formula: adv/adj + verb phras ...

  10. 史上最全EffectiveJava总结(二)

    方法 49.检查参数的有效性 每次编写方法或构造函数时,都应该考虑参数存在哪些限制,并在文档中记录下来,然后在方法的开头显式地检查. 如果没有在方法开头就验证参数,可能会违反故障原子性.因为方法可能会 ...