cf记录
\(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)\)。
\(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
\(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记录的更多相关文章
- NoSQL数据库笔谈(转)
NoSQL数据库笔谈 databases , appdir , node , paper颜开 , v0.2 , 2010.2 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 ...
- NoSQL数据库笔谈
NoSQL数据库笔谈 databases , appdir , node , paper颜开 , v0.2 , 2010.2 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 ...
- 【题解】「CF1352A」Sum of Round Numbers
应该是纯模拟吧. 直接输入一个字符串,然后一位一位看,如果不是0,就 k++,并计算这个数的真实的值,最后输出就行了. #include<iostream> #include<cst ...
- 【cf比赛记录】Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4)
比赛传送门 只能说当晚状态不佳吧,有点头疼感冒的症状.也跟脑子没转过来有关系,A题最后一步爆搜没能立即想出来,B题搜索没有用好STL,C题也因为前面两题弄崩了心态,最后,果然掉分了. A:简单数学 B ...
- CF练习记录
2018/5/6 Codeforces Round #478 (Div. 2) C http://codeforces.com/contest/975/problem/C Valhalla Siege ...
- 【cf比赛记录】Codeforces Round #605 (Div. 3)
比赛传送门 Div3真的是暴力杯,比div2还暴力吧(这不是明摆的嘛),所以对我这种一根筋的挺麻烦的,比如A题就自己没转过头来浪费了很久,后来才醒悟过来了.然后这次竟然还上分了...... A题:爆搜 ...
- 【cf比赛记录】Educational Codeforces Round 78 (Rated for Div. 2)
比赛传送门 A. Shuffle Hashing 题意:加密字符串.可以把字符串的字母打乱后再从前面以及后面接上字符串.问加密后的字符串是否符合加密规则. 题解:字符串的长度很短,直接暴力搜索所有情况 ...
- 【cf比赛记录】Codeforces Round #601 (Div. 2)
Codeforces Round #601 (Div. 2) ---- 比赛传送门 周二晚因为身体不适鸽了,补题补题 A // http://codeforces.com/contest/1255/p ...
- 【cf比赛记录】Codeforces Round #600 (Div. 2)
Codeforces Round #600 (Div. 2) ---- 比赛传送门 昨晚成绩还好,AC A,B题,还能上分(到底有多菜) 补了C.D题,因为昨晚对C.D题已经有想法了,所以补起题来也快 ...
- 【cf比赛练习记录】Codeforces Round #579 (Div. 3)
思考之后再看题解,是与别人灵魂之间的沟通与碰撞 A. Circle of Students 题意 给出n个数,问它们向左或者向右是否都能成一个环.比如样例5是从1开始向左绕了一圈 [3, 2, 1, ...
随机推荐
- Wifi - 查看连接过的Wifi的密码
使用管理员身份打开命令提示符 Microsoft Windows [版本 10.0.22621.1702] (c) Microsoft Corporation.保留所有权利. C:\Windows\S ...
- 通过Kube-rbac-proxy保护 Kubernetes 工作负载中的应用容器
1.概述 kube-rbac-proxy 是 Kubernetes 生态中一个专注于"基于角色的访问控制(RBAC)"的轻量级代理组件,通常以 Sidecar 容器的形式部署在 P ...
- 多机器的键鼠互通——Synergy/Deskflow配置记录
Synergy (1.14.6) 情况一样,那么感觉就是机器之间TCP连接有问题,测试不同 一些测试命令 ss -tlnp | grep 24800 # 查看端口情况 sudo lsof -i :24 ...
- [tldr]GO使用正则表达式
简述如何使用GO调用正则表达式 是否符合条件 使用MatchString方法实现 _, err := regexp.MatchString(regex, str) 提取内容 Compile 第一步需要 ...
- windows nvm 切换node版本后,npm找不到
前言 在 windows 使用 nvm,管理 node 版本时,nvm install 14.21.3 后,发现在指定 node 版本的 node_modules 文件夹中没有对应的 npm 包,这时 ...
- kubernetes安装配置使用vGPU
前言 AI 落地时,在某些场景下 AI 模型在训练或者是推理时,其算力要求不需要占用整卡的 GPU,比如只需要0.5卡 GPU 即可满足需求. 在这种情况下,可以使用 GPU 虚拟化技术来解决这个问题 ...
- PLSQL中查询数据的时候查询结果显示中文乱码
要需要很努力才能看起来毫不费力.....1.在PLSQL中查询数据的时候查询结果显示中文乱码这里写图片描述2.需要在环境变量中新建两个环境变量:第一个:设置 NLS_LANG=SIMPLIFIED C ...
- Delphi WebBrowser内核版本修改D7
private { Private declarations } public { Public declarations } function WriteAppNameToReg:Boolean; ...
- 渗透技巧——CDN绕过
渗透技巧--CDN绕过 一.前言: 在渗透站点的时候常常会遇见站点有CDN加速情况,就无法准确的找到目标IP.首先是检测如何发现有无CDN,然后才能说绕过的问题. 二.检测有无CDN: 首先有以下几种 ...
- HashMap遍历方法
HashMap是Java中非常常用的集合类,用于存储键值对映射.遍历HashMap的方法有多种,每种方法有其特定的用途和效率.以下是几种常用的遍历方法: 1. 使用 entrySet 遍历 这是最常用 ...