Codeforces
xindoo
10年技术博主,博客专家,曾就职于阿里 小米,目前任贝壳资深工程师。拥有运维、搜索广告、后端业务相关工作经验,擅长Java、Lniux、Redis……
展开
-
Codeforces Round #178 (Div. 2)
A. Shaass and Oskols题意:在n条电线上有不同数量的鸟, Shaass开了m枪,每一枪打的是第xi条电线上的第yi只鸟,然后被打中的这只鸟左边的飞到第i-1条电线上,右边的飞到i+1条电线上,没有落脚点的鸟会飞走。#include int a[105];int main(){ int n, m, x, y; while (scanf("%d",&n原创 2013-04-08 07:20:04 · 2248 阅读 · 1 评论 -
codeforces 327 B. Hungry Sequence
题目链接 题目就是让你输出n个数的序列,要保证该序列是递增的,并且第i个数的前面不能保护它的约数,我直接先对前100000的素数打表,然后输出前n个,so easy。//cf 191 B#include #include int ans[100005];bool vis[10000000];int main(){ int cnt = 1; for (int原创 2013-07-04 22:18:04 · 1652 阅读 · 0 评论 -
Codeforces Round #192 (Div. 2) (329A)C.Purification
题意: 在一个正常的点可以净化该行该列的所有细胞,判断是否可以净化所有的细胞,并且输出所选的点。思路: 如果可以的话,一定会选n个点。 先判断每一行是否有正常细胞,然后判断每一列是否有,如果都没有肯定不能净化,然后输出每一行或者每一列的第一个正常细胞的位置就好。#include #include #include using namespace std;i原创 2013-07-20 23:27:24 · 2121 阅读 · 0 评论 -
codeforces 327 A Ciel and Dancing
题目链接 给你一串只有0和1的数字,然后对某一区间的数翻转1次(0变1 1变0),只翻转一次而且不能不翻转,然后让你计算最多可能出现多少个1。 这里要注意很多细节 比如全为1,要求必须翻转,这时候我们只要翻转一个1就可以了,对于其他情况,我们只要计算区间里面如果0多于1,将其翻转后计算1的总数,然后取最大值。//cf 191 A//2013-07-04-22.13#in原创 2013-07-04 22:14:24 · 1807 阅读 · 0 评论 -
Codeforces Round #192 (Div. 2) (330A) A. Cakeminator
题意: 如果某一行没有草莓,就可以吃掉这一行,某一列没有也可以吃点这一列,求最多会被吃掉多少块蛋糕。//cf 192 div2#include #include int vis[11][11];char map[11][11];int main(){ int r, c; while (scanf("%d %d", &r, &c) != EOF)原创 2013-07-20 23:00:51 · 1269 阅读 · 0 评论 -
Codeforces Round #192 (Div. 2) (330B) B.Road Construction
题意: 要在N个城市之间修建道路,使得任意两个城市都可以到达,而且不超过两条路,还有,有些城市之间是不能修建道路的。思路: 要将N个城市全部相连,刚开始以为是最小生成树的问题,其实就是一道简单的题目。 要求两个城市之间不超过两条道路,那么所有的城市应该是连在一个点上的,至于这个点就很好找了,只要找到一个没有和其他点有道路限制的即可。//cf 192 B#inclu原创 2013-07-20 23:21:36 · 1812 阅读 · 0 评论 -
codeforces 339A.Helpful Maths B.Xenia and Ringroad 两水题
A.题意就是把字符串里面的数字按增序排列,直接上代码。#include #include #include using namespace std;int main(){ char s[1005]; int num[105]; while (scanf("%s" , s) != EOF) { int l = strlen(s);原创 2013-08-27 11:08:17 · 2123 阅读 · 0 评论 -
codeforces 339 D.Xenia and Bit Operations(线段树)
这个题目属于线段树的点更新区间查询,而且查的是整个区间,其实不用写query()函数,只需要输出根节点保存的值就可以了。题意: 输入n,m表示有2^n个数和m个更新,每次更新只把p位置的值改成b,然后输出整个序列运算后的值,而这个运算就比较复杂了, 最下面一层两个数字之间或运算得到原来数目一半的数字,然后两个之间异或运算,得到一半,再或再异或………………,一直到得到一个数字,这个数原创 2013-08-27 11:19:47 · 2150 阅读 · 0 评论 -
codeforces 344B - Simple Molecules
题意就是给出3个原子的化学价,然后组成一个分子,要保证这个分子是稳定的,如果你还记得高中化学知识的话这个很容易理解,然后让你求出1-2 2-3 1-3 号原子之间有几条键, 这里我分别用ta tb tc 表示, 用数学的方法表示出来的话就是a = tc + tb; b = ta+tc; c = ta + tb;可能有多种情况,只要输出一种即可。 我们随便找其中一个原子,然后从0开始原创 2013-09-19 16:07:37 · 1513 阅读 · 0 评论 -
codeforces 322 B Ciel and Flowers
题目链接有红绿蓝三种颜色的画,每种拿三朵可以组成一束花,或者各拿一朵组成花束,告诉你每种花的数目,求出可能组成最多的花束。如果你的代码过不了,考虑一下 8 8 9这种组合。 因为数据量很大,我的思想就是局部和总体采用不同的策略。#include #include using namespace std;int main(){ int r, g, b; wh原创 2013-06-29 09:33:04 · 1935 阅读 · 0 评论 -
codeforces 322 A Ciel and Dancing
题目链接题意: 有n个男孩和m个女孩,他们要结对跳舞,每对要有一个女孩和一个男孩,而且其中一个要求之前没有和其他人结对,求出最大可以结多少对。如图,一条线代表一对,只有这样三种情况。#include #include #include using namespace std;int main(){ int n, m; while (ci原创 2013-06-29 09:27:59 · 1516 阅读 · 0 评论 -
codeforces 317 A Perfect Pair
A. Perfect Pairtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputLet us call a pair of integer numbers m-perf原创 2013-06-22 16:46:48 · 1519 阅读 · 0 评论 -
Codeforces Round #179 (Div. 2)A、B、C、D
题目链接A.Yaroslav and Permutations题意: n个元素的数组,每个元素不超过1000,可以交换相邻两个元素,问是否可以在有限次的操作之后使得相邻两个元素的值不相同。#include #include int cnt[1005];int main(){ int n, a; while (scanf("%d", &n) !原创 2013-04-11 07:06:14 · 1686 阅读 · 0 评论 -
Codeforces Round #180 (Div. 2) 解题报告
题目链接A.Snow FootprintsA - Snow FootprintsThe starting position can be anywhere with a footprint. The footprints can be categorized into 3 types.only L sonly R sR s followed by L s原创 2013-04-19 22:20:19 · 2669 阅读 · 0 评论 -
codeforces 302 B. Eugeny and Play List
题目链接有n首歌,编号从1到n,每首歌播放时间为t,播放次数为c,n首歌按次序播放,有m个询问,输出第v分钟正在播放的歌曲编号。很简单的二分查找,直接贴代码。//2013-05-23-20.26#include #include using namespace std;const int maxn = 100005;int sum[maxn];int binary_se原创 2013-05-23 20:29:45 · 1397 阅读 · 0 评论 -
codeforces 312
A. Whose sentence is it?代码://codeforces 312 A//2013-05-01-19.12#include #include char str[102];int main(){ int n; scanf("%d", &n); getchar(); while (n--) { in原创 2013-05-27 19:17:28 · 1364 阅读 · 0 评论 -
Codeforces Round #186 (Div. 2)A、B、C、D、E
A.Ilya and Bank AccountIlya得到了一个礼物,可以在删掉银行账户最后和倒数第二位的数字(账户有可能是负的),也可以不做任何处理。//codeforces 313A //2013-05-31-13.47#include #include using namespace std;int main(){ int n; scanf("%d"原创 2013-05-31 13:50:10 · 1387 阅读 · 0 评论 -
codeforces 315 B.Sereja and Array
地址B. Sereja and Arraytime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputSereja has got an array, con原创 2013-06-13 20:11:44 · 1410 阅读 · 0 评论 -
codeforces 299 A. Ksusha and Array
题目链接题目就是让你找出一个数组中可以将这个数组中所有数整除的数,很明显,如果存在,这个数肯定是最小的一个。//cf 299A//2013-06-05-20.51#include #include #include using namespace std;const int maxn = 100005;int a[maxn];int main(){ int n原创 2013-06-05 20:59:03 · 1471 阅读 · 0 评论 -
codeforces 304A. Pythagorean Theorem II
题目链接给你一个n,计算出1 ≤ a ≤ b ≤ c ≤ n.使得由abc构成的三角形满足勾股定理,c为斜边。没有简单的方法,直接爆力,但是要注意,有些abc满足勾股定理的表达式,但不一定是三角形,所以要判断一下,根据三角形三边的性质,两边之和大于第三边,两边之差小于第三边。//cf304 A//2013-06-05-18.14#include #include int mai原创 2013-06-05 18:18:36 · 1597 阅读 · 0 评论 -
codeforces 305 C. Ivan and Powers of Two
题目链接 给出一个非减序的数组a[n], 然后得到s=2^a1+.……+2^an, 要使s为2^v -1,需要在数组中添加几个数。 我的思路是这样的,由2^a+2^a = 2^(a+1)可知,如果有两个连续的数a,我们可以把他们合并为a+1放入集合中,使集合中没有重复的数,我可以用stl里的set。如果想要满足题目中的要求,集合中必须有最大那个数个元素,缺多少就可以计算原创 2013-06-05 17:26:14 · 1414 阅读 · 0 评论 -
codeforces 289 B. Polo the Penguin and Matrix
题目链接题目意思是在n*m的矩阵中,你可以对矩阵中的每个数加或者减d,求最少的操作次数,使得矩阵中所有的元素相同。虽然在condeforces中被分到了dp一类,但完全可以通过排序,暴力的方法解决。#include #include #include #include using namespace std;const int maxn = 10005;int a[ma原创 2013-06-04 17:11:51 · 1760 阅读 · 0 评论 -
codeforces 304 B. Calendar
题目链接就是给你两个日期,让你求两个日期之间差多少天。我先算出两个日期分别是公元多少天,然后相减得到结果。//cf 304B//2013-06-05-18.38#include #include int y, m, d;int a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int loop(int原创 2013-06-05 18:41:49 · 1593 阅读 · 0 评论 -
codeforces 285C - Building Permutation
题目链接题目大意是有一个含n个数的数组,你可以通过+1或者-1的操作使得其中的数是1--n中的数,且没有重复的数。既然是这样的题意,那么我就应该把原数组中的数尽量往他最接近1--n中的位置放,然后求差绝对值之和,但有多个数,怎么使他们和最小,这样就要对其进行排序了,直接按大小给它们安排好位置,然后计算。//CF 285C//2013-06-06-19.57#include #in原创 2013-06-06 20:05:40 · 1513 阅读 · 0 评论 -
codeforces 318 A.Even Odds B.Sereja and Array
A.Even Odds 给你n和k, 把从1到n先排奇数后排偶数排成一个新的序列,输出第k个位置的数。比如 10 3 拍好后就是 1 3 5 7 9 2 4 6 8 10 第3个数是5。//cf 318 A//2013-06-18-20.30#include using namespace std;int main(){ __int64 n, k;原创 2013-06-18 21:13:51 · 1447 阅读 · 0 评论