![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
codeforces
NingLiu_
该csdn博客专门用来做技术类的总结,希望自己能给初学者一些鄙陋的建议和帮助
展开
-
CodeForces - 732A Buy a Shovel
//可谓是非常水的题了,没什么可说的#include using namespace std;int main(){ int k, r; while (cin >> k >> r) { int i = 1; for (i = 1; ;i++) { int tp = i * k % 10; if (tp == 0 || tp == r) break;原创 2017-08-24 19:37:42 · 194 阅读 · 0 评论 -
CodeForces 731A Night at the Museum
//这题不难,甚至可以称水题中的水题了,可我居然在这道题上,也不是一气呵成地完成,说明基础还是不够扎实,思维也不灵活 #include using namespace std;const int N = 105;char word[N];int getdistance (char a, char b){ if (a < b) swap(a, b); int len1 = (abs)原创 2017-08-28 16:54:24 · 279 阅读 · 0 评论 -
CodeForces - 732C Sanatorium
/* 注意!!!题目的理解很重要,我当初就是因为题意理解有误,一直WA We shouldn't count as missed meals on the arrival day before Vasiliy's arrival and meals on the departure day after he left. 这句话表明了:如果在抵达的那天,或者离开的那天,没有吃满3顿原创 2017-08-31 15:30:09 · 186 阅读 · 0 评论 -
CodeForces 732B Cormen — The Best Friend Of a Man
//这题也是水题#include using namespace std;const int N = 505;int planned[N];int total[N];int main(){ int n, k; while (cin >> n >> k) { int ans = 0; // sum of additional hours for (int i = 0;原创 2017-08-31 15:32:32 · 201 阅读 · 0 评论 -
CodeForces - 820A Mister B and Book Reading
//水题#include using namespace std;int main(){ int c, v0, v1, a, l; while (cin >> c >> v0 >> v1 >> a >> l) { int day = 0; if (v0 >= c) { cout << 1 << endl; continue; } day++; c原创 2017-08-31 15:36:20 · 278 阅读 · 0 评论 -
CodeForces - 609A USB Flash Drives ( 排序 简单贪心 )
/* 题目不难,题中的知识点是: sort对基本类型从大到小排序的写法,可见: https://www.cnblogs.com/CAOYR/p/5463423.html*/#include #include #include #define rep(i, k, n) for (int i = k; i < (n); i++)using namespace std;con原创 2017-11-15 19:49:51 · 252 阅读 · 0 评论 -
CodeForces - 651A Joysticks ( 不难 但有坑 )
/* 这题不得不提的是一个很容易 WA 的坑点 if (n < 2 && m < 2) break; 这是为了排除 n == 1 && m == 1 的情况 这种情况比较坑,因为它其实没有人可以满足 -2 的条件,但是又都满足题目的"大前提",也即 n、m都大于0 我还是实在找不出错误了,登了 codeforces 查了后台数据,才知道是错在这组数据,列原创 2017-11-15 20:23:44 · 369 阅读 · 0 评论 -
CodeForces - 739A Alyona and mex ( 思维 且题意难理解 值得重做 )
/* 这题是属于值得重做,且题意比较难理解的类型 简单解释下我理解的题意: 输入数据: n(需要输出的序列的元素个数)、m ( subarray 的个数 ) 后面的 m 行分别表示 m 个 subarray的起止元素下标 (且下标从1开始) subarray:子序列,给出的 l 和 r 表示 1 个区间,从 a[l], a[l+1] .... a[r-1]原创 2017-11-15 22:04:56 · 428 阅读 · 0 评论 -
CodeForces - 754A Lesha and array splitting ( 贪心 注意细节的处理 )
/* 大致题意: 将元素个数为 n 的数组进行分割,使得 每个子数组的元素和都不为 0,如果可以实现分割,需输出对应的组数和 每组子数组的起止区间 ( 注意分割时不能增删改元素,也不能变动各元素之间的位置,就只能直接分割 ) 思路: 先计算非0的个数,记作 not0,将数组一共划分为 not0 个部分 划分数组采取的思路是,从第一个元素开始,不断依次添加子数组的原创 2017-11-15 23:08:47 · 320 阅读 · 0 评论 -
CodeForces - 761A Dasha and Stairs ( 务必细心 注意细节 )
/* 这题不难但有坑... 说是说坑,但其实也是自己审题不细致的锅,因为题目分明已经说得很清楚了“The steps were numbered from one to infinity.” 是从 1 到无穷大,而不是从 0 到无穷大,所以奇数楼梯和偶数楼梯都为0的情况,本来就是错误的情况,应该拿出来特判一下 于情于理,都是我的锅,是我太粗心了,贴上来反省一下,尽量减少一点原创 2017-11-16 00:01:36 · 278 阅读 · 0 评论 -
CodeForces - 755B PolandBall and Game ( 贪心 博弈 )
/* 这题的策略其实比较容易想到,因为每个人说单词的时候,都会尽量使得对方无词可说,所以只要当时还有两人都会的单词没被说过,那么大家在说单词时,一定会优先选择这样的单词 所以,我们可以先统计一下两个人都会的单词,姑且记作 same 将 PolandBall 会的单词记作 n, EnemyBall 会的记作 m 然后分类讨论以下两种情况: 如果 same 是偶数原创 2017-11-16 09:05:26 · 387 阅读 · 0 评论 -
CodeForces - 762B USB vs. PS2 ( 贪心 )
/* 电脑有3种:只有 USB 接口、只有 PS/2 接口、两种接口都有的,数目分别为 a、b、c 将2种鼠标分类后按价格排序,先处理只有一种接口的(只有一种接口的电脑,没有选择鼠标的余地,只能有什么接口用什么鼠标) 再处理2种接口都有的鼠标,每次从当前剩下的鼠标中,贪心选取价格最小的,这样就能使得总费用最小 最初,我自己用了一种比较复杂的写法... 做原创 2017-11-28 07:12:57 · 268 阅读 · 0 评论 -
CodeForces - 766B Mahmoud and a Triangle (贪心)
题目链接:http://codeforces.com/problemset/problem/766/B题意:给定n个数,判断是否能够组成三角形;可以则输出YES,否则输出NO思路:先对n个数据进行排序,从第三个数字开始循环到第n个数字,判断数字能否和其前两个数组成三角形,一旦可以,退出循环;如果一直没能退出循环,说明这n个数都不能组成三角形#include #in原创 2018-01-21 18:44:24 · 295 阅读 · 0 评论 -
CodeForces - 743C Vladik and fractions (构造 找规律)
题目链接:http://codeforces.com/problemset/problem/743/C思路: 构造使得 x = n, y = n + 1, z = n * ( n + 1),这时 x、y、z刚好满足体重等式 因为题目中言明 x 不等于 y 不等于z,解该不等式,得到 n 不等于 1 故而,只有在 n = 1时找不到,其他的时候,则可输出构造值作为一组x、y、原创 2018-01-22 20:23:50 · 346 阅读 · 0 评论 -
CodeForces - 811A Vladik and Courtesy
//有一句话很容易忽视入坑,"Candies, which guys got from each other, they don't consider as their own."//他们并不把对方给的,当作是自己的,相当于只是做减法,不必做加法,一开始审题不清,忽视了,导致WA了几次... T^T //我是通过tp初值置为0,每次循环tp = 1- tp,来实现标记哪个人在给对方糖,还可通过原创 2017-08-28 16:50:41 · 336 阅读 · 0 评论 -
CodeForces 731C Socks
//并查集的应用#include using namespace std;const int N = 2e5 + 5;int f[N];int color[N];vectornum[N];int findx(int x){ return ( x == f[x]? x: f[x] = findx(f[x]) );}void merge(int x, int y){ int原创 2017-08-28 13:28:09 · 219 阅读 · 0 评论 -
CodeForces - 808B Average Sleep Time
/*保留最初版本的错误代码,以免重蹈覆辙:#include using namespace std;const int N = 2e5 + 10;int a[N];int main(){ int n, k; while (cin >> n >> k) { for (int i = 1; i <= n; i++) cin >> a[i]; int sum =原创 2017-08-25 09:07:38 · 236 阅读 · 0 评论 -
CodeForces - 813B The Golden Age
/* 这题今天一直RE(Runtime Error),一开始一直不明白,又怀疑到了cin对stdio的兼容,但是仍然RE 后来发现,我忽视了乘法的溢出,也就是说,仅仅只是把数据定义为long long,以满足它们的10^18量级,仍然是不够的 因为凡是乘法运算,都要警惕因为溢出变为负数的可能,这种情况下,应该把乘法用除法代替 例如: while ( r >= (x原创 2017-08-25 09:09:11 · 238 阅读 · 0 评论 -
CodeForces-820D Mister B and PR Shifts
/* 这题十分值得多多回顾,常拿出来重做一次 这题真是想得极为艰难的一道题,不过想明白以后,发现其实还是挺有意思的(其实也不算是我想明白的,是请教了别人,再纠结了很久,不然以我的智商,别说自己想,看懂blog上的代码都相当艰难了...)... shift记录右移多少位可使 a[i] == i;确切说,下标为移动次数,值为移动下标次数时,满足 a[i] == i的个数 参考系原创 2017-08-25 09:13:16 · 355 阅读 · 0 评论 -
CodeForces - 808A Lucky Year
/* 法一: 这是我最初的做法,制表,但是...这种方法其实,完全想明白,规避所有漏洞,并不是那么简单,而且即便想明白了,思路其实也不是清晰直接的...下次还是不要这样做了 又及,之前没想到先找这组 Lucky Number的顺次规律,而是...一个一个数去枚举求解,甚至,我一开始,还是把枚举的数作为数组下标的,而不是将目前已有的Lucky Numbr个数做下标,枚举的数作为数组原创 2017-08-25 09:22:44 · 249 阅读 · 0 评论 -
CodeForces - 814B An express train to reveries
/* 此题略坑的是,最终输出的那个数列,不能有重复的数字,这个坑点之前一直没发现,结果一直WA,其实题目也没明说这一点,但是对某组数据的解释中,有一句“只有一种答案”,可以从这句中猜测出来 借鉴自代码: http://blog.csdn.net/senyelicone/article/details/72909698 不过我略作了修改,省去了一次循环...即博客代码中的原创 2017-08-25 13:16:39 · 261 阅读 · 0 评论 -
CodeForces - 808C Tea Party
/* 这题真是...检查到错误以后,才觉得十分惋惜...太惨了! 主要是,之前choosemax函数,本意是要找容积最大的,而...按照我代码的语义,a数组已经变为记录当前杯子装了多少,b数组才是真正的记录容量的数组,但被我给搞忘记了...真是十分难过和悲伤... 同时,也突然觉得,自己未免也太不小心了,自己改了a数组居然都不记得,不过以后,我觉得最好还是改b不改a,毕竟输入进的原创 2017-08-25 13:18:26 · 201 阅读 · 0 评论 -
CodeForces - 820B Mister B and Angle in Polygon
/*1.先说下这题的思路,这题并不是难在代码,但是不太好想。正n边形的内角和为 (n-2)*180°,这个公式当时自然记得。但是,有些别的点却是要自己想的,简述思路如下:正n边形每个顶角的大小为 (n-2)*180/n°对正n边形的任一顶点,除去它自己和相邻的两个顶点,该定顶点可以与剩余的 (n-3) 个顶点连成(n-3)条对角线,这些对角线可将该顶点对应的顶角分为(n-3)+1,即(n-原创 2017-08-25 13:33:08 · 183 阅读 · 0 评论 -
CodeForces - 813A The Contest
/*思路:先计算完成所有任务的总时间,然后找到大于等于总时间的最近的可提交的时间,就是找到一个临界的可提交区间,右端点大于等于总时间,比较左端点与总时间,取较大值BTW:这题真是...,之前一直找不到为什么会WA,找了很久很久,都忍不住想退场就查数据,看看到底是那个数据那么坑,是不是数据很大很特殊,可为什么改为long long型还是WA,一番纠结...后来才发现,我代码的一处细节写错原创 2017-08-25 14:11:20 · 179 阅读 · 0 评论 -
CodeForces 732D Exams
/*这题的思路据是二分+贪心,二分枚举所有解,贪心判断能否考完 注意,这题自己写代码时,出了一个很隐蔽的bug,当时本来已经把变量 n、m 定义为全局变量了,但居然在main函数里又定义了一次,这就相当于屏蔽了全局变量,虽然输入是正确的,但是,在judge()函数判断能否考完的过程中,所用的n、m都是错的(因为此时真正的是作为局部变量出现的,但judge()函数种使用的为全局) 以及注意,原创 2017-08-26 09:11:52 · 215 阅读 · 0 评论 -
CodeForces - 811B Vladik and Complicated Book
/*此题最初太过想当然了,非常不好,当初TLE的时候,也没有想想能不能用更好的方法,毕竟排序的效率应该没有查找快,而我...每次都要用memcpy复制页数的顺序,每次都要调用一次sort()函数,应该会产生不小的时间开销后来发现,真的有简单的思路,而且不止一种1. 可以找到[l,r]区间对应的位置的数组元素中,页码比x对应的页码小的个数,记作tot,若l+tot==x,则没有变动,否则变原创 2017-08-26 09:15:49 · 204 阅读 · 0 评论 -
Codeforces812A Sagheer and Crossroads
/*这题值得一说的是,之前一直没有看懂题目,一直不知道题目是什么意思,后来明白了:一二三四行,就是它标的号码1、2、3、4所在区域的状态每行有4个数字,4个数字若分别为1,分别表示此处有车左转、有车直行、有车右转、人行道有行人于是,剩下的就比较好想了:某块区域只要有人,那么此处只要有车,无论车左右转还是直行,必定和该处的人相撞某块区域只要有人,如果别的区域经过左转、直行或者右转,想要原创 2017-08-26 09:18:24 · 202 阅读 · 0 评论 -
CodeForces - 731D 80-th Level Archeology
/* 这题弄懂的过程可谓相当艰难...为了弄懂差分法和线段扫描法,我大约参考了四串代码(当然,其实看代码不是最难的,最难的是,我知道代码的语义,可是不知道为什么要那样写...)下面贴四个blog,里面的解析,对于理解代码和理解这两种方法,非常重要!! http://blog.csdn.net/h1021456873/article/details/53240994http://www.原创 2017-08-26 09:26:02 · 259 阅读 · 0 评论 -
codeforces 731B Coupons and Discounts
/*一开始并没有想清楚这题该怎么解出,走了许多弯路我一开始以为此题的关键在于数组中的偶数元素,如果偶元素的后面还是偶元素,前一个偶元素就能当作0来处理;后来又想,是不是前后两个数字,分别减去两者中的最小值然后想来许多许多的角度最后发现...还是我自己想得太多了,这题其实没那么麻烦,无非是,遇到偶数取余,遇到零判断下一个,若遇到奇数,先判断后面还有没有元素,没有则输出"NO"并退出循环,否原创 2017-08-27 08:22:39 · 243 阅读 · 0 评论 -
CodeForces-740A (分类)
题目:http://codeforces.com/problemset/problem/740/A题意:给定n, a, b, c分别表示:目前已经买了n本书书的价格:a元可买1本书,b元可买2本书,c元可买3本书求ans(ans的含义为:用ans元,再买k本书,使得 (n + k) % 4==0 的最小 ans)分析:如果n已经是4的倍数,那原创 2018-01-27 10:27:11 · 379 阅读 · 0 评论