
CoderForce
南宫嘉俊
学生
展开
-
coderforce 588B Duff in Love
#include#include#includeusing namespace std;#define LL long longint main(){ LL n; while(scanf("%lld",&n)!=EOF) { for(LL i=2;i*i<=n;i++) { if(n%i)原创 2015-10-16 21:21:05 · 305 阅读 · 0 评论 -
coderforce 580A Kefa and First Steps
求一串数的最长连续不下降最长L。#include#include#includeusing namespace std;const int maxm=1e5+10;int a[maxm];int dp[maxm];int main(){ int n; while(scanf("%d",&n)!=EOF) { int M=1;原创 2015-10-18 22:56:36 · 431 阅读 · 0 评论 -
Codeforces Round #329 (Div. 2)B. Anton and Lines
题意:给你x,y,还有n条直线,问你在x到y的区域内部是否存在交点,不包括x,y上#include#include#includeusing namespace std;const int maxm=1e5+10;struct node{ double y1,y2; bool operator<(const node s)const { if原创 2015-11-05 13:19:05 · 388 阅读 · 0 评论 -
Codeforces Round #329 (Div. 2) A 2Char
题意:安德鲁·常读的文章在他最喜欢的杂志2Char。这些文章的主要特点是,他们每个人的最多使用两个不同的字母。安德鲁决定派了一篇文章,该杂志,但他并没有写任何文章,他只是决定采取一个随机从杂志26Char。然而,发送到杂志2Char之前,他需要适应文本到日志的格式。要做到这一点,他将删除所选择的文章,以这样的方式的一些话,剩余的文本可以使用不超过两个不同的字母写入。由于支付依赖从非空格字符在文原创 2015-11-05 04:27:24 · 300 阅读 · 0 评论 -
coderforce 573A Bear and Poker
题意:将一些数,可以不变,可以变成自己的2倍或3倍。 变完后,问,是否可以变成全都相等解析:乘以2或3,只是改变数中2和3因子的个数,则把每个数中的2因子和3因子全部去掉后,每个数都相等的话,YES, or NO#include#include#include#include#includeusing namespace std;int main(){ int n;原创 2015-10-20 15:38:28 · 346 阅读 · 0 评论 -
coderforce 534A Exam
题意:给你一个数字N,问你组成包含最多数字的排列·,排列符合条件,abs(相邻的两个数)!=1.解:列举1,2,3,4的情况,以后的就按程序来,1在最开头,n在中间,其他按照在n的右边和左边一次遍历就可以了#include#include#include#includeusing namespace std;const int maxm=1e4+10;int a[maxm];in原创 2015-11-05 23:50:14 · 285 阅读 · 0 评论 -
coderforce 579B. Finding Team Member
题目大意:给一个下三角矩阵,要求选2n组人,每组两人,aij表示i和j在一起的分数,每次选的结果都是当前可能的最大值,一个人只能在一组里.解:用结构体存两个下标和值。最后排序,取最大#include#include#includeusing namespace std;const int maxm=1e6+10;int a[maxm];int num[maxm];struct n原创 2015-11-06 01:01:53 · 358 阅读 · 0 评论 -
coderforce 527A Arrays
题意:给你两个数组。问,在数组A中随便选K个,在数组中随便选M个,问你,是否有可能所选的数中,B中的数都比A中的大。简单贪心#include#include#includeusing namespace std;#define LL long longconst LL maxm=1e5+10;LL a[maxm];LL b[maxm];int main(){ LL n原创 2015-10-20 16:34:28 · 488 阅读 · 0 评论 -
coderforce 587A Duff and Weight Lifting
题意:给一个数n,下面有n个数wi,如果sum(2^wi)==2^x(x是整数),那么就给结果 ans 加一次,min(ans);#include#include#includeusing namespace std;const int maxm=1e7;int a[maxm];int main(){ int n; while(scanf("%d",&n)!=EOF)原创 2015-11-06 13:16:49 · 330 阅读 · 0 评论 -
coderforce A.Ilya and Diplomas
题意:a>b>c,a+b+c=n告诉你a,b,c的取值范围,让你构造出a,b,c的值#include#includeusing namespace std;int main(){ int n; while(scanf("%d",&n)!=EOF) { int a,b,c,d,e,f; scanf("%d%d%d%d%d%d",原创 2015-11-08 19:17:58 · 330 阅读 · 0 评论 -
coderforce 535A. Tavas and Nafas
题意:对应数字,输出英文#include#include#includeusing namespace std;int main(){ char s1[20][10]={"one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourtee原创 2015-11-09 16:55:57 · 404 阅读 · 0 评论 -
coderforce 525A Vitaliy and Pie
题意:n个房间排成一排,每个房间里有一把钥匙,房间之间有门,大写字母代表门小写字母代表钥匙,对应的字母可以打开对应的门,从左到右,要从第一个房间到达地n个房间,问需要买几把钥匙(到达一个房间可以拿到其中的钥匙,钥匙只能使用一次,如果手中没有能打开这个门的钥匙可以购买)。#include#include#includeusing namespace std;const int maxm=1e原创 2015-11-09 15:36:26 · 360 阅读 · 0 评论 -
coderforce 540A Combination Lock
题意:给你两串数字,每次可以改变一位,实现+1,-1操作,且9+1=0&&0-1=9。求最少多少步,才能使s1变到s2.#include#include#include#includeusing namespace std;const int maxm=1e4+10;char s1[maxm];char s2[maxm];int main(){ int n; wh原创 2015-11-09 16:12:11 · 349 阅读 · 0 评论 -
coderforce 552A. Vanya and Table
题意:有n个操作,每次操作会将使得一个矩形区域都加上1,然后问你这个100×100的区域的和是多少#include#include#includeusing namespace std;int main(){ int n; while(scanf("%d",&n)!=EOF) { int cnt=0; int x1,y1,x2,y2原创 2015-11-09 16:36:23 · 281 阅读 · 0 评论 -
coderforce 527APlaying with Paper
//题意:一张纸,居短边对折直到最后一块是正方形。问把原先的矩形分成了多少块。#include#include#includeusing namespace std;#define LL long longint main(){ LL a,b; while(scanf("%lld%lld",&a,&b)!=EOF) { LL cnt=0;原创 2015-11-10 09:17:58 · 283 阅读 · 0 评论 -
coderforce 579A Raising Bacteria
题意:就是求一个数N可以分解成多少个2^a;#include#include#includeusing namespace std;int main(){ int n; while(scanf("%d",&n)!=EOF) { int cnt=0; while(n) { if(n&1)原创 2015-10-24 22:08:41 · 398 阅读 · 0 评论 -
coderforce 545D Queue
题意:给你一串数,这些数字分别代表每个人最多等待的时间,当他等待的时间超过这个时间,他就会离开,#include#include#includeusing namespace std;#define LL long longconst LL maxm=1e5+10;LL a[maxm];int main(){ LL n; while(scanf("%lld",&n)原创 2015-11-10 15:24:14 · 308 阅读 · 0 评论 -
coderforce 591B Rebranding
题意:给你一串字符串,让后操作N次,每次按要求,把一个字符转换成另一个字符,然后输出结果。分析:因为题中只有26个小写字母,所以,每次输入,都按要求把一个字符转换成另一个字符,然后输出即可#include#include#includeusing namespace std;const int maxm=1e6;char s[maxm];int a[36];int main()原创 2015-10-26 11:03:33 · 426 阅读 · 0 评论 -
coderforce 574A Bear and Elections
题意:有n个数a1,a2,a3,a4....,一次操作可以从将ai减去一个值d,然后第一个数变为a1+d,那么这次操作的代价为d,求使a1大于所有数的最小代价。#include#include#includeusing namespace std;const int maxm=1e2+10;int a[maxm];int main(){ int n; while(原创 2015-10-26 11:25:44 · 256 阅读 · 0 评论 -
coderforce 514A Chewbaсca and Number
import java.util.*;public class Main { public static void main(String[] args){ Scanner cin=new Scanner(System.in); while(cin.hasNext()){ long x=cin.nextLong(); long temp1=x; int w=0;原创 2015-11-13 08:44:37 · 344 阅读 · 0 评论 -
coderforce 576A Vasya and Petya's Game
题意:从1到N,若其中有一个数是素数,就把它以及它的次方数存在数组中,最后输出来#include#include#includeusing namespace std;const int maxm=1e3+10;int isprime[maxm];int prime[maxm];int vis[maxm];int a[maxm];int s;void Init(){原创 2015-10-28 16:33:28 · 318 阅读 · 0 评论 -
coderforce 584B Kolya and Tanya(找规律的题)
规律题:pow(3,3n)-pow(7,n);#include#include#includeusing namespace std;#define LL long longconst int mod=1e9+7;int N(int x,int n){ int s=1; for(int i=1;i<=n;i++) { s=(LL)s*x%mod原创 2015-10-28 22:30:56 · 408 阅读 · 0 评论 -
ocderforce 583B Robot's Task(模拟)
解题说明:此题为一道模拟题,为了保证机器人掉头次数最少,首先让机器人一直向右走,直到无法取到新的数据,然后再回头向左走,循环往复,直到取完所有的数。#include#include#includeusing namespace std;const int maxm=1e3+10;int a[maxm];int vis[maxm];int main(){ int原创 2015-10-29 11:40:41 · 347 阅读 · 0 评论 -
coderforce 586A Alena's Schedule
#include#include#includeusing namespace std;const int maxm=1e2+10;int a[maxm];int main(){ int n; while(scanf("%d",&n)!=EOF) { a[0]=0; a[n+1]=0; int cnt=0;原创 2015-10-29 19:30:25 · 332 阅读 · 0 评论 -
coderforce 581B Luxurious Houses(线段树求区间最大)
题意:从1到N间房子,求每个房子至少加多少米才能比后面的高解:简单的线段树求区间最大值问题。#include#include#includeusing namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1const int maxm=1e5+10;const int inf=-1<<29;int sum[m原创 2015-10-28 17:10:04 · 392 阅读 · 0 评论 -
coderforce 572B Order Book
题意:有一些交易event,要求把price相同的合并,最后选取k个最小的sell和最大的buy#include#include#includeusing namespace std;const int maxm=1e5+10;int s[maxm];int b[maxm];char a[5];int main(){ int m,n; while(scanf(原创 2015-10-30 00:34:01 · 390 阅读 · 0 评论 -
coderforce 598A. Tricky Sum(math)
题意:计算1-n的和规则:如为2的次方,则sum-=i,否则为sum+=i;最后求sum;解:可以把1-n的和全部求出来,再减去其中为2的次方数的2倍就是sum;#include#include#includeusing namespace std;#define LL long longint P(int k){ int sum=1; for(int i=1;原创 2015-11-15 17:44:23 · 650 阅读 · 0 评论 -
Codeforces Round #331 (Div. 2) B. Wilbur and Array
题意:要求一个a数组经过最少多少次可以变成b数组。a数组的初始值全为0,每次改变可以从i到n改变;#include#include#includeusing namespace std;#define LL long longint main(){ LL n; while(scanf("%lld",&n)!=EOF) { LL a;原创 2015-11-16 10:27:10 · 321 阅读 · 0 评论 -
coderforce 515A Drazil and Date
题意:给你一个坐标(x,y);人可以走上下左右四个方向,人的起点为(0,0);问你能否刚好走ste步走到哪里;解:先算出abs(x)+abs(y),意思是先从(0,0)走到那里,然后判断走到哪里的步数,1:如果大于step,则不能到;2:走到哪里了,步数剩余%2为奇数的话,随便怎么走,都不能走到那里,偶数则可以;#include#include#include#includeusing原创 2015-11-15 23:53:24 · 316 阅读 · 0 评论 -
Codeforces Round #332 (Div. 2) B. Spongebob and Joke
题意:若第三行的数在第二行的数中出现过,并且全部为出现1次的,则输出possible,并输出其对应的在第二行中的位置。若出现过两次,则输出Ambiguity,否则,输出Impossible.#include#include#includeusing namespace std;const int maxm=1e5+10;int a[maxm];int f[maxm];int b[ma原创 2015-11-21 10:58:16 · 316 阅读 · 0 评论 -
Codeforces Round #331 (Div. 2) A. Wilbur and Swimming Pool
题意:给你n个点,求矩形面积。要求矩形的每条边与坐标轴平行。如果不能得出,则输出-1;#include#include#include#includeusing namespace std;int x[5],y[5];int main(){ int n; while(scanf("%d",&n)!=EOF) { int h=-2001,l=原创 2015-11-16 10:25:01 · 303 阅读 · 0 评论 -
coderforce 588A Duff and Meat(简单的贪心)
#include#include#includeusing namespace std;#define LL long longconst LL maxm=1e5+10;LL a[maxm],p[maxm];int main(){ LL n; while(scanf("%lld",&n)!=EOF) { for(LL i=0;i<n;i++)原创 2015-10-16 09:28:59 · 447 阅读 · 0 评论 -
coderforce 569B Inventory
题意:给你一个数列,要求改变最小次数,使改变后的数列为1-n的一个排列解:标记出现过的&&第一次出现的&&a[i]#include#include#includeusing namespace std;const int maxm=1e5+10;int a[maxm];int b[maxm];int vis[maxm];int vit[maxm];int main(){原创 2015-10-31 14:44:19 · 314 阅读 · 0 评论 -
coderforce 595B. Pasha and Phone(容斥原理)
题意:现有一长度为n的空号码,给定整数k(满足n % k == 0)和具有n/k个元素的序列a[]和b[]。定义一个电话号码是good:将长度n分成n/k块,要求第i块填a[i]倍数且不能以b[i]开头,不够k位前面可以补0。问你good 电话号码的个数%(1e9+7)。#include#include#include#includeusing namespace std;#defi原创 2015-11-21 23:59:23 · 307 阅读 · 0 评论 -
coderforce 519A A and B and Chess
水题不解释,仔细读题皆可#include#include#includeconst int maxm=50;char map[maxm][maxm];int main(){ int sum1=0,sum2=0; for(int i=0; i<8; i++) { scanf("%s",map[i]); } for(int i=0;原创 2015-11-15 23:33:44 · 315 阅读 · 0 评论 -
coderforce 580B Kefa and Company
题目大意:Kefa要请朋友吃饭,他有n个朋友,这些朋友都两个特征:1.身上所带钱数2.对Kefa的友谊值如果这些朋友中有人所带钱数比这个朋友所带钱所多与超过d元(包括d),那么这朋友会觉得自己可怜,Kefa不想让自己的朋友感到可怜,但他又想获得高得友谊值,问Kefa能获得的最高的友谊值是多少#include#include#includeusing namespace原创 2015-10-30 16:17:18 · 419 阅读 · 0 评论 -
coderforce 551A - GukiZ and Contest
题意:按照得分高低#include#include#includeusing namespace std;const int maxm=1e4+10;int a[maxm];int b[maxm];int c[maxm];int main(){ int n; while(scanf("%d",&n)!=EOF) { for(int i=0;原创 2015-10-30 18:35:03 · 304 阅读 · 0 评论 -
coderforce 554B Ohana Cleans Up
题意:求最多有多少行相同#include#include#include#include#include#includeusing namespace std;mapq;int main(){ int n; while(scanf("%d",&n)!=EOF) { q.clear(); string s; i原创 2015-10-30 19:13:35 · 298 阅读 · 0 评论 -
Codeforces Round #321 (Div. 2) C. Kefa and Park time limit per test
题目大意:一棵树,有的节点上有猫,有的没有。求出从根节点出发,到达叶子节点的路径中连续出现猫的数量不能超过m的路径有几条。解题思路:DFS。细节:vector构造树时因为不知道谁是父亲节点谁是子节点,因此两个点都当做父亲节点处理。判断叶子节点时,儿子个数为1的就是叶子节点。#include#include#include#includeusing namespace std;co原创 2015-11-17 13:55:23 · 415 阅读 · 0 评论 -
coderforce 489B B. BerSU Ball
题意:每两个跳舞的人可以配对,并且他们两个的绝对值只差小于等于1。求最多匹配多少对解:排个序,配对就完了#include#include#include#includeusing namespace std;const int maxm=1e3+10;int a[maxm];int b[maxm];int main(){ int n; while(scanf(原创 2015-12-08 19:42:34 · 450 阅读 · 0 评论