regions p5901 2009 ioi
【区间 dp】P5189 [COCI2009-2010#5] ZUMA 题解
P5189 容易想到区间 dp,考虑设计状态。 首先如果只有 \(l,r\) 两维的话,是无法转移的。然后发现 \(m\) 是转移的一个必要的条件,可加入 \(m\) 这一维。由于是区间 dp,所以只需考虑向左或向右加珠子,不妨令 \(f_{i,j,k}\) 消除 \([i,j]\) 以及 \(i\ ......
2019-2020 ICPC Northwestern European Regional Programming Contest (NWERC 2019)
\(A. Average Rank\) 将每个人的排名看作是前面一个人的贡献,然后采用类似懒标记的形式优化复杂度。 int sum[N],point[N],cnt[N],pre[N],laz[N]; void solve(){ int n=read(),w=read(); laz[0]=w; cnt ......
【算法笔记】 数位dp (例题是 [SCOI2009] windy 数)
数位dp 引入 数位 :是指把一个数字按位数一位一位地拆开,关注它每一位上的数字。如果拆的是十进制数,那么每一位数字都是 0~9,其他进制可类比十进制,就比如 链接: [SCOI2009] windy 数的二进制同理。 常见特征 要求统计满足一定条件的数的数量(即,最终目的为计数); 这些条件经过转 ......
P2595 [ZJOI2009] 多米诺骨牌
轮廓线 DP + 外部容斥。似乎是 CDQ 论文题。 有一个 \(n\times m\) 的矩形表格,其中有一些位置有障碍。现在要在这个表格内放一些 \(1\times2\) 或者 \(2\times1\) 的多米诺骨牌,使得任何两个多米诺骨牌没有重叠部分,任何一个骨牌不能放到障碍上。并且满足任何相 ......
P1864 [NOI2009] 二叉查找树 题解
二叉查找树 首先该树的中序遍历是唯一可以确定的(直接按照数据值排序即可)。 然后,因为权值可以被修改成一切实数,故我们完全可以把权值离散化掉。 于是我们现在可以设置一个 DP 状态 \(f[l,r,lim]\) 表示: 区间 \([l,r]\) 中的所有东西构成了一棵子树,且树中最小权值不小于 \( ......
2020-2021 ICPC, NERC, Southern and Volga Russian Regional Contest (Online Mirror, ICPC Rules) N. Waste Sorting
有五种种类的垃圾,数量分别为 \(a_1, a_2, a_3, a_4, a_5\) 。 第一种为纸质垃圾 第二种为塑料垃圾 第三种双非垃圾 第四种基本纸质垃圾 第五种基本塑料垃圾 有三种垃圾桶,容量分别为 \(c_1, c_2, c_3\) 。 第一种垃圾桶可以放入:纸质垃圾和基本纸质垃圾 第二种 ......
正如ioi2023noip二十连游寄
day 1 抽象场。 T1是诈骗题,剩下三题都是撒币概率期望。赛事没有人过t3t4。 毫无意义。 T2想不到可以把相似的状态归在一起。从 \(O(2^{3n})\) 到 \(O({\begin{pmatrix}n+m\\n\end{pmatrix}}^3)\),很难想到。不过foi的时候甚至听说过拆 ......
洛谷P4158 [SCOI2009] 粉刷匠 题解
所有的 \(DP\) ,只要式子一推出来(不管复杂度),那就很简单了,因为优化是成千上万种的…… 思路1: 我们考虑设 \(f[i][j][k]\) 表示:当前 \(DP\) 到第 \(i\) 块木板的第 \(j\) 个位置,共涂了 \(k\) 次,所能获得的最大收益。因为还要枚举当前这次涂是从哪到 ......
[IOI2000] 邮局
[IOI2000] 邮局 题目描述 高速公路旁边有一些村庄。高速公路表示为整数轴,每个村庄的位置用单个整数坐标标识。没有两个在同样地方的村庄。两个位置之间的距离是其整数坐标差的绝对值。 邮局将建在一些,但不一定是所有的村庄中。为了建立邮局,应选择他们建造的位置,使每个村庄与其最近的邮局之间的距离总和 ......
The 2023 ICPC Asia EC Regionals Online Contest (I) B.String
The 2023 ICPC Asia EC Regionals Online Contest (I)B.String 题意: 给定等长字符串\(S_1,S_2\),下标从\(1\)开始 给出\(q\)个询问,每次给出一个字符串\(T\) 每次询问计算出三元组数量\((i, j, k)(1\le i\ ......
2022-2023 ICPC Central Europe Regional Contest
The 1st Universal Cup. Stage 8: Slovenia D. Deforestation 这道题出题人比较谜语人,对于一个分叉点,只能选择若干个儿子和父亲组成一组,剩下的儿子之间不能相互组合。所以从叶子节点开始贪心处理就好。对于一个父亲他有若干个儿子,就贪心的选择剩下部分更 ......
The 2021 ICPC Asia Macau Regional Contest
A. So I'll Max Out My Constructive Algorithm Skills 首先一行正一行反的把所有的行拼到一起,然后判断一下正着走时候合法不合法就反过来走就好。 #include <bits/stdc++.h> using namespace std; #define ......
The 2022 ICPC Asia Jinan Regional Contest
A. Tower 首先用了 dp 验证出把一个数字变成另一个数字的最优解一定是能除就先进行除法,然后再使用加一减一。 这样我们就有\(O(\log n)\)的复杂度求出把一个数变成另一个数的最小代价。 然后就是猜测最终的目标一定是某个数除了若干次二得到的。所以就枚举一下目标即可。 #include ......
The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online (The 2nd Universal Cup
The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online (The 2nd Universal Cup. Stage 1: Qingdao) J - Press the Button \(1 \leq a, b, c, d \leq 10^6\) ......
The 2023 ICPC Asia EC Regionals Online Contest (I) - Problem C. Multiply Then Plus
离线询问,建立时间线段树,那么每条直线存在的时间是一个区间,对应时间线段树上$\mathcal{O}(\log n)$个节点,每个询问对应时间线段树上某个叶子到根的$\mathcal{O}(\log n)$ 个节点。 对于时间线段树中的某个节点,它代表的直线集合是静态的,问题转化为静态区间查询。对于 ......
The 2023 ICPC Asia EC Regionals Online Contest (I) - Problem H. Range Periodicity Query
对于一个周期长度$p$来说,如果它不是$S_k$的周期,那么它一定不是$S_{k+1}$的周期,因此可以二分出分界线$t_p$满足它是$S_p,S_{p+1},S_{p+2},\dots,S_{t_p}$的周期,但不是$S_{t_p+1}$的周期。对于一个询问$(k,l,r)$,问题等价于寻找区间中 ......
The 2023 ICPC Asia Hong Kong Regional Programming Contest (The 1st Universal Cup, Stage 2:Hong Kong)
题解: https://files.cnblogs.com/files/clrs97/2022Hong_Kong_Tutorial.pdf Code: A. TreeScript #include <bits/stdc++.h> using namespace std; using LL = lon ......
The 2022 ICPC Asia Hangzhou Regional Programming Contest
题解: https://files.cnblogs.com/files/clrs97/2022ICPCHangzhouTutorial.pdf Code: A. Modulo Ruins the Legend #include<bits/stdc++.h> using namespace std; ......
IOI2022 无线电信号塔
询问实际上是求笛卡尔树上的叶子结点个数,因为非叶子一定无法与子树内通信 发现如果两个叶子 \(u,v\) 以 \(\text{LCA(u,v)}\) 的某一祖先 \(p\) 进行通信,那么 \(p\) 的祖先也一定能通信,保证两两能通信的关键就是一棵对于所有关键点的虚树,由于关键点之间并不存在祖先后 ......
[SHOI2009] 会场预约 题解
LG 任意时刻每个点最多被一条线段覆盖 暴力删每条线段是对的 插入 \([l,r]\) 时需要删除的线段要么被 \([l,r]\) 包含,要么覆盖 \(l\) 或 \(r\) 性质非常强所以做法非常多 一种比较神奇的:对于两条线段 \([l_{1},r_{1}],[l_{2},r_{2}]\),定义 ......
题解 CF1034C【Region Separation】/ SS221116D【Xiong AK 10 IOI】
很妙的性质题!全是意识流证明见过吗? problem 每次选一个非空边集删掉,谓之曰砍树。砍树后需要满足每个连通块的点权和相同。 在一个方案中可以砍很多次树,都要满足砍树后的要求。一共有多少种合法方案呢? \(n\leq 10^6,1\leq a_i\leq 10^9\)。 solution 假如我 ......
IOI2023
来感受一下 IOI 的题目质量。 没做 T6。 CF436E Cardboard Box tag:选数问题的调整方法,贪心 考虑如果我们把一个数两个都选,那么根据简单调整法,显然不存在 \(b_i\) 比它小的数一个都没选。所以假设我们枚举选了两次的 \(b_i\) 最大的数,那么它前面都选了至少一 ......
[IOI2023] 山毛榉树
题目链接1,题目链接2 题目的“绝妙置换”定义较为复杂,我们无法直接进行转化。考虑列举出一些必要条件,从中寻找思路: 对于树上的一条边 \((x,y)\),其中 \(x\) 为 \(y\) 的父节点。那么 \(x\) 在绝妙置换中的位置必定小于 \(y\) 的位置。 对于同个颜色节点的父亲集合,在绝 ......
洛谷 P5811 - [IOI2019] 景点划分
小清新构造题。 不妨假设 \(a\le b\le c\)。显然我们会让大小为 \(a,b\) 的部分连通,这样肯定是不劣的。建出 DFS 树,考虑其重心 \(r\),如果 \(r\) 的某个子树大小 \(\ge a\),我们在这个子树内挑一个大小为 \(a\) 的连通块,在抠掉这个子树之外的部分挑一 ......
The 2022 ICPC Asia Shenyang Regional Contest
C. Clamped Sequence 因为\(n\)的范围不大,并且可以猜到\(l,r\)中应该至少有一个在\(a_i,a_i-1,a_i+1\)上。所以直接暴力枚举\(l\)或\(r\)然后暴力的计算一下 #include <bits/stdc++.h> using namespace std; ......
The 2022 ICPC Asia Xi'an Regional Contest
C. Clone Ranran 最优解一定是先复制,在做题。最多只需要复制大约 30 次,直接枚举即可 #include <bits/stdc++.h> using namespace std; #define int long long int a , b, c; void solve(){ ci ......
Gym 104270 The 2018 ICPC Asia Qingdao Regional Programming Contest (The 1st Universal Cup, Stage 9: Qingdao)
A. Sequence and Sequence B. Kawa Exam 可以发现,对答案会产生影响的只有割边,把所有边双缩起来,然后就是一个森林。 考虑一个树的时候怎么做,就是对于每条边求出这条边两端的众数个数,考虑线段树合并,每次动态维护子树内的众数和子树外的众数。 #include<iost ......
IOI游记
IOI 游记 day1 来到考场,励志AKIOI 1min 把题看完 1.01min AC T1 1.011min AC T2 1.05min AC T3 day2 第二天真简单,我直接秒掉所有题,因为我太强了,就不详细写了。 总结 100+100+100+100+100+100=600 我真是太强 ......
Gym 104172 The 2023 ICPC Asia Hong Kong Regional Programming Contest (The 1st Universal Cup, Stage 2Hong Kong)
A. TreeScript 令 \(f_u\) 表示 \(u\) 及 \(u\) 子树中的节点都创建的最小数量。 如果 \(u\) 只有一个儿子,那么可以将子树最后一个节点存储在当前的 \(u\) 中,答案就是 \(f_v\)。 若 \(u\) 有多个儿子: 令 \(t=\max\limits_{v ......