Codeforces C语言刷题
Codeforces C语言刷题
DQ_CODING
这个作者很懒,什么都没留下…
展开
-
codeforces 486A-C语言解题报告
题目网址题目解析1.f(n)=(-1)^nn2.使用long long int3.总结找出规律:if(i%2!=0)return -1(i+1)/2;elsereturn i/2;直接暴力求解—超时#include<stdio.h>#include<stdlib.h>// TIME_LIMIT_EXCEEDED,此方法不行,超时//注意规律!!!!!!!!直接暴力解决必然时间超限long long f(long long i){ if(i%2!=0)原创 2021-08-03 18:05:50 · 210 阅读 · 0 评论 -
codeforces 705A-C语言解题报告
题目网址题目解析1.重点:结尾是it,中间使用that连接,所以使用for循环,奇数输出I hate,偶数输出I love,i!=n时,输出that代码#include<stdio.h>#include<stdlib.h>#define SIZE 100000int main(){ int n=0; scanf("%d",&n); if(n==1) { printf("I hate it"); }else { for(int i=1;i&原创 2021-07-01 10:15:20 · 135 阅读 · 0 评论 -
codeforces 158B-C语言解题报告
题目解析代码在这里插入代码片原创 2021-06-29 11:04:46 · 151 阅读 · 0 评论 -
codeforces 318A-C语言解题报告
题目网址题目1.一个数先奇数从小到大再偶数从小到大(1–n),问第k个数是什么?2.举例发现规律:第k个数与n的奇偶无关,使用中间数mid=(a+1)/2;进行判断,k是奇数还是偶数奇数:count=b*2-1;偶数:count=(b-mid)*2;3.因为数很大,使用scanf("%lld %lld",&a,&b);代码#include<stdio.h>#include<stdlib.h>#include<string.h>int原创 2021-06-28 17:54:16 · 239 阅读 · 0 评论 -
codeforces 1030A-C语言解题报告
题目网址题目解析1.输入一串数字,如果有1就输出HARD,否则输出EASY2.勿忘&代码#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ int n=0,i=0; int num=0; int count=0; scanf("%d",&n); for(i;i<n;i++) { scanf("%d",&num); if(num=原创 2021-06-25 10:24:00 · 240 阅读 · 0 评论 -
codeforces 344A-C语言解题报告
题目网址题目解析代码#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ int n=0; int i=0; int c=0; int pre=-1; int count=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&c); if(pre==-1) { pre=c;原创 2021-06-23 14:06:47 · 175 阅读 · 0 评论 -
codeforces 136A-C语言解题报告
题目网址题目解析1.输入每个人给第几个人发礼物(1–n),输出每个人收到第几个人发的礼物2.因为1–n,所以for循环也使用1–noutput[input[j]]=j;代码#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ int n=0; scanf("%d",&n); int input[110]={0}; int output[110]={0};原创 2021-06-22 10:35:14 · 129 阅读 · 0 评论 -
codeforces 467A-C语言解题报告
题目网址题目解析1.输入n个房间,再每一行输入现有的p个人,和一共可以容纳的q人数,如果q-p>=2则计数+1代码#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ int n=0,p=0,q=0; int count=0,i; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d %d",&p,&a原创 2021-06-21 11:32:02 · 140 阅读 · 0 评论 -
codeforces 133A-C语言解题报告
133A题目网址题目解析1.输入字符串,如果里面包含H,Q,9,就输出YES,否则输出NO代码#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char c[100]={'0'}; int flag=0; int i; scanf("%s",c); for(i=0;i<strlen(c);i++) { if(c[i]=='H'||c[i]=='Q'||c原创 2021-05-28 08:35:03 · 157 阅读 · 0 评论 -
codeforces 677A-C语言解题报告
677A题目网址题目解析1.输入n个数字,如果输入的数字比h大,就加2,如果小于等于h,就加1举例:输入:3 74 5 14输出:4代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>int main(){ int n=0,h=0,count=0; int num[1000]={0}; scanf("%d %d",&n,&am原创 2021-05-20 10:28:08 · 105 阅读 · 1 评论 -
codeforces 271A-C语言解题报告
271A题目网址题目解析1.输入一个年份,求这个年份之后的每一个数字都各不相同的年份举例:输入:2013输出:20142.求年份(四位数)的每一位数,再把这些数逐个比较四位数求:千位:n/1000百位:n%1000/100十位:n%100/10个位:n%10/1;代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>int main()原创 2021-05-19 17:35:08 · 158 阅读 · 3 评论 -
codeforces 734A-C语言解题报告
734A题目网址题目解析1.输入n个结果,再输入每一个结果(A或D),统计A和D的数目,A>D,则输出Anton,A<D,输出Danik,A==D,输出Friendship代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>int main(){ int n=0,A=0,D=0; char s[100000]={'0'}; scan原创 2021-05-18 09:35:34 · 100 阅读 · 1 评论 -
codeforces 41A-C语言解题报告
41A题目网址题目解析1.输入一个字符串,如果第二行是倒序输入这个字符串的,就输出YES,否则输出NO举例:输入:abbaba输出:NO2.倒序输出时,使用int j=strlen(t)-1;,因为strlen()是计算字符个数,而字符串是从0开始,最后一位是字符串长度减一3.在接收第二个字符串输入时,因为有enter键,所以使用getchar()去接收即:scanf("%s",s);getchar();scanf("%s",t);代码#include<stdio.h&原创 2021-05-17 10:11:58 · 136 阅读 · 2 评论 -
codeforces 160A-C语言解题报告
160A题目网址题目解析1.输入硬币的个数,分配硬币,使拿最小的硬币数比剩下的硬币金额大举例:输入:23 3输出22.注意点:1)接收整型数组时要使用&,因为只有字符数组是使用指针传递首地址的scanf("%d",&a[i]);2)使用冒泡排序,将数组从大到小排序for(int j=0;j<n-1;j++)for(int k=0;k<n-1-j;k++)3)使用count_all去计算所有的硬币金额,使用count_now去计算现在拿的硬币金额,再将原创 2021-05-16 12:11:32 · 158 阅读 · 1 评论 -
codeforces 110A-C语言解题报告
110A题目网址题目解析1.输入一个数字,如果数字中包含的4,7的数量是4或7的倍数,则输出YES,否则输出NO举例:输入:40047输出:NO2.注意点:1)由于数字很长,所以使用long long int类型,使用scanf("%lld",&n)接收输入2)整型转字符串,使用sprintf(字符串,“lld”,整型);,如:sprintf(s,"%lld",n);3)因为幸运数字可能会比较多,所以count%10==4或7去判断4)使用整型转字符串,就使用sprintf(原创 2021-05-15 10:46:54 · 235 阅读 · 1 评论 -
codeforces 266B-C语言解题报告
266B题目网址题目解析输入n,t,排队情况s,输出第t次循环后,排队情况举例:输入:5 1BGGBG输出:GBGGB2.输入的n代表排队的人数,t代表整个循环t次之后再输出结果3.注意点:使用while()大循环去控制t次的循环,使用for()内层循环去遍历整个字符串如果if(s[j]‘B’&&s[j+1]‘G’),则交换s[j]与s[j+1],并且j+2(跳过这两个已经交换过的循环)如果不是,则下一个j+1去判断代码#include<stdio原创 2021-05-14 13:32:07 · 2264 阅读 · 3 评论 -
codeforces 122A-C语言解题报告
122A题目网址题目解析1.输入数字(在1000以内),若能被4,7幸运数整除或只含4,7则输出YES,否则输出NO举例:输入:107输出:NO2.解题关键:1)使用列举法,把所有符合的幸运数列出来(int number[])1—22–22=43–22*2=82+4+8=14个2)若n是幸运数中的一个或n%幸运数==0,则为YES代码#include<stdio.h>#include<stdlib.h>#include<string.h>原创 2021-05-13 19:49:17 · 174 阅读 · 2 评论 -
codeforces 59A-C语言解题报告
59A题目网址题目解析1.输入字符串,如果大写字母最多,则全部输出为大写;如果小写字母多或大小写字母一样多,则全部输出为小写举例:输入:maTRIx输出:matrix2.使用a,b两个变量去记录大小写字母的数量代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>int main(){ char s[100]={'\0'}; int a原创 2021-05-12 09:43:48 · 490 阅读 · 2 评论 -
codeforces 58A-C语言解题报告
58A题目网址题目解析1.输入字符串,问如果删去其中的一些自发,能否得到hello,如果能就输出YES,否则输出NO举例:输入:ahhellllloou输出:YES2.注意点:因为C语言没有java中的匹配字符串,则新建立一个 word[6]=“hello”;在循环中使用word去与s匹配,当匹配到了就count++;j++;当count==5输出YES,否则输出NO代码#include<stdio.h>#include<stdlib.h>#incl原创 2021-05-10 14:35:16 · 182 阅读 · 1 评论 -
codeforces 116A-C语言解题报告
116A题目网址题目解析1.输入n(n个循环),每一个循环-a,+b;第一个循环只有+b;最后一个循环只有-a;求其中在车上的最大人数?举例:输入:40 32 54 24 0输出:62.注意点:因为使用count计数时,count一直在改变,所以再加入一个max变量去记录count中出现的最大数.代码#include<stdio.h>#include<stdlib.h>#include<math.h>int main(){ int n原创 2021-05-10 09:16:25 · 169 阅读 · 1 评论 -
codeforces 617A-C语言解题报告
617A题目网址题目解析1.输入x,能够通过1,2,3,4,5去到达x,求最小到达x的步数.举例:输入:12输出:32.注意点:要最小的步数,所以直接使用最大的5去比较判断1)当x<=5时,只需要12)当x>5时,如果x%5==0(x能整除5),只需要x/5步数,不能整除则需要x/5+1步数代码#include<stdio.h>#include<stdlib.h>#include<math.h>int main(){ int原创 2021-05-09 09:46:41 · 91 阅读 · 1 评论 -
codeforces 977A-C语言解题报告
977A题目网址题目解析1,输入数字n,运算次数k,当n最后一个数字是0时,n/10;当n最后一个数字不是0时,n-1;输出n举例:输入:512 4输出:502.注意:当n最后一个数字是0时,使用n%10==0去判断代码#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ int n,k; scanf("%d %d",&n,&k); for(int原创 2021-05-08 08:37:05 · 149 阅读 · 1 评论 -
codeforces 791A-C语言解题报告
791A题目网址题目解析1.输入a,b,每一年a3;b2,问多少年a>b?2.因为不知道需要循环多少次,使用while循环代码#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ int a,b,i=0; scanf("%d %d",&a,&b); while(a<=b) { a*=3; b*=2; ++i; } printf(原创 2021-05-07 16:47:41 · 121 阅读 · 1 评论 -
codeforces 546A-C语言解题报告
546A题目网址题目解析1.输入 k(成本),n(拥有的钱),w(要买的个数),输出还需要向朋友借多少钱?举例:输入:3 17 4输出:132.注意:1)第i个,需要i*k个价钱,所以需要使用for循环运算花费2)当拥有的钱足够买时,不需要借钱,输出为0代码#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ int k,n,w,count=0,need=0;原创 2021-05-06 12:56:44 · 102 阅读 · 1 评论 -
codeforces 69A-C语言解题报告
69A题目网址题目解析1.输入n个(x,y,z),当xi相加=0;yi相加=0;zi相加=0同时时输出YES,否则输出NO举例:输入:33 -1 7-5 2 -42 -1 -3输出:YES2.注意点:使用二维数组去存放时,使用遍历行并对每一列分别相加for(b=0;b<n;b++) { count_x+=dir[b][0]; count_y+=dir[b][1]; count_z+=dir[b][2]; }代码#include<stdio原创 2021-05-05 18:17:01 · 1536 阅读 · 2 评论 -
codeforces 96A-C语言解题报告
96A题目网址题目解析1.输入0和1表示不同队的队员字符串,如果7个及以上的一个0或1在一起,则输出YES否则输出NO举例:输入:1000000001输出:YES2.循环时,当遇到count==7时输出YES并跳出循环,遇到s[i]!=s[i+1]时,将count重置为1,最后count<7再输出NO代码#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ ch原创 2021-05-04 18:11:14 · 1698 阅读 · 3 评论 -
codeforces 236A-C语言解题报告
236题目网址题目解析1.输入字符串,判断其中不同的字符个数,奇偶输出不同的语句2.使用冒泡排序去排序,当遇到s[k]!=s[k+1]时进行计数代码#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char s [100]={'\0'}; int i,j,k,count=0; char c='\0'; scanf("%s",s); for(i=0;i<str原创 2021-05-03 14:03:45 · 1611 阅读 · 2 评论 -
codeforces 266A-C语言解题报告
266A题目网址题目解析1.输入n(1–50)个石头个数,输入RGB的石头颜色,求问拿走最小的石头个数,让它们相邻的石头颜色不同代码#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ int n,i,count=0; char s[50]={'\0'}; scanf("%d",&n); scanf("%s",s); for(i=0;i<strlen(s);原创 2021-05-02 10:58:39 · 155 阅读 · 1 评论 -
codeforces 281A-C语言解题报告
281A题目网址题目解析1.字符串首字母大写代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>int main(){ char s[1000]={'\0'}; scanf("%s",s); if(s[0]>='A'&&s[0]<='Z') { printf("%s",s); }else if(s[0]>=原创 2021-05-01 10:53:55 · 119 阅读 · 1 评论 -
codeforces 339A-C语言解题报告
339A题目网址题目解析1.输入如3+2+1的式子,升序排序(从小到大)成1+2+3举例:输入:1+1+3+1+3输出:1+1+1+3+32.对字符串进行排序采取拍冒泡排序算法char c='0';for(i=0;i<strlen(s)-1;i++){ for(j=0;j<strlen(s)-1;j++) { if(s[j]>s[j+1]) { c=s[j]; s[j]=s[j+1]; s[j+1]=c; } }}代码原创 2021-04-30 22:00:35 · 207 阅读 · 3 评论 -
codeforces 263A-C语言解题报告
263A题目网址题目解析1.输入5*5的矩阵(下标从到5),包含24个0和一个1,问如何移动最小的次数(i相邻行或列)可以让1位于3行3列举例:输入:0 0 0 0 00 0 0 0 10 0 0 0 00 0 0 0 00 0 0 0 0输出:3注意点1.因为数组是从0开始的,所以减2就行row-2+col-22.使用整型二维数组int number[5] [5]={0};3.使用abs()绝对值代码#include<stdio.h>#include&原创 2021-04-29 21:16:12 · 159 阅读 · 1 评论 -
codeforces 112A-C语言解题报告
112A题目网址题目解析1.输入两行字符串,不区分大小写地使用字典序去比较大小A<B -1A>B 1A=B 0举例:输入abcdefgAbCdEfF输出12.字典序:在遇到第一个不同的字符时,比较的大小,就是字符串的大小列举法:1.列出所有情况1)a[i]是大写,b[i]是小写a[i]转换为小写(a[i]=a[i]+32)再比较a[i]>b[i] breaka[i]<b[i] breaka[i]=b[i]2)a[i]是小写,b[i]是大写3原创 2021-04-28 19:33:22 · 203 阅读 · 1 评论 -
codeforces 282A-C语言解题报告
282A题目网址题目解析1.第一行输入n(表示有n条语句都要执行),再输入++X,X++(都表示X+1),–X,X–(都表示X-1),最初X=0,输出X的值2.使用字符数组去存放每一行的字符串,因为字符串,所以直接整体存入scanf("%s",c);3.因为字符数组最后一个是’\0’去表示末尾,所以要开辟4位数组并初始化,char c[4]={’\0’};4.因为++X,X++(都表示X+1),–X,X–(都表示X-1),都只需要看第二个字符数组是+或-就行,所以使用c[1]==’-'去判断代码原创 2021-04-27 14:47:16 · 111 阅读 · 1 评论 -
codeforces 118A-C语言解题报告
118A题目网址题目解析1.输入一个英语字符串,要求把其中的元音字母删去(元音是字母“A”、“O”、“Y”、“E”、“U”、“I”包括大小写,其余的是辅音),把剩余的辅音字母全部变为小写,并在每一个辅音字母之前加上一个.如:输入:Codeforces输出:.c.d.f.r.c.s2.使用在for循环中使用字符数组录入每一个英语字符串,遇到辅音字母,把大写字母转为小写(initial[i]+32),输出时在前面加上.如:initial[i]+=32;printf(".%c",initia原创 2021-04-26 17:59:26 · 232 阅读 · 1 评论 -
codeforces 50A-C语言解题报告
50A题目网址解题报告-others题目解析1.输入n x m大小的木板,使用21大小的多米诺去填满,求最多的多米诺数目2.通过分析把木板分为奇数和偶数的情况1)有一边是偶数的情况:使用2去填满2)两个边都是奇数奇数-1=偶数还是让木板的(奇数-1)边去和2平行,再加上(m-1)/2(n/1)+(n-1)/2即:(m-1)/2*n+(n-1)/2总结1.遇到此种类型的题,不要慌张,不要直接开始写代码2.通过画图,去找出其中的规律(奇数/偶数等),相信一定可以通过一个式子总结出原创 2021-04-25 12:54:24 · 198 阅读 · 1 评论 -
codeforces 158A-C语言解题报告
158A题目网址题目解析1.输入n个选手,和第k个参考选手再输入每一个选手的比赛成绩2.输出比赛成绩>=第k个选手的入选人数3.n,k都是从1开始计算的4.因为要比较所有的选手与第k个选手,所以使用数组,而且要使用两个循环(第一个输入数据,第二个比较成绩)5.不要忘记scanf都是使用取缔运算符的&scanf("%d",&score[i]);6.注意点:当选手成绩为0时,都不能进入下一轮代码#include<stdio.h>#include<s原创 2021-04-24 11:12:09 · 164 阅读 · 1 评论 -
codeforces 231A-C语言解题报告
231A题目网址题目解析1.输入比赛的题目,每一道题3个人的解题状况(0或1),输出总的解答题目(每一个题至少有2个,记1次)2.在for循环中去录入每道题的解答状况3.因为有题目解答的计算,所以直接用原始的解答状况去计算if(result[0]+result[1]+result[2]==3){++count;}知识点1.scanf使用时,一定要记住使用&如:scanf("%d %d %d",&result[0],&result[1],&result[原创 2021-04-23 11:15:29 · 212 阅读 · 1 评论 -
codeforces 1A-C语言解题报告
1A题目网址题目解析1.使用aa面积的方块去铺满nm面积的广场,方块之间可以覆盖,可以比广场面积大,求最小使用的方块数目2.因为可以覆盖,所以求取每一边(n或m)能够铺多少的a,即为求取n/a向上取整,up(n/a)=(n+a-1)/a,再把它们乘起来number=((n+a-1)/a)*((m+a-1)/a);3.因为有很大的输入数据,所以使用long long int数据类型知识点1.输出 long long intprintf("%lld",number);代码#include&l原创 2021-04-22 21:10:24 · 331 阅读 · 1 评论 -
codeforces71A-C语言解题报告
71A题目地址题目解答1.输入单词超过10个字母的单词,输出第一个字母+中间个数+最后一个字母没有超过的,直接输出2.循环读取输入在for循环内部,接收用户输入的单词知识点1.接收用户输入int a;scanf("%d",&a);2.字符串数组C语言中没有专门的字符串数组,通过字符数组的方式存放char arr[100];3.计算字符串长度#include<string.h>int str=strlen(arr);4.C语言中没有截取字符串的方法,所以使原创 2021-04-22 21:01:43 · 310 阅读 · 1 评论