随笔分类 - Codeforces
摘要:以后每做完一场CF,解题报告都写在一起吧暴力||二分A - Bear and Elections题意:有n个候选人,第一个候选人可以贿赂其他人拿到他们的票,问最少要贿赂多少张票第一个人才能赢分析:正解竟然是暴力!没敢写暴力,卡了很久,导致这场比赛差点爆零!二分的话可以优化,但对于这题来说好像不需要。...
阅读全文
摘要:题目传送门题意:a % x == b,求符合条件的x有几个数学:等式转换为:a == nx + b,那么设k = nx = a - b,易得k的约数(>b)的都符合条件,比如a=25 b=1,那么24,12, 8, 6, 4, 3, 2都可以,所以只要求出k的约数有几个就可以了,a #include...
阅读全文
摘要:题目传送门 1 /* 2 题意:问选出3个数成等比数列有多少种选法 3 map:c1记录是第二个数或第三个数的选法,c2表示所有数字出现的次数。别人的代码很短,思维巧妙 4 */ 5 /************************************************ ...
阅读全文
摘要:题目传送门 1 /* 2 题意:给出一系列读者出行的记录,+表示一个读者进入,-表示一个读者离开,可能之前已经有读者在图书馆 3 构造:now记录当前图书馆人数,sz记录最小的容量,in数组标记进去的读者,分情况讨论一下 4 */ 5 /***********************...
阅读全文
摘要:题目传送门 1 /* 2 hash+set:首先把各个字符串的哈希值保存在set容器里,然后对于查询的每一个字符串的每一位进行枚举 3 用set的find函数查找是否存在替换后的字符串,理解后并不难。另外,我想用64位的自然溢出wa了,不清楚 4 */ 5 /********...
阅读全文
摘要:题目传送门 1 /* 2 题意:删除若干行,使得n行字符串成递增排序 3 暴力+构造:从前往后枚举列,当之前的顺序已经正确时,之后就不用考虑了,这样删列最小 4 */ 5 /************************************************ 6 Auth...
阅读全文
摘要:题目传送门 1 /* 2 贪心+构造:因为是对称的,可以全都左一半考虑,过程很简单,但是能想到就很难了 3 */ 4 /************************************************ 5 Author :Running_Time 6 Creat...
阅读全文
摘要:题目传送门 1 /* 2 构造+暴力:按照题目意思,只要10次加1就变回原来的数字,暴力枚举所有数字,string大法好! 3 */ 4 /************************************************ 5 Author :Running_Ti...
阅读全文
摘要:题目传送门 1 /* 2 贪心:每次把一个丢掉,选择最小的。累加求和,重复n-1次 3 */ 4 /************************************************ 5 Author :Running_Time 6 Created Time :...
阅读全文
摘要:题目传送门 1 /* 2 构造:首先先选好k个不同的值,从1到k,按要求把数字放好,其余的随便放。因为是绝对差值,从n开始一下一上, 3 这样保证不会超出边界并且以防其余的数相邻绝对值差>k 4 */ 5 /**********************************...
阅读全文
摘要:题目传送门 1 /* 2 题意:一个汉堡制作由字符串得出,自己有一些原材料,还有钱可以去商店购买原材料,问最多能做几个汉堡 3 二分:二分汉堡个数,判断此时所花费的钱是否在规定以内 4 */ 5 #include 6 #include 7 #include 8 using na...
阅读全文
摘要:题目传送门 1 /* 2 题意:求一个点为根节点,使得到其他所有点的距离最短,是有向边,反向的距离+1 3 树形DP:首先假设1为根节点,自下而上计算dp[1](根节点到其他点的距离),然后再从1开始,自上而下计算dp[v], 4 此时可以从上个节点的信息递推...
阅读全文
摘要:题目传送门 1 /* 2 BFS:三维BFS,坐标再加上步数,能走一个点当这个地方在步数内不能落到。因为雕像最多8步就会全部下落, 3 只要撑过这个时间就能win,否则lose 4 */ 5 #include 6 #include 7 #include 8 #inclu...
阅读全文
摘要:题目传送门 1 /* 2 构造:从大到小构造,每一次都把最后不是9的变为9,p - p MOD 10^k - 1,直到小于最小值。 3 另外,最多len-1次循环 4 */ 5 #include 6 #include 7 #include 8 #include 9 us...
阅读全文
摘要:题目传送门 1 /* 2 最短路: 不仅扫描边,还要扫描点;点有两种情况,一种刚好在中点,即从u,v都一样,那么最后/2 3 还有一种是从u,v不一样,两种的距离都是l 4 模板错了,逗了好久:( 5 */ 6 #include 7 #include...
阅读全文
摘要:题目传送门 1 /* 2 贪心:当m == 2时,结果肯定是ABABAB或BABABA,取最小改变量;当m > 2时,当与前一个相等时, 改变一个字母 3 同时不和下一个相等就是最优的解法 4 */ 5 #include 6 #include 7 #include...
阅读全文
摘要:题目传送门 1 /* 2 数学:这题一直WA在13组上,看了数据才知道是计算cost时超long long了 3 另外不足一个区间的直接计算个数就可以了 4 */ 5 #include 6 #include 7 #include 8 #include 9 #incl...
阅读全文
摘要:题目传送门 1 /* 2 贪心:暴力贪心水水 3 */ 4 #include 5 #include 6 #include 7 using namespace std; 8 9 const int MAXN = 1e2 + 10;10 const int INF = 0x3f3...
阅读全文
摘要:题目传送门 1 /* 2 DP:先用l,r数组记录前缀后缀上升长度,最大值会在三种情况中产生: 3 1. a[i-1] + 1 7 #include 8 #include 9 using namespace std;10 11 const int MAXN = 1e5...
阅读全文
摘要:题目传送门 1 /* 2 递推:用cnt记录前缀值,查询区间时,两个区间相减 3 */ 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 const int MAXN = 1e5 + 10...
阅读全文