题解
文章平均质量分 82
ACMer的K题历程
夏午Sharve
我们从无尽黑暗中走来
也终将陨落无尽黑暗中
展开
-
CF Round #712 (Div. 2) C Balance the Bits
目录知识点:构造、结论、思维、贪心题意思路代码知识点:构造、结论、思维、贪心题目链接题意构造两个长度相等的匹配括号序列,使得给定长度相等的01串的位置上为1的对应括号相同,0对应括号相反。思路本次思路直接模拟比较困难,分步进行比较容易。比较困难的题都需要分步思考,就和做数学题一样(大概)假定一个匹配括号序列,分析匹配括号序列的性质:最左端和最右端一定是“(”和“)”。“(”和“)”个数一定相等。易知第一个括号序列的“(”、“)”、第二个括号序列的“(”、“)”个数全相等。(原创 2021-11-13 23:59:43 · 279 阅读 · 0 评论 -
CF1419C Killjoy
目录知识点:贪心题意思路知识点:贪心题目链接题意给定一个数字、一个序列和一个操作:选择任意一个子序列,增加或减少子序列的任意元素,使得∑Δxi=0\sum \Delta x_i=0∑Δxi=0,Δxi\Delta x_iΔxi为第i个元素的变化量。每次操作开始之前,与给定数字相同或与染色数字相同的元素会被染色。求最少的操作次数使得所有元素被染色(全染色之后的操作不计入次数)。思路本题的操作自由度比较大,想思路时应尽量多讨论几种情况以免漏解。可知操作次数不超过2。考虑到操作时序列和不变,求原创 2021-11-13 14:35:49 · 261 阅读 · 0 评论 -
CF1461B Find the Spruce
目录知识点:模拟、前缀和、时间复杂度题意思路代码知识点:模拟、前缀和、时间复杂度题目链接题意n×mn\times mn×m图内有一种图形满足以下条件:(i,j)(i,j)(i,j)是*对某个k,要求所有1≤i≤k1\leq i \leq k1≤i≤k,满足(i+k−1,j−k+1)(i+k-1,j-k+1)(i+k−1,j−k+1)到(i+k−1,j+k−1)(i+k-1,j+k-1)(i+k−1,j+k−1)都是*求这样的图形(可重叠)有多少个。思路第一次尝试分析时间复杂度是O(n4原创 2021-11-11 19:37:27 · 235 阅读 · 0 评论 -
2021-2022 ACM-ICPC Brazil Subregional Programming Contest C Creating Multiples
目录知识点:同余、逆元、拓欧题意思路代码知识点:同余、逆元、拓欧题目链接题意b进制数最多使某一位减小使得新数是b+1的乘积,不能减输出-1,不用减输出0,否则输出减小的位的下标和减小后的新位。思路新数N是b+1的乘积转换为N%(b+1)=0,我们要让原数n取模为零,先算出原数的模m,根据同余的性质,n≡m(mod b+1) ⟺ n−m≡0(mod b+1)n\equiv m\quad (mod \ b+1) \iff n-m\equiv 0\quad (mod \ b+1原创 2021-11-09 09:27:37 · 2199 阅读 · 0 评论 -
2016 ACM Amman Collegiate Programming Contest C Bored Judge
目录知识点:数据结构题意思路代码知识点:数据结构题目链接题意获胜者为得分最高的队伍(得分相同取序号最小),每个事件为序号为x的队伍得到p(可为负)分。求第几个事件之后获胜队伍不再改变,全程不变输出0。一次初始化TLE,一次读不懂题WA……“the number of the first event after which the winner of the contest didn’t change”读成了获胜者没有变化后的第一个事件 (难道不是吗),也就是第一次变化的事件……???原创 2021-11-09 01:33:03 · 1034 阅读 · 0 评论 -
2015 ACM Amman Collegiate Programming Contest F Travelling Salesman
目录知识点:最小生成树(、二分答案?)题意思路代码知识点:最小生成树(、二分答案?)题目链接题意一辆车在一张边权图上每走一个单位耗一升油,每个点能将油箱装满,求能在任意两点之间通行,油箱最少需要多大。思路任意两点之间求某个信息,可考虑连通性,进而考虑最小生成树可能刚开始想到的是求任意两点之间所有路径的最大边权的最小值(这样似乎可以二分答案做?),不好直接求。任意两点,说明是一个连通图且任意两点存在路径的最大边权小于等于油箱大小。假设油箱最少需要m升,则图中大于m的边全删掉(走这些边就会原创 2021-11-08 22:49:01 · 101 阅读 · 0 评论 -
CF1468C Berpizza
目录知识点:优先队列题意思路代码知识点:优先队列题目链接题意维护一个数据结构,支持:按顺序插入元素;弹出最先插入的元素顺序编号;弹出元素最大的顺序编号(相同则输出最小顺序编号)。思路若是在赛场上这题肯定是签不上到了,直接歪到线段树去了。数据结构题首先排除直觉,再分析合适的数据结构此数据结构的插入操作很简单,且每个弹出操作都只维护一个性质(顺序优先、元素优先),很容易想到优先队列。但要同时维护两个操作,可以用一个指针维护顺序优先性质,一个优先队列维护元素优先性质,然后用一个vis数原创 2021-11-08 10:05:23 · 351 阅读 · 0 评论 -
CF1466D 13th Labour of Heracles
目录知识点:度、贪心、分组题意思路代码知识点:度、贪心、分组题目链接题意题面稍复杂。给点权树的边染小于等于i种颜色,同颜色带两端顶点分组为一个子图,记V为图的值,v为子图的值,W为子图中连通分量的值,w为强连通分量中的点权值,定义V=∑vV=\sum vV=∑v,v=max(W)v=max(W)v=max(W),W=∑uW=\sum uW=∑u,对每个i求ViV_iVi的最大值。思路易知ViV_iVi增加的原因是同一点权被重复计算,重复处在染色交界处(即一个节点连接两条不同颜色的边)。可原创 2021-11-08 01:16:07 · 150 阅读 · 0 评论 -
CF1475C Ball in Berland
目录知识点:度、计数原理题意思路代码知识点:度、计数原理题目链接题意两两k对数字(不重复)中,挑出两对使得不存在数字同时在这两对中,求挑法个数。思路刚开始看这道题为什么是1400,结果发现自己看错题意。果然需要从最基本的语法逻辑错误开始检查起(指i、j、n、m、k、p、q这些)转换为边。注意到重叠的边必存在一个点连两条边。选择其中一条边后,另一条边增加限制,即一个点连两条边的边不能选。实际上一个点连多条边,这些边都不能选。要计数,这些边都对应这个点的一度,于是维护每个点的度,从所有边原创 2021-11-07 22:31:46 · 116 阅读 · 0 评论 -
CF1482B Restore Modulo
目录知识点:题意思路思路1(GCD)思路2(同余)代码1(GCD)代码2(流行题解)知识点:同余、(为什么不是GCD!) GCD(题解写到一半发现GCD也是正解!)题目链接题意给你原不减等差数列每个元素取模后的序列,求满足题意的最大的模和公差,且公差小于模。不存在原序列输出-1,模无限大输出0。思路之前做过一道题:所有序列的元素取模后相等,求最大的模。如出一辙啊,就是这道题的特殊情况(公差为零)。于是我按照那题的思路用了半天的gcd(题解写到此处的时候我发现有点不对劲,竟然把gcd解法原创 2021-11-05 20:40:13 · 106 阅读 · 0 评论 -
CF1514C Product 1 Modulo N
目录知识点:GCD、同余题意思路代码知识点:GCD、同余题目链接题意1~n-1组成的序列中最长子序列使得元素乘积模n为1思路代码#include<bits/stdc++.h>#define ll long long#define pii pair<ll,ll>using namespace std;const ll N=1e5+10;ll n;ll arr[N];void solve(){ scanf("%lld",&n); for(ll原创 2021-11-05 15:37:22 · 197 阅读 · 0 评论 -
CF1499 C Minimum Grid Path
目录知识点:枚举最值、前缀和、贪心题意思路代码知识点:枚举最值、前缀和、贪心题目链接题意从(0,0)(0,0)(0,0)走到(n,n)(n,n)(n,n)只能选择初始方向和向右或向上交替行走,每步行走任意长度,但路径最多只有nnn段且第iii步有固定costcostcost值aia_iai,设第iii步长度为lenilen_ileni,求∑i=1kai×leni\sum_{i=1}^ka_i\times len_i∑i=1kai×leni最小值,其中1≤k≤n1\leq k \leq n1原创 2021-11-04 18:45:48 · 114 阅读 · 0 评论 -
CF1506 E Restoring the Permutation
目录知识点:STL、在线处理题意思路代码知识点:STL、在线处理题目链接题意给定一段序列所有前缀的最大值序列,求字典序最小和最大的原序列。思路思路简单,实现较难。易知给定序列单调不减,相邻不相同元素中右边的元素即为原序列的元素。(特别地第一个元素为原序列的元素)剩下的元素贪心地选择越大的数填在越前/后面,注意在一段元素全相等子串中对应原序列的每个元素都不能超过子串元素。第一次尝试维护vis数组表示是否取用过,取用过则取更小的,TLE on test 10。后发现从大到小、从前往后填数字的时候原创 2021-11-04 16:28:44 · 159 阅读 · 0 评论 -
CF Round #751 (Div. 2) D Frog Traveler
目录知识点:bfs、剪枝题意思路代码知识点:bfs、剪枝题目链接题意井底青蛙跳出井的经典问题上规定在第i个位置能往上跳a[i]或往下滑b[i],求跳跃次数最少的路线。思路从井底bfs所有可能的方案,关键在于剪枝。易得已经搜索过一次的位置i不可能有更优的解再次到i,所以可以用vis数组标记是否访问。搜索树中每拓展一次节点新的节点代表的位置都是一段区间(i+0~i+a[i]),之前已搜索过1~i-1位置时的跳法,取mxheight=max(j+a[j])(j=1~i-1),说明mxheight位原创 2021-10-30 16:20:06 · 106 阅读 · 0 评论 -
Educational CF Round 116 (Rated for Div. 2) C Banknotes
目录知识点:贪心,模拟题意思路代码知识点:贪心,模拟题目链接题意给定kkk,bib_ibi为长度为nnn且元素为自然数的任意数组,且满足元素之和小于等于k。求MEX({x∣x=∑i=1n10ai×bi})MEX(\{x|x=\sum _{i=1}^n10^{a_i}\times b_i\})MEX({x∣x=∑i=1n10ai×bi})思路不存在选aia_iai大的方案比aia_iai小的方案MEX还小(证明大的方案下MEX在小的方案下存在)。可以贪心维护选aia_iai越小越好,原创 2021-10-30 15:55:30 · 146 阅读 · 0 评论 -
HDU5094 Maze
目录知识点:动态规划题意思路代码知识点:动态规划题目链接题意求给定序列最少删哪些数使得不存在两对立的子序列(不连续)使子序列和相等。思路代码#include<bits/stdc++.h>#define ll long longusing namespace std;const ll N=1e5+10;const ll M=1030;ll n;ll arr[N];ll dp[M];//maintain current minarr of xorbool vis[M]原创 2021-10-28 08:38:35 · 192 阅读 · 0 评论 -
CF906D Power Tower
目录知识点:拓展欧拉定理、记忆化、欧拉函数、快速幂题意思路代码知识点:拓展欧拉定理、记忆化、欧拉函数、快速幂题目链接题意给定序列aia_iai,qqq次询问a[l,r]a_{[l,r]}a[l,r]的数构成以下形式对mmm取模后的结果:al(al+1(ai+2(...ar−1ar)))a_l^{(a_{l+1}^{(a_{i+2}^{(...^{a_{r-1}^{a_r}})})})}al(al+1(ai+2(...ar−1ar)))思路拓展欧拉定理:ac≡ac%φ(m)+φ(原创 2021-10-18 16:56:42 · 185 阅读 · 0 评论 -
POJ2528 Mayor‘s posters
目录知识点:(动态开点)线段树、离散化题意思路代码(离散化)代码(动态开点)知识点:(动态开点)线段树、离散化题目链接题意一段正整数值域(每个位置初始为无值)可执行一个操作:对[l,r][l,r][l,r]覆盖一个新值。按顺序给定若干区间,求值域中不同值的个数。思路既要区间修改,又要区间查询,考虑线段树。更新O(qlogn)O(qlogn)O(qlogn),查询O(nlogn)O(nlogn)O(nlogn)。正整数值域过大,区间数又在1e51e51e5范围内,考虑离散化。查询区间固定为原创 2021-10-18 09:06:38 · 230 阅读 · 0 评论 -
CF1592C Bakry and Partitioning
目录知识点:dfs、树分块、异或、贪心题意思路代码(希望csdn出个代码折叠功能)题目链接知识点:dfs、树分块、异或、贪心题意将带点权值树按点分成不超过k个块且必须分块,使得每个块的异或和相等,求是否能够做到。思路两个块异或和相等则两个块异或和的异或为000,不相等则记为ansansans,可再分其中一块,使分成的三块中两块异或和的异或为000,另一块记为SSS,SSS的异或和为ansansans。推广到整棵树上就是SSS的异或和ansansans为整棵树的异或和,将树分为异或和为ansans原创 2021-10-04 19:08:46 · 213 阅读 · 0 评论 -
AtCoder abc220_f Distance Sums 2
目录知识点:dp,dfs题意思路代码题目链接知识点:dp,dfs题意求树中每(一个节点到每一个节点的距离之和)。思路参考en_translator的题解。暴力O(n2),考虑节点之间的状态转移暴力O(n^2),考虑节点之间的状态转移暴力O(n2),考虑节点之间的状态转移把一个节点当做根,对这个节点的一个相邻节点,找到任意一个节点,如果这个任意节点在这个相邻节点为根的子树中,从这个节点到这个相邻节点的状态转移时,这个任意节点的距离到目标距离会减111,在这个子树外则加111这个相邻节点的答案原创 2021-09-29 20:23:10 · 293 阅读 · 0 评论 -
POJ2689 Prime Distance
目录知识点:质数筛、优化题意思路代码题目链接知识点:质数筛、优化题意求lll到rrr区间内所有的质数中相邻质数之差绝对值最大和最小值,并输出答案相同时质数小的质数思路1到231的质数筛MLE,注意到区间长度不超过161到2^{31}的质数筛MLE,注意到区间长度不超过1^61到231的质数筛MLE,注意到区间长度不超过16预处理出不超过231的质数筛,然后用这些质数推出l到r范围内的质数预处理出不超过\sqrt{2^{31}}的质数筛,然后用这些质数推出l到r范围内的质数预处理出不超过231原创 2021-09-28 21:38:23 · 110 阅读 · 0 评论 -
CF1569D Inconvenient Pairs
目录知识点:数据结构、分组、双指针、二分、STL、思维题目链接题意思路代码知识点:数据结构、分组、双指针、二分、STL、思维题目链接题意106×10610^{6} \times 10^{6}106×106的整点网格的网格线上分布n条竖直线和m条横直线(不重叠),直线上分布k个整点,求两点沿已知直线行走的最短路径长度不等于两点的Manhattan距离组成的对数(无序)。思路参考awoo的CF官方题解。在两直线之间记为行或列,两点不在同行同列的情况下两种情况均不满足题意:1、两点都在各自的横/竖原创 2021-09-10 17:32:56 · 134 阅读 · 0 评论 -
CF Round #741 (Div. 2) D2. Two Hundred Twenty One (hard version)
目录知识点:证明、二分查找、思维题目输入输出样例输入输出提示题意思路代码知识点:证明、二分查找、思维题目This is the hard version of the problem. The difference between the versions is that the hard version does require you to output the numbers of the rods to be removed. You can make hacks only if all ve原创 2021-08-29 16:08:47 · 385 阅读 · 0 评论 -
CF1552B Running for Gold
目录知识点:思维、证明题目输入输出样例输入输出提示题意思路代码知识点:思维、证明题目The Olympic Games have just started and Federico is eager to watch the marathon race.There will be n athletes, numbered from 1 to n, competing in the marathon, and all of them have taken part in 5 important mar原创 2021-08-28 18:46:43 · 113 阅读 · 0 评论 -
POJ3376 Finding Palindromes
目录知识点:Trie树(字典树)、拓展kmp(manacher?)、时间空间复杂度题目输入输出样例输入输出提示题意思路代码知识点:Trie树(字典树)、拓展kmp(manacher?)、时间空间复杂度题目A word is called a palindrome if we read from right to left is as same as we read from left to right. For example, “dad”, “eye” and “racecar” are all p原创 2021-08-26 10:38:05 · 319 阅读 · 0 评论 -
HDU 1151 Air Raid
目录知识点:二分匹配、贪心、思维题目输入输出样例输入输出题意思路代码知识点:二分匹配、贪心、思维题目Consider a town where all the streets are one-way and each street leads from one intersection to another. It is also known that starting from an intersection and walking through town’s streets you can ne原创 2021-08-24 19:43:45 · 210 阅读 · 0 评论 -
Codeforces 456C Boredom
目录知识点:线性dp(递推)、贪心题目输入输出样例输入1输出1输入2输出2输入3输出3提示题意思路代码知识点:线性dp(递推)、贪心题目Alex doesn’t like boredom. That’s why whenever he gets bored, he comes up with games. One long winter evening he came up with a game and decided to play it.Given a sequence a consistin原创 2021-07-16 09:55:16 · 292 阅读 · 0 评论 -
Codeforces 489C Given Length and Sum of Digits...
目录知识点:模拟、贪心、分支语句题目输入输出样例输入1输出1输入2输出2题意思路代码知识点:模拟、贪心、分支语句题目You have a positive integer m and a non-negative integer s. Your task is to find the smallest and the largest of the numbers that have length m and sum of digits s. The required numbers should be原创 2021-07-16 09:27:13 · 452 阅读 · 0 评论 -
CodeForces 520B Two Buttons
目录题目输入输出样例输入1输出1输入2输出2提示题意思路代码题目Vasya has found a strange device. On the front panel of a device there are: a red button, a blue button and a display showing some positive integer. After clicking the red button, device multiplies the displayed number by原创 2021-07-16 01:12:37 · 254 阅读 · 0 评论 -
Codeforces 550A Two Substrings
目录题目输入输出样例输入1输出1输入2输出2输入3输出3提示题意思路(罚自己写一题多解)一、代码二、代码(Runtime error on test 19)题目You are given string s. Your task is to determine if the given string s contains two non-overlapping substrings “AB” and “BA” (the substrings can go in any order).输入The onl原创 2021-07-15 21:30:46 · 711 阅读 · 1 评论 -
Codeforces 10C Digital Root
目录题目输入输出样例输入1输出1输入2输出2提示题意思路代码题目Not long ago Billy came across such a problem, where there were given three natural numbers A, B and C from the range [1, N], and it was asked to check whether the equation AB = C is correct. Recently Billy studied the con原创 2021-07-14 01:24:55 · 118 阅读 · 0 评论 -
POJ3267 The Cow Lexicon
目录题目输入输出样例输入输出题意思路代码题目Few know that the cows have their own dictionary with W (1 ≤ W ≤ 600) words, each containing no more 25 of the characters ‘a’…‘z’. Their cowmunication system, based on mooing, is not very accurate; sometimes they hear words that do原创 2021-07-12 12:53:54 · 120 阅读 · 0 评论 -
POJ1836 Alignment
目录题目输入输出样例提示思路代码题目有一支N个新兵的部队,他们的序号从左到右分别为1到N,每个新兵都有一个身高ai,现在,我们希望给这支部队尽量少的踢掉几个新兵,剩下的新兵靠拢,使得每个剩下的任意一个位置的新兵向左或者向右其中的某一边的身高是严格递减的。输入第一行输入一个N,表示新兵的个数(2≤N≤1000)。第二行输入N个浮点数ai,分别表示这N个新兵的身高(0.5≤ai≤2.5)。输出输出一个整数,表示最少需要踢掉的新兵数目。样例input60.7 1.9 1.6 1.9 1.6原创 2021-07-09 14:15:03 · 150 阅读 · 0 评论 -
Codeforces1020C Elections
Elections(Codeforces1020C)题目输入输出样例提示思路代码题目As you know, majority of students and teachers of Summer Informatics School live in Berland for the most part of the year. Since corruption there is quite widespread, the following story is not uncommon.Election原创 2021-02-18 15:45:25 · 282 阅读 · 0 评论 -
UVA101 The Blocks Problem
目录题目输入输出样例输入样例输出代码后记题目Many areas of Computer Science use simple, abstract domains for both analytical and empirical studies. For example, an early AI study of planning and robotics (STRIPS) used a block world in which a robot arm performed tasks involvin原创 2021-01-26 13:41:28 · 111 阅读 · 0 评论