【资料】好题
文章平均质量分 80
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【BZOJ2115】【WC2011】Xor
【题目链接】点击打开链接【思路要点】任取一条1到\(N\)的路径,考虑一个与其相交的环,显然,我们可以半路“绕”一次这个环,使路径的权值Xor上环的权值。这启发我们问题很可能与线性基有关。再考虑一个不与其相交的环,由于图的联通性,我们可以走出路径“绕”一次这个环,再原路返回,多走的路被走了两次,Xor和为0。因此,路径的权值同样Xor上了环的权值。所原创 2018-01-17 10:31:04 · 362 阅读 · 1 评论 -
【BZOJ2597】【WC2007】剪刀石头布
【题目链接】点击打开链接【思路要点】数据范围暗示网络流/线性规划,但直接建图不太可行,需要发掘题目性质。考虑一个原图三个点的子图,它共有3条边,\(2^{3}=8\)种形式,其中能对答案产生1的贡献的有2种。观察剩余6种形式,我们发现,它们都满足三个端点处分别是一入一出、两入、两出。如果我们把出现一次这6种形式之一看做对答案造成1点损失,那么把损失归原创 2018-01-17 10:05:55 · 335 阅读 · 0 评论 -
【BZOJ4723】【POI2017】Flappy Bird
【题目链接】点击打开链接【思路要点】首先,横纵坐标奇偶性不同的位置是小鸟无法到达的。然后,我们旋转坐标系,使得可到达的坐标\((x,y)\)变为\((x,\frac{x+y}{2})\)。如此,点击屏幕的结果是\((x+1,y+1)\),不点屏幕的结果是\((x+1,y)\)。维护一个可行的纵坐标区间,贪心即可。时间复杂度\(O(N)\)。【代码】#include<bits/stdc++.h...原创 2018-03-16 10:00:27 · 279 阅读 · 0 评论 -
【BZOJ4725】【POI2017】Reprezentacje ró?nicowe
【题目链接】点击打开链接【思路要点】这个数列是指数级增长的,小于\(10^9\)的项数只有\(O(Log10^9)\)。当这个数列的某一项达到\(10^9\)后,相差在\(10^9\)以内的两项就只有可能是相邻的偶项和奇项。因此,暴力计算数列在\(10^9\)内的项,并记录两两之差,在询问时二分即可。时间复杂度\(O(Log^210^9+QLogLog10^9)\)。【代码】#include<...原创 2018-03-16 13:10:11 · 223 阅读 · 0 评论 -
【BZOJ3244】【UOJ122】【NOI2013】树的计数
【题目链接】BZOJUOJ【思路要点】显然,顶点的编号是无关紧要的,不妨令BFS序为\(1,2...N\)。我们在BFS序上分层,即每次我们考虑下一层会包含哪些连续的点。令此时的DFS序为\(dfs_i\),\(i\)在DFS序中的位置为\(pos_i\),当前层包含\([L,R]\)且下一层包含\([R+1,X]\)。层与层之间合法的划分应该满足\(pos_{R+1}>pos_{L}\)且...原创 2018-03-04 16:21:00 · 323 阅读 · 0 评论 -
【CodeForces】CodeForces Round #468 (Div. 1 + Div. 2) 题解
【比赛链接】Div.1Div.2【题解链接】点击打开链接【Div.2 A】Friends Meeting【思路要点】模拟两个角色向中间移动即可。时间复杂度\(O(B-A)\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 100005;template <typename T> void...原创 2018-03-06 15:41:31 · 374 阅读 · 0 评论 -
【BZOJ5252】【2018多省省队联测】林克卡特树
【题目链接】点击打开链接【思路要点】问题等价于在树上选出\(K+1\)条点不相交的路径使得它们权值和最大。首先考虑一个比较显然的DP。记\(dp_{i,j,k}\)表示以\(i\)为根的子树中选取了\(j\)条路径,且点\(i\)的度数为\(k(k=0,1,2)\)的最大权值和。但这个DP状态数太多了,显然无法通过。仔细分析一下题目,我们发现,对于同一棵树,令\(f(x)\)为当\(K\)取\(x...原创 2018-04-10 20:58:38 · 361 阅读 · 0 评论 -
【BZOJ5286】【HNOI2018】转盘
【题目链接】点击打开链接【思路要点】首先有一个不是非常显然的结论,对于每个询问,一定有一种最优解是从某个点开始先等待一段时间,然后不停顿地走完一圈。关于这个结论的证明我们可以考虑我们现在有一个解的答案为\(Ans\),路径上最后一个点为\(x\),那么\(x\)之前的一个点被经过的最后时刻至多是\(Ans-1\),在这个点之后停顿会让这个点以及它之前的所有点最后被经过的时间变早,是不会更优的。把序...原创 2018-04-17 18:33:24 · 748 阅读 · 0 评论 -
【BZOJ4854】【JSOI2016】无界单词
【题目链接】点击打开链接【思路要点】我们称前\(i\)个字符与后\(i\)个字符相同的单词为\(i\)界单词。一个长度为\(N\)单词如果有界,那么其最小的界应当小于等于\(\frac{N}{2}\),因为否则,前\(i\)个字符与后\(i\)个字符就会存在重叠部分,我们一定可以构造出一个更小的界。为了解决全部两问,我们要能够回答形如这样的问题:以字符串\(S\)开头的长度为\(N\)无界单词有多...原创 2018-04-12 21:02:11 · 337 阅读 · 0 评论 -
【BZOJ5033】【JSOI2014】强连通图
【题目链接】点击打开链接【思路要点】第一问本质上是问图中最大的强连通分量的大小,Tarjan算法即可。对于第二问,我们先将图缩点,显然答案有下界\(max\{cntin,cntout\}\),其中\(cntin\)为入度为0的点的个数,\(cntout\)为出度为0的点的个数。题目中的两个样例均满足答案恰好为下界,因此我们猜测答案始终为下界,并试图构造一组解。我们将所有入度为0的点排在一边,出度为...原创 2018-04-25 12:59:04 · 441 阅读 · 0 评论 -
【CodeForces】CodeForces Round #475 (Div. 1 + Div. 2) 题解
【比赛链接】Div. 1Div. 2【题解链接】点击打开链接【Div.2 A】Splits【思路要点】由于我们希望得到尽可能不同的权值,我们可以考虑在拆分的开头放置若干个2,然后放1填补剩余的数字。不难发现答案等于\(\lfloor\frac{N}{2}\rfloor+1\)。时间复杂度\(O(1)\)。【代码】#include<bits/stdc++.h>using namespa...原创 2018-04-28 20:39:40 · 475 阅读 · 0 评论 -
【CodeForces】CodeForces Round #477 (Div. 1 + Div. 2) 题解
【比赛链接】Div. 1Div. 2【题解链接】点击打开链接【Div.2 A】Mind the Gap【思路要点】从小到大枚举答案,检查合法性。时间复杂度\(O(Ans*N)\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 100005;template <typename T> vo...原创 2018-05-07 20:04:26 · 1649 阅读 · 1 评论 -
【BZOJ3622】已经没有什么好害怕的了
【题目链接】点击打开链接【思路要点】令\(K=\frac{N+K}{2}\),问题等价于存在恰好\(K\)对大于关系的最大匹配数。直接DP难以表示状态,考虑容斥原理。我们选定一个\(A\)中的集合,规定该集合中的点一定要大于\(B\)集合中与其相匹配的点,其余点不做要求,将符合条件的方案数加入\(Cnt_{Size}\),其中\(Size\)为所选集合的大小。定义\(Ans_i\)为存在恰好\(i...原创 2018-05-22 14:38:46 · 239 阅读 · 0 评论 -
【BZOJ5318】【JSOI2018】扫地机器人
【题目链接】点击打开链接【思路要点】首先考虑如何解决子任务2,也就是求解可行的方案数。假设点\(A\)指向了其下方的点\(B\),那么其右方的点\(C\)的前驱就只能其上方的点。由类似的一系列推理,我们发现矩阵的每一条副对角线上的元素方向应当相同。考虑子任务2中\(N=M\)的情况。在每一条副对角线上,我们无论是向下还是向右,我们都会走到下一条副对角线上。因此我们实际上是确定了一个循环的向右/向下...原创 2018-05-24 20:11:05 · 890 阅读 · 0 评论 -
【BZOJ4946】【UOJ318】【NOI2017】蔬菜
【题目链接】BZOJUOJ【思路要点】考虑只有一组询问。我们可以计算出某种蔬菜最后变质的时间\(f_i\),将这种蔬菜拆分成\(f_i\)或\(f_i+1\)份,前\(f_i-1\)份质量为\(x_i\),价格为\(a_i\),在第1、2……\(f_i-1\)天后就会腐烂;第\(f_i\)份质量为1,价格为\(a_i+s_i\),在第\(f_i\)天后就会腐烂;若还有剩余,剩余的分为一份,价格为\...原创 2018-06-01 16:05:21 · 538 阅读 · 0 评论 -
【BZOJ4569】【SCOI2016】萌萌哒
【题目链接】 点击打开链接 【思路要点】 很强的脑洞题。 显然有一个O(NM)O(NM)O(NM)的暴力,每次暴力用并查集合并区间的对应位置。 考虑加速这个过程,我们新建O(LogN)O(LogN)O(LogN)层点,第iii层的两个点pi,xpi,xp_{i,x}和pi,ypi,yp_{i,y}被用并查集合并,表示xxx起的2i2i2^i个元素和yy...原创 2018-07-06 19:19:34 · 382 阅读 · 0 评论 -
【CodeForces】CodeForces Round #503 (Div. 1) 题解
【比赛链接】 点击打开连接 【题解链接】 点击打开链接 **【A】**Elections 【思路要点】 考虑枚举111号党派最终的得票,剩余部分我们可以通过贪心解决: 对于每一个得票数高于111号党派的党派,贪心地改变其代价最小的若干投票。 然后贪心地改变所有投票中代价最小的若干投票来补足111号党派的得票。 ...原创 2018-08-15 15:30:37 · 425 阅读 · 0 评论 -
【CodeForces】AIM Tech Round 5 (Div. 1 + Div. 2) 题解
【比赛链接】 点击打开连接 【题解链接】 点击打开链接 **【A】**Find Square 【思路要点】 答案即为所有黑色方格坐标的平均值。 时间复杂度O(N∗M)O(N∗M)O(N*M)。 【代码】 #include&lt;bits/stdc++.h&gt;using namespace std;c...原创 2018-08-29 15:40:09 · 384 阅读 · 0 评论 -
【51Nod1833】环
【题目链接】 点击打开链接 【思路要点】 原题实际上等价于计算二分图不同的完美匹配的数量。 将每个点拆成入点和出点,每条边由出点连向入点,形成的二分图的完美匹配和用简单环覆盖原图的方案一一对应。 状压DPDPDP即可。 时间复杂度O(2N∗N)O(2N∗N)O(2^N*N)。 【代码】 #include<bits/stdc...原创 2018-08-25 11:46:47 · 208 阅读 · 0 评论 -
【LOJ2863】「IOI2018」组合动作
【题目链接】 点击打开链接 【思路要点】 首先,我们可以通过 222 次操作确定第一个字符,不妨令其为 AAA 。 接下来,对于 2≤i≤N−12≤i≤N−12≤i≤N-1 若我们已经确定了前 i−1i−1i-1 个字符为 SSS ,我们询问 SBSXBSXXSXYSBSXBSXXSXYSBSXBSXXSXY ,若得到的结果为 i−1i−1i-1 ,则说明...原创 2018-09-17 11:16:16 · 758 阅读 · 0 评论 -
【LOJ2867】「IOI2018」高速公路收费
【题目链接】点击打开链接【思路要点】首先,我们显然需要令所有边为 AAA 进行一次询问,得到 sss 到 ttt 的最短路。我们可以从找到最短路上的一个点出发:令所有与编号在 [1,mid][1,mid][1,mid] 中的点相邻的边为 BBB ,其余边为 AAA ,通过判断最短路是否不变,我们可以知道 sss 到 ttt 间是否存在一条不经过编号在 [1,mid][1,mi...原创 2018-09-18 10:06:27 · 694 阅读 · 0 评论 -
【LOJ2864】「IOI2018」排座位
【题目链接】点击打开链接【思路要点】对于一个 ttt ,将 1,2,3,...,t1,2,3,...,t1,2,3,...,t 所在方格染黑,剩余方格染白,考虑网格图中所有的 2∗22*22∗2 的正方形,那么 1,2,3,...,t1,2,3,...,t1,2,3,...,t 形成一个矩形的充要条件为:111 、包含 111 个黑色方格 2∗22*22∗2 的正方形恰好有 4...原创 2018-09-18 13:54:52 · 1011 阅读 · 0 评论 -
【省内训练2018-09-13】Link Cut Digraph
【思路要点】 首先,我们将问题转化一下,我们希望求出每条边连接的两个点在什么时候开始能够相互到达。 对于此类连通性问题,考虑整体二分: 令 solve(l,r,S)solve(l,r,S)solve(l,r,S) 表示已经确定 SSS 中的边连接的两个点在第 lll 条边到第 rrr 条边中的某一条边被加入时开始变得连通,并在加入过第 111 条边到第 l−1l−1l-1 条...原创 2018-09-13 20:39:56 · 516 阅读 · 0 评论 -
【CodeForces】CodeForces Round #511 (Div. 1) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Enlarge GCD【思路要点】令所有数的 gcdgcdgcd 为 ggg ,将所有数除去 ggg ,问题变为了所有数的 gcdgcdgcd 为 111 的情况。我们要选出一个最大的数集,使得这个数集中的数存在不为 111 的公因数。显然我们只需要考虑所有质数即可,线性筛求出每个数的最小质因子,质因...原创 2018-09-25 11:22:38 · 384 阅读 · 0 评论 -
【LOJ2330】「清华集训 2017」榕树之心
【题目链接】点击打开链接【思路要点】首先,树是二分图,只有一侧的点可能成为心。维护每一棵子树会产生的向下推动的次数可能的最大值 MaxMaxMax 和最小值 MinMinMin ,在奇偶性与 MaxMaxMax 和 MinMinMin 相同时,任意一个 MinMinMin 至 MaxMaxMax 中的数值都能够被取到。树形 dpdpdp 求得将每一个点 iii 至 111 号...原创 2018-10-04 10:54:20 · 356 阅读 · 0 评论 -
【LOJ2329】「清华集训 2017」我的生命已如风中残烛
【题目链接】点击打开链接【思路要点】一个直观的思路是模拟该过程,当路上遇到环的时候通过类似取模的手段加速。注意到每绕一个环 LLL 的长度至少减半,因此绕环的个数不会超过 O(LogL)O(LogL)O(LogL) 。并且一个点如果在某一时刻不能够到,那么这个点就不会再被够到,所以找到一个环至多需要遍历 O(N)O(N)O(N) 个点,因此如果我们预处理每个点作为原点时极角排序...原创 2018-10-05 14:46:45 · 672 阅读 · 0 评论 -
【LOJ2323】「清华集训 2017」小 Y 和地铁
【题目链接】点击打开链接【思路要点】很不错的脑洞题。附上官方题解。时间复杂度 O(T∗2N2)O(T*2^{\frac{N}{2}})O(T∗22N) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 105;const int INF = 1e9;typede...原创 2018-09-29 14:20:46 · 544 阅读 · 0 评论 -
【CodeChef】October Challenge 2018 (Div. 1 + Div. 2) 题解
【比赛链接】点击打开连接**【BBRICKS】**Beautiful Bricks【思路要点】上下两个砖块中,至多有一个黑色。连续的一段存在黑色的行共有两种放置的方案。枚举有几段连续的存在黑色的行,用组合数计算答案。单组数据时间复杂度 O(K)O(K)O(K) 。【代码】#include&amp;lt;bits/stdc++.h&amp;gt;using namespace ...原创 2018-10-21 10:46:08 · 498 阅读 · 0 评论 -
【校内训练2018-10-19】Gift
【思路要点】首先,若不存在 000 ,将 aia_iai 连向 bib_ibi 会形成一个置换,令该置换环的个数为 cntcntcnt ,交换步数即为 N−cntN-cntN−cnt ,因此,我们本质上需要计算形成 iii 个置换环的方案数 ansians_iansi 。题目中已经给出了图中的若干条边,它们会形成一些路径和一些环,对于已经形成的环,我们只需要在输出答案的时候考虑即可,...原创 2018-10-19 08:34:14 · 239 阅读 · 0 评论 -
【CodeForces】CodeForces Round #516 (Div. 1) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Oh Those Palindromes【思路要点】一个字符串是回文串的一个必要条件是该字符串的第一个字符与最后一个字符相同。因此,记字符 xxx 出现的次数为 cntxcnt_xcntx ,一个字符串回文子串个数的上界为 ∑i=az(cnti+12)\sum_{i=a}^{z}\binom{cnt_...原创 2018-10-17 11:27:01 · 312 阅读 · 0 评论 -
【CodeForces】Mail.Ru Cup 2018 Round 1 (Div. 1 + Div. 2) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Elevator or Stairs?【思路要点】按照题意计算两种方式的用时,取较优的方案采纳。时间复杂度 O(1)O(1)O(1) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5...原创 2018-10-21 14:28:31 · 848 阅读 · 1 评论 -
【省内训练2018-10-26】游走
【思路要点】考虑一个指数暴力,首先枚举每一个位置选择 “见好就收” 还是 “得寸进尺” 。记 EiE_iEi 表示从 iii 出发的期望收益。若在 iii 处选择 “见好就收” ,那么 Ei=AiE_i=A_iEi=Ai ,否则,令 iii 之前第一个选择 “见好就收” 的点为 preprepre ,之后第一个选择 “见好就收” 的点为 sufsufsuf ,有 Ei=(i−pre)...原创 2018-10-26 18:48:40 · 225 阅读 · 0 评论 -
【省内训练2018-10-28】网友串
【思路要点】首先,奇数和偶数可以分开处理,最后再将答案卷积得到最终答案。预处理每一对网友数是否能够构成混沌串。我们用三元组 (i,j,s)(i,j,s)(i,j,s) 来描述一个状态,表示处理了前 iii 个数,出现了 jjj 个混沌串,并且能与集合 sss 中的串组成混沌串的字符串出现过至少 111 次。一个直观的想法是动态规划,记 dpi,j,sdp_{i,j,s}dpi,j,s...原创 2018-10-31 20:04:01 · 318 阅读 · 0 评论 -
【CodeChef】Strange Transform
【题目链接】点击打开链接【思路要点】若我们将每一位分开考虑,异或可以看做模 222 意义下的加法。因此,一个位置 fk,xf_{k,x}fk,x 的值可以看做从 (k,x)(k,x)(k,x) 出发,每次可以选择从 (x,y)(x,y)(x,y) 走到 (x−1,y),(x,y+1)(x-1,y),(x,y+1)(x−1,y),(x,y+1) ,最终停在 (0,x) ...原创 2018-11-04 10:23:01 · 317 阅读 · 0 评论 -
【CodeChef】Painting Tree
【题目链接】点击打开链接【思路要点】我们发现直接解决问题难以入手。回忆期望的定义,有 E=∑i=1VP(x=V)∗V=∑i=1VP(x≥i)E=\sum_{i=1}^{V}P(x=V)*V=\sum_{i=1}^{V}P(x≥i)E=∑i=1VP(x=V)∗V=∑i=1VP(x≥i) 。记树上不同的路径数为 cntcntcnt ,注意到若操作步数确定为 iii ,那么 P...原创 2018-11-04 10:35:30 · 556 阅读 · 0 评论 -
【CodeChef】Imagine Polygons
【题目链接】点击打开链接【思路要点】首先显然的一点是当且仅当两个多边形在 xxx 轴上的跨度不一样,输出 −1-1−1 。考虑一个 xxx 轴上的坐标 iii ,在满足 x=ix=ix=i 的平面上的任意一点 (i,y,z)(i,y,z)(i,y,z) 能够被计入答案当且仅当 (i,y)(i,y)(i,y) 在 x−yx-yx−y 轴的投影多边形内, (i,z)(i,z)(i,...原创 2018-12-09 12:59:51 · 244 阅读 · 0 评论 -
【CodeChef】Adjacent Leaves
【题目链接】点击打开链接【思路要点】首先考虑一种 O(N)O(N)O(N) 处理一个询问的方法,我们以 RRR 为根,进行 dfsdfsdfs 。我们称一个存在关键叶子的子树为“满的”,当且仅当该子树中叶子结点的数量等于关键叶子的数量,称一个子树为“不满的”,当且仅当该子树中存在关键叶子,并且它不是满的。若一个点 xxx 存在三个或以上不满的子树,那么显然我们不可能将其安排至...原创 2018-12-09 13:17:47 · 332 阅读 · 0 评论 -
【省内训练2018-12-21】Cards
【思路要点】考虑最长公共子串的形式,应当由若干条长度为 iii 或 i−1i-1i−1 的链穿插而成,举个例子:1,4,2,5,3,y,b1,4,2,5,3,y,b1,4,2,5,3,y,ba,x,1,4,2,5,3a,x,1,4,2,5,3a,x,1,4,2,5,3就由一条长度为 444 的链 b−3−2−1−ab-3-2-1-ab−3−2−1−a 和一条长度为 333 的链 y−5...原创 2018-12-22 18:39:31 · 206 阅读 · 0 评论 -
【省内训练2018-12-23】String
【思路要点】考虑无问号的情况,分为两种:111 、 S=TS=TS=T ,那么 AAA 和 BBB 取任意字符串均可,贡献为 arbitrary=∑i=1N2i∑j=1N2jarbitrary=\sum_{i=1}^{N}2^i\sum_{j=1}^{N}2^jarbitrary=∑i=1N2i∑j=1N2j 。222 、 S≠TS\ne TS̸=T ,那么要求 AAA 和 BBB...原创 2018-12-23 17:47:10 · 311 阅读 · 0 评论 -
【省内训练2018-12-23】Counting
【思路要点】问题等价于求不定方程 ∑i=1Naixi=C\sum_{i=1}^{N}a_ix_i=C∑i=1Naixi=C 的非负整数解的数量。考虑将 C,xiC,x_iC,xi 用二进制表示,我们从高位向低位依次决策 xix_ixi 的某一位是否为 111 。假设当前决策的是第 iii 位,那么当前决策的 ∑i=1Naixi\sum_{i=1}^{N}a_ix_i∑i=1N...原创 2018-12-23 17:58:38 · 318 阅读 · 0 评论