
Codeforces
文章平均质量分 50
深蓝色的猫
一个努力成长为大牛的蒟蒻程序媛
展开
-
Round #216 (Div. 2) B. Valera and Contest
1#include#includeusing namespace std;int a[1010];int main(){ int n,k,l,r,sall,sk; scanf("%d%d%d%d%d%d",&n,&k,&l,&r,&sall,&sk); int temp1=sk/k; memset(a,0,sizeof(a)); sall-=sk;原创 2014-04-25 11:49:50 · 480 阅读 · 0 评论 -
Round #240 (Div. 2) A 、Mashmokh and Lights
1、#include#includeusing namespace std;int main(){ int a[110]; memset(a,0,sizeof(a)); int n,m; scanf("%d%d",&n,&m); for(int i=0;im;i++){ int temp; scanf("%d",&temp);原创 2014-04-07 17:59:59 · 379 阅读 · 0 评论 -
Round #117 (Div. 2) D 、Common Divisors
1、求两个串的公共#include#include#include#includeusing namespace std;int next[100010];string s1,s2;int cal_period(string s){ next[0]=next[1]=0; for(int i=1;i int j=next[i]; wh原创 2014-04-07 17:03:39 · 370 阅读 · 0 评论 -
Round #228 (Div. 1) A 、 Fox and Box Accumulation
1、题目链接:http://codeforces.com/problemset/problem/388/A2、本题用贪心法。。。首先,越是承重能力弱的盒子,我们越是尽量将它放在上面。用for循环从小到大枚举堆数k,直到找到一个k,使得对所有编号为i的木块,都满足a[i]>=i/k,其中a是已排好序的记录承重能力的数组。3、代码才20行左右。。。#include#includeu原创 2014-03-25 23:55:10 · 345 阅读 · 0 评论 -
Round #169 (Div. 2)A、Police Recruits
#includeusing namespace std;int a[100010];int main(){ int n,num=0,ans=0,temp; scanf("%d",&n); for(int i=0;in;i++){ scanf("%d",&temp); if(temp!=-1) num+=temp; else{ if(nu原创 2014-05-03 11:46:07 · 298 阅读 · 0 评论 -
Round #169 (Div. 2)C、Checkposts
1、#include#include#include#includeusing namespace std;const int maxn=100010;const int MOD=1000000007;const int INF=2147483647;vector G[maxn],G2[maxn];vector S;int vis[maxn],sccno原创 2014-05-03 11:56:52 · 407 阅读 · 0 评论 -
Round #169 (Div. 2)B、Prison Transfer
1、这道题也是个Ad-hoc。。。#include#includeusing namespace std;int a[200010];const int INF=2147483647;int main(){ int n,t,c; scanf("%d%d%d",&n,&t,&c); for(int i=1;i scanf("%d",&a[i]);原创 2014-05-03 11:52:59 · 367 阅读 · 0 评论 -
Coder-Strike 2014: Qualification Round A
#include#include#include#includeusing namespace std;int main(){ string s; cin>>s; int a=0,b=0,c=0,d=0; for(int i=0;i if(isprint(s[i])) a++; if(isupper(s[i])) b++;原创 2014-04-16 23:04:20 · 271 阅读 · 0 评论 -
Round #234 (Div. 2) A 、 Inna and Choose Options
1#include#include#includeusing namespace std;int ways[6][2];string s;bool judge(int x,int y){ for(int i=0;i bool flag=true; for(int j=0;j if(s[j*y+i]!='X'){ flag=原创 2014-04-16 22:57:50 · 306 阅读 · 0 评论 -
Round #214 (Div. 2)B. Dima and To-do List
1、又是一个模拟题,我还能说什么呢。。。就是题目有点绕,yingwe原创 2014-05-11 23:03:16 · 377 阅读 · 0 评论 -
Round #242 (Div. 2) B. Megacity
1、就是排个序再加个循环。。。懒得说了。。。#include#include#includeusing namespace std;struct city{ double r; int p; bool operator return r }}a[1010];int main(){ int n,s,cn原创 2014-04-26 00:16:01 · 384 阅读 · 0 评论 -
Round #216 (Div. 2) C. Valera and Elections
for(int i=info[num];i;i=next[i]){ if(to[i]!=fa && !dfs(to[i],num,val[i])) flag=false;} if(flag&&w==2){ans[++ans[0]]=num;flag=false;} return flag;}int main(){ scanf(原创 2014-04-25 17:29:00 · 438 阅读 · 0 评论 -
Round #169 (Div. 2)B. Little Girl and Game
1、统计每个字母出现的次数是奇数还是偶数,假如奇数个数为k,则k为0或1时都是zhiji原创 2014-05-01 02:13:38 · 667 阅读 · 0 评论 -
Round #169 (Div. 2)C. Little Girl and Maximum Sum
1、用退化的线段树(也就是没有做。。。原创 2014-05-01 02:16:57 · 541 阅读 · 0 评论 -
Round #203 (Div. 2)C、Bombs
1、题目链接:http://codeforces.com/problemset/problem/350/C2、这道题昨晚一直WA在第五组测试数据上,主要是因为3、运算符重载非常巧妙,这样落在坐标轴上的点就不会“打架”,不在坐标轴上的点,如果有一个坐标相同,也不必担心,一样不会“打架”,两个坐标都不同,就更不用担心了,因为此时顺序可以是任意的。#include#include#i原创 2013-10-02 11:35:44 · 324 阅读 · 0 评论 -
Round #203 (Div. 2)B、Resort
1、题目链接:http://codeforces.com/contest/350/problem/B2、去掉所有出度大于一的点,然后搜索即可。 #include#includeusing namespace std;int hotel[100010],fa[100010],od[100010],len,max;int dfs(int num){ if(fa[n原创 2013-10-02 02:37:08 · 445 阅读 · 0 评论 -
Round #198 (Div. 2)C、Tourist Problem
1、题目链接:http://codeforces.com/problemset/problem/340/C2、这道题我在比赛的时候一点思路都没有,比赛结束后就去网上搜题解。可能是因为水平有限吧,我感觉都看不太懂,于是干脆自己想了。3、这题刚开始比较乱,但也容易想到其实本质就是统计“每对结点间距离”出现的次数。我从最简单的只有两个点的情况开始考虑,比如2,3,发现最左边的2有点特殊,因为0,原创 2013-09-05 14:09:49 · 661 阅读 · 1 评论 -
Round #198 (Div. 2)D、Bubble Sort Graph
1、题目链接:http://codeforces.com/problemset/problem/340/D2、比赛的时候可能确实太紧张了,像这样一道题都没有办法冷静地思考。题目给出的冒泡排序和教科书上的有一些区别,可以发现,最多只要经过n-1轮,就可以全部排序。我们考虑最糟情况,也就是最小的数在最后一个,那么每轮它都可以提前一个位置,n-1轮后就到第一个了,其它更大的、或者初始位置更靠前的数,原创 2013-09-05 15:12:58 · 445 阅读 · 0 评论 -
Round #198 (Div. 2) A、The Wall
1、题目链接:http://codeforces.com/problemset/problem/340/A2、昨晚给虐惨了,这是唯一一道做出来的,求【a,b】内的所有“x,y的最小公倍数的倍数”。注意边界可能不像样例一样是倍数,所以要处理一下,稍稍缩小范围。3、说起来这个程序还成功躲掉一次hack呢。。。那个人hack了将近10个选手的程序,只有我这个没成功,否则这回就要爆零了。。。伤不起原创 2013-08-31 20:12:31 · 326 阅读 · 0 评论 -
Round #198 (Div. 2) B、Maximal Area Quadrilateral
1、题目链接:#include#include#includeusing namespace std;struct Point{ double x,y; Point(double x=0,double y=0):x(x),y(y){}};typedef Point Vector;const double eps=1e-10;int dcmp(原创 2013-09-01 17:10:58 · 376 阅读 · 0 评论 -
Round #196(Div.2)B 、Routine Problem
题目链接:http://codeforces.com/contest/337/problem/B1、首先求出最大可能值num=a*b*c*d,然后为了求出最简整数比需要求两数的最大公约数。具体见代码。#include #include using namespace std;long long gcd(long long a,long long b){ return原创 2013-08-17 02:09:37 · 509 阅读 · 0 评论 -
Round #196(Div.2)A 、Puzzles
题目链接:http://codeforces.com/contest/337/problem/A1、首先对所有m个数字排序,每次枚举连续n个数,求首位差的最小值。#include#include#includeusing namespace std;int a[55];int ans=2147483647;int main(){ int n,m; w原创 2013-08-17 02:06:10 · 295 阅读 · 0 评论 -
Round #197 (Div. 2) B、Xenia and Ringroad
1、题目链接:http://codeforces.com/problemset/problem/339/B2、模拟即可。#include using namespace std;int main(){ int n,m,temp,last; long long ans; while(scanf("%d%d",&n,&m)==2){原创 2013-08-27 09:37:30 · 631 阅读 · 0 评论 -
Round #197 (Div. 2) D 、 Xenia and Bit Operations
1、题目链接:http://codeforces.com/problemset/problem/339/D2、我是真没想到用二维数组也可以做,本来还以为要用链表的,想想很麻烦,结果比赛还剩50多分钟就在那里干坐着。。。也有人说是线段树,但是我刚好卡在那里没看。。。ORZ。。。参考了某大牛的代码,自己写了下,很容易就AC掉了~这也算是“非主流”线段树了吧。#include using n原创 2013-08-27 12:48:22 · 907 阅读 · 0 评论 -
Round #197 (Div. 2) C.、Xenia and Weights
1、题目链接:http://codeforces.com/problemset/problem/339/C2、本题过了系统数据,但是没有过hack数据。我是用贪心法,从1开始搜索,尽量选小的砝码加,但是1110000000,4这个数据过不了,原因是我并没有考虑到全部情况,如果按我原来的方法,从1开始搜索,那么1,2,3后加不上砝码,就失败了,事实上2,3,2,3是可以过的。由此可见第一个砝码是原创 2013-08-27 10:36:37 · 790 阅读 · 0 评论 -
Round #197 (Div. 2) A、Helpful Maths
题目链接:http://codeforces.com/contest/339/problem/A1、读入的时候要小心。注意回车、加号等。#include #include #include using namespace std;int main(){ char ch; int a[100],n; n=0; while((ch=g原创 2013-08-27 01:31:25 · 366 阅读 · 0 评论 -
Round #195(Div.2)A、Vasily the Bear and Triangle
题目地址:http://codeforces.com/problemset/problem/336/A1、刚开始因为没有注意到x1#include using namespace std;int main(){ int x,y,x1,y1,x2,y2,tempx,tempy,ans; while(scanf("%d%d",&x,&y)==2){ if原创 2013-08-10 22:19:22 · 483 阅读 · 0 评论 -
Round #195(Div.2)B、Vasily the Bear and Fly
题目链接:http://codeforces.com/contest/336/problem/B1、这道题是纯数学题,找下规律后发现答案就是下层每个点到上层每个点的连线的长度之和。刚开始想用暴力法理所当然地TLE了,因为重复计算次数太多了,比如水平距离为2的两个圆的最短距离“总和”就是(2*r+2*根号2*r)+(2*r+根号2*r)+(2*r),不用每次都重复算(重复相加),只要保存到数组s原创 2013-08-11 06:09:06 · 680 阅读 · 0 评论 -
Round #192(Div.2)A、Cakeminator
1、其实就是模拟。。。#include#include#include#includeint main(void){ int i,j,r,c,count,num; char a[10][10]; bool row[10],col[10]; while(scanf("%d%d",&r,&c)==2) { me原创 2013-08-09 21:02:50 · 346 阅读 · 0 评论 -
Round #195(Div.2)A、Vasily the Bear and Triangle
1、刚开始因为没有注意到x1#include using namespace std;int main(){ int x,y,x1,y1,x2,y2,tempx,tempy,ans; while(scanf("%d%d",&x,&y)==2){ if(x0)tempx=-x; else tempx=x; if(y0原创 2013-08-10 22:12:24 · 184 阅读 · 0 评论 -
Round #196 (Div. 2) C、Quiz
题目链接:http://codeforces.com/problemset/problem/337/C1、以下是官方题解,我把它翻译成了中文,看懂了这个,就能AC这道题了。注意可能取余是负数,这时要在ans上加上mod才行。Assume that Manao has doubled his score (i.e. gave k consecutive correct answers) ex原创 2013-08-22 17:59:41 · 402 阅读 · 0 评论 -
Round #203 (Div. 2)A、TL
1、题目链接:http://codeforces.com/contest/350/problem/A2、模拟题。按照题意做即可。 #include#includeusing namespace std;int main(){ int n,m,mina,maxa,temp,v; bool flag; while(scanf("%d%d",&n原创 2013-10-02 02:35:13 · 342 阅读 · 0 评论 -
Round #201 (Div. 2)B、Fixed Points
1、题目链接:http://codeforces.com/contest/347/problem/B2、我怎么又做了画蛇添足的事。。。在flag1=true之后直接break了,只是为了提高一点点效率。。。可是这样做的话,后面那些“正常”的fixed的点都被忽略了。。。奇怪的是系统数据居然过了。。。结果到最后果断被hack数据干掉了。。。#includeusing namespace原创 2013-09-21 09:09:15 · 383 阅读 · 0 评论 -
Round #228 (Div. 2)A、Fox and Number Game
1、题目链接:http://codeforces.com/problemset/problem/389/A2、本题就是求这些数的最大公因数,为什么呢?易知经过一系列操作后,所有数必然相等,而此时它们的最大公因数就是自身。而假设a,b的最大公因数为c(b大于a),b=b-a后最大公因数依旧不变(就是辗转相除法的原理)。也就是等于最终的数的值。输出最终的数的值*数的个数。 #include原创 2014-02-04 22:48:02 · 393 阅读 · 0 评论 -
Round #228 (Div. 2)B、Fox and Cross
1、题目链接:http://codeforces.com/problemset/problem/389/B2、暴力枚举即可,注意两个十字架不能分享同一个阴影格!#includeusing namespace std;char a[110][110];int n;bool f[110][110];bool in(int i,int j){ if(i>=0&&i原创 2014-02-04 22:50:55 · 372 阅读 · 0 评论 -
Round #227 (Div. 2)B、George and Round
1、题目链接:http://codeforces.com/contest/387/problem/B2、这道题用贪心法。。。先排序再比较,不想说了。1Y。#include#includeusing namespace std;int a[3010],b[3010],cnt=0;int main(){ int n,m; scanf("%d%d",&n,&原创 2014-01-31 02:37:35 · 470 阅读 · 0 评论 -
Round #227 (Div. 2)A、George and Sleep
1、题目链接:http://codeforces.com/contest/387/problem/A2、就是考察补码知识,先加个24*60然后再运算,这样更简单,不用讨论,就像高精度减法里的“借位”一样。1Y。 #includeusing namespace std;int main(){ int m1,n1,m2,n2,temp1,temp2; scanf("原创 2014-01-31 02:35:45 · 565 阅读 · 1 评论 -
Round #225 (Div. 2)A、 Coder
1、真的理解了这句话:比赛成绩=比赛实力*比赛经验,是乘号不是加号!这么水的一个题我都做了半个小时,因为刚开始以为是n皇后问题,写了一个超复杂的dfs后,发现每个皇后只能控制前后左右的格子,也就是说,只要做成“国际象棋盘”那个样子就可以了(第一次交发现错了之后,我还尝试了一下对角线,这个是不对的,如果皇后是控制一行或一列的话,交“对角线”就是对的了)。2、本周开始比赛特训吧。题目链接:原创 2014-01-21 08:40:43 · 306 阅读 · 0 评论 -
Round #226 (Div. 2) A、Bear and Raspberry
1、题目链接:http://codeforces.com/contest/385/problem/A2、说实话。。。我并没有太看懂题目的背景描述,但是从样例能猜出十之八九。。。就是写个循环,于是1Y。#include#includeusing namespace std;int main(){ int a[110],n,c; scanf("%d%d",&n,&c原创 2014-01-25 12:11:35 · 360 阅读 · 0 评论 -
Round #226 (Div. 2) C、 Bear and Prime Numbers
1、题目链接:http://codeforces.com/contest/385/problem/C2、昨天A、B两题都1Y了,剩下一个半小时就在发呆。。。要是不能突破第三题我就只能永远在DIV2混了。。。3、刚开始觉得困难是因为L,R最多达到2*10^9,觉得筛法求素数的话数组开不了那么大,后来我发现我SB了,因为x最多10的7次方,素数总不可能超过x的最大值吧?等我反应过来的时候,比赛原创 2014-01-25 12:24:40 · 478 阅读 · 0 评论