传送门 先来考虑一下二维时的情况,那么对于 $x$ 相同的点,我们按 $y$ 排序,然后相邻的一对对消除 最后 $x$ 坐标相同的点最多剩下一个,那么此时所有点的 $x$ 坐标都不一样 再按 $x$ 把 $x$ 相邻的一对对删除即可 扩展到三维,显然也可以同样的思路,先把 $x,y$ 相同的点按 $z$ 一对对消除,然后在把 $x$ 相同的点按 $y,z$ 相邻的一对对消除 最后按 $x,y,z$ 相邻的一对对消除即可 #include<iostream> #include<cstdio…
Codeforce 1237C2 Balanced Removals (Harder) (幾何.思維) 今天我們來看看CF1237C2 題目連結 題目 給你偶數個三維座標點,每次選其中兩點,如果兩點為對角的盒子(可以退化成2,1維)中不包含其他未移除的點,那麼就可以把這兩點移除.要輸出一個合法的移除順序 想法 如果現在只有一維,那麼問題就簡單了,把座標排序一下,兩個兩個移除就好. 所以我們如果能夠把問題化約到一維上就解決了. 觀察到,如果現在有n個(不保證偶數)一維的點,那麼刪除到最後會最多剩下…
这么妙的题怎么没人发题解啊 首先这是三维的,我们可以对其进行降维打击 先考虑一维怎么做? 我们可以对其该维坐标进行排序,按照顺序输出,可能会多余一个 那拓展到二维呢? 我们可以把它转化成一维,分成很多个一维后执行上述操作,把一维中多的一些点存下来,可以保证这些点的一维值两两不等,于是按照另一维坐标输出就行了 那三维呢? 其实和二维是一样的,用类似操作转化成二维即可 \(Code:\) #include<bits/stdc++.h> using namespace std; #define il…
Description You are given a string s consisting only of characters 0 and 1. A substring [l, r] of s is a string slsl + 1sl + 2... sr, and its length equals to r - l + 1. A substring is called balanced if the number of zeroes (0) equals to the number…
inputstandard input outputstandard output You are given a string s consisting only of characters 0 and 1. A substring [l, r] of s is a string slsl + 1sl + 2… sr, and its length equals to r - l + 1. A substring is called balanced if the number of zero…
题目链接:http://codeforces.com/problemset/problem/873/B 题目大意:一个字符串全部由‘0’和‘1’组成,当一段区间[l,r]内的‘0’和‘1’个数相等,则称为平衡子串,求最长的平衡子串. 解题思路:将0换成-1,算出每个点的前缀和,若两个点前缀和相同,从第一个点到第二个点之前的字符串则为平衡串,求出最长的即可. 代码: #include<iostream> #include<cstring> #include<cstdio>…
C - Alphabetic Removals ≤k≤n≤4⋅105) - the length of the string and the number of letters Polycarp will remove. The second line contains the string s consisting of n lowercase Latin letters. Output Print the string that will be obtained from s after P…
传送门 很妙的题 首先先考虑一个简化的问题,现在有一行格子让你填 你要么填一格 要么填两格 有的格子不让你填 问你填了 $a$ 个一格和填了 $b$ 个两格有多少种方案 那么显然先只考虑放两格的方案,这个可以简单 $dp$ 得到,设 $f[i][j]$ 表示前 $i$ 个格子放了 $j$ 个两格的方案数 那么如果 $i,i-1$ 都没障碍,那么 $f[i][j]=f[i-1][j]+f[i-2][j-1]$ ,否则 $f[i][j]=f[i-1][j]$ 然后再来考虑填一格的,显然剩下的 $to…
传送门 这一题是真的坑人,时间空间都在鼓励你用 $NTT$ 优化 $dp$...(但是我并不会 $NTT$) 看到题目然后考虑树形 $dp$ ,设 $f[i][0/1]$ 表示 $i$ 个节点的树,根节点为奇数/偶数的方案数 然后发现对于 $f[i][0/1]$ 的所有方案,把节点编号同时加一个偶数后根节点奇偶性不变,把节点编号加一个奇数后根节点的奇偶性变了 那么就可以对每个 $f[i][0/1]$ 枚举左右子树转移了,因为确定总点数所以左子树点数就有一个范围,在那个范围内枚举子树大小 $j$…
传送门 首先显然的,如果一个位置开始播放了两圈还没结束,那么就永远不会结束 先考虑位置 $1$ 开始播放,用一个 $multisetset$ 维护一下当前听的所有歌,直到某一首歌 $r$ 不合法了就停止,此时播放的区间即为位置 $1$ 开始的答案 然后考虑从位置 $2$ 开始播放时和从位置 $1$ 开始播放有什么变化,显然播放的歌曲一定可以到 $r$ (反证法容易证明),并且 $multiset$ 里少了一首位置 $1$ 的歌 那么直接把 $multiset$ 更新一下,然后继续模拟过程直到下一…