总结:
对于整场比赛,大致符合预期,不论是区分度,或者选手的体验,或许还是不错的(希望是的),这场也只有大一的同学,我个人感觉两道思维题,并没有想出来,这点略微不符合预期,但其实数据给的比较松,以暴力的方式写一遍,也是可以过,也是为了不打击学弟的信心(写了半小时的模拟,最后T了,对新人或许不是很友好,榜单也不好看,但如果正式的比赛,暴力的方法肯定是过不了的)。
题目出的范围也比较广,类型也比较多,都是经典的一些日期时间题,对于新生,有一定难度,但参照代码,把所有题写一遍,这是不难的,并且也都是一些基础的模拟实现题,建议是有空把题目都写了,毕竟以后要大概率当码农的,如果这些题也都是很基本的。不过因为一些问题没有发挥好的同学也不要气馁,大家才开学两个月,两个月决定不了啥(或许一些信息差造就了一点区别),但大学时光还有很长,之后再比或许不知道鹿死谁手,其实3月左右到时候机会有一场校赛。

其他同学可以给自己两个小时,尝试一下写写这些题,并且可以和比赛榜单里的同学比较(比赛的同学都是21级的)
原比赛链接添加链接描述
点击题库往下翻即可进行做题以及补题(标签是程序设计协会蓝桥杯积分赛)
第一题:
题目:printf打印题
注意:主函数是int main()然后后面加个return 0;即可。同时给大家科普一下void main为啥不可以的原因:添加链接描述
然后给大家科普了个一些常规的竞赛细节,也就是OJ的一些使用细节,希望大家可以比赛结束后仔细看看,这里埋了个坑:浮点数用double,不要用float,会出现一些精度上的问题,我在群里提到过,也为了防止有人不知道,在此又重申了一边,审题细节问题。
代码:

#include<stdio.h>int main()
{printf("程序设计协会\n");return 0;
}

第二题:
题目:给一个n,然后读入n个数,求平均数
解析:一个书上的原题,分析题目可以得知,这道题甚至可以不需要开数组,for循环读入所有数字,用一个double变量,计算所有值的和,然后除以n即可,看大家的代码,也确实有人因为float精度问题没有过,不过这个在第一题强调了,这么长的文字不是没意义哒。
tips:如果要开数组,题目要求n个数,小于n个(n是1000),直接开个数组a[1010],这样在算法题中是允许的。
C语言代码:

#include<stdio.h>int main()
{int n,i,v;scanf("%d",&n);double sum=0;for(i=1;i<=n;i++) scanf("%d",&v),sum+=v; sum=sum/n;printf("%.6lf",sum);return 0;
}

C++代码:

#include<iostream>
using namespace std;int main(){int n,w;cin>>n;double sum=0;for(int i=1;i<=n;i++){cin>>w;sum+=w;}sum/=n;printf("%.6lf",sum);return 0;
}

第三题:
题意:转换完题意后就是求大于x连续的两个质数相的平均数(下取整)的数字是不是质数。
题解:这是一道思维题,观察质数2 , 3, 5, 7, 11, 13,17,19等…考虑质数的性质,除了2以外,所有质数都是奇数,那么相邻的两个质数都是奇数,两个奇数的平均其实就是求两个数的中位数,然后再去想,其实除了连续的2,3这两个数相加的平局数是2,他是一个质数,之后任何两个连续的质数之间的中位数,必然是一个大于小的质数并且小于大的质数的一个数(比如 3和5的中位数平均数都是4,13和17的平均数中位数都是15),再进一步,相邻的质数区间内的数,必然不是质数。然后代码就是 if else输出即可。
有个小插曲,其实这道题正解是不可以暴力求质数,然后来判断,但因为都是21的学弟,写了半个小时的暴力结果T了,换谁都不好受,所以数据没有卡的这么死。
正解代码:

#include<stdio.h>int main()
{int n,T,i;scanf("%d",&T);for(i=1;i<=n;i++){scanf("%d",&n);if(n==1) printf("YES\n");else puts("NO"); //故意写了两种输出方式做对比,结果是一样的}return 0;
}

考场上同学写的暴力:

#include<stdio.h>int isprime(int x)
{int i;if (x==1) return 0;for(i=2;i<x;i++){if(x%i==0) return 0;}return 1;
}int f(int x){while(1){x++;if (isprime(x)) return x;}
}int g(int x){return (f(x)+f(f(x)))/2;
}int main()
{int t,i;scanf("%d",&t);int num[1010];for(i=0;i<t;i++){scanf("%d",&num[i]);}for(i=0;i<t;i++){   if(isprime(g(num[i]))) printf("YES\n");else printf("NO\n");}return 0;
}

第四题:
题目:字符串处理题,意思很简单,就是统计求一下从第二个字符开始,每个字符与前一个字符的差的和。
解析:这道题似乎有点在意料外,没有想到过的人比较少,可能字符串%s不会读入吧,再加上多组测试数据或许,会比较难以处理,有个tips,在处理正负时,可以用到math库中自带的abs绝对值函数;
给一个ASCII码表,比如数字,字母,空格这些常用的ASCII码可以的话,最好记得,别的需要现用现查即可添加链接描述

tips:多组测试数据可以一边读入一边输出,也是第一题的时候提示了的,这里给大家展示一下while的写法,第三题使用for的写法。虽然在自己的编译器上可能看着不是会变扭,但运行的时候是没有问题的。

C语言代码:

#include<stdio.h>
#include<math.h>int main()
{int n,T,i;scanf("%d",&T);while(T--){char s[1010];scanf("%d",&n);   scanf("%s",s);    int res=0;for(i=1;i<n;i++){//读入数组下标是从0开始,n-1结尾,所以从第一个字母开始到n-1结尾res+=abs(s[i]-s[i-1]); //ASCII码之间可以想减}printf("%d\n",res);}return 0;
}

C++代码

#include<iostream>
#include<string>
#include<cmath>using namespace std;int main(){int T;cin>>T;for(int k=1;k<=T;k++){int n; string s;cin>>n; cin>>s;int res=0;for(int i=1;i<n;i++){res+=abs(s[i]-s[i-1]);}cout<<res<<endl;}return 0;
}

第五题
题目:给你一个秒数,让你求具体时间;
解析:一道蓝桥杯省赛原题(链接添加链接描述),也属于是签到题,本来有个冗余条件毫秒,为了降低难度给删掉了,其实很简单的题,模拟算一下即可,但大家处理的时候,似乎忘记有些值你已经给他改变了,还在用它为改变的值进行处理,这里也可以通过计算每天有多少秒,没小时多少秒,每分钟多少秒的方法来求,代码简单易懂,有个小tips是可以用%02d补前导0,不嫌麻烦写个if判断也是没啥问题。
不过样例给的比较特殊,需要自己造个数据想想,来判断是不是完全对的。
可以拿这组测试点:1618708103 标准答案:01:08:23

C语言代码:

#include<stdio.h>int main()
{int hour,min,second;scanf("%d",&second);second%=86400;              //显然多余的天数没有意义,先处理这个hour=second/3600,second%=3600;     //计算小时,并把小时抹掉min=second/60;                 //计算分钟second=second%60;            //抹掉分钟,自然就是时间的了printf("%02d:%02d:%02d",hour,min,second);//举个例子,用if来处理前导零//if(x==0) printf("00");          //x是0//else if(x<10) printf("0%d",x);  //x是一位数//else printf("%d",x);            //x是两位数return 0;
}

第六题
题目:就是问通过任何次数的操作,使目标值最小。
解析:一道codeforce一场的a题,属于思维题,考虑数学性质,挖掘出性质,我能感觉出这个性质,但证明也不好写,而且不太会用博客写一些数学符号,所以就分享两篇题解和代码:题解1:添加链接描述题解2(只看他的a题即可):添加链接描述
同时,值得一提的是,也是有同学暴力写出来了,对于大一的同学,能暴力写出,也是挺厉害的,所以我也没有卡这个,也会把改代码分享出来(可能有点长,似乎观感不是很好,看看就行)

正解代码:

#include<stdio.h>int main()
{int a,b,c,T;scanf("%d",&T);while(T--){scanf("%d %d %d",&a,&b,&c);if((a+b+c)%3) puts("1");else puts("0");}return 0;
}

暴力写法的代码

#include <stdio.h>
#include <math.h>
int azhe(int a,int b,int c){int h;h=(a+b)-2*c;return(h);
}
int max(int b,int c,int d){if(b>c){if(b>d)return(b);elsereturn(d);}else{if(c>d)return(c);elsereturn(d);}
}
int min(int b,int c,int d){if(b<c){if(b<d)return(b);elsereturn(d);}else{if(c<d)return(c);elsereturn(d);}
}
int main(){int a,i,b,c,d,sum,e,f,g,h,k=0;scanf("%d",&a);for(i=1;i<=a;i++){k=10000;scanf("%d %d %d",&b,&c,&d);sum=b+c+d;e=max(b,c,d);f=min(b,c,d);g=sum-e-f;while(f<e){h=azhe(e,f,g);if(h<0)h=h*-1;if(h<k)k=h;h=azhe(e,g,f);if(h<0)h=h*-1;if(h<k)k=h;h=azhe(f,e,g);if(h<0)h=h*-1;if(h<k)k=h;h=azhe(f,g,e);if(h<0)h=h*-1;if(h<k)k=h;h=azhe(g,f,e);if(h<0)h=h*-1;if(h<k)k=h;h=azhe(g,e,f);if(h<0)h=h*-1;if(h<k)k=h;e=e-1;f=f+1;}printf("%d\n",k);}
}

第七题
题目:1年1月1日是星期一,求x日y月z年是星期几
解析:这是上交大的机试题的简化版(原题链接添加链接描述),应该属于机试中简单的题。思路就和大家想的一样,枚举出相隔多少天,然后膜7再处理一下,打个表输出英文日期即可。细节:注意判断闰年,还有就是先枚举年再枚举月,最后加上日期里剩下的,直接暴力枚举天数会导致超时,然后就是代码实现的一些细节问题了,具体看代码吧。

C语言代码

#include<stdio.h>char week[][20]={"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday","Sunday"};
//开个二维数组,这样可以免去无聊的if else,优化代码int monthday[]={0,31,28,31,30,31,30,31,31,30,31,30};
//记录每个月的天数,注意第一个要加个冗余的0,数组下标是从0开始int check(int year){ //是闰年返回1,不是闰年返回0;if(year%400==0||(year%4==0&&year%100!=0)){return 1;}return 0;
}int main(){int T,i; scanf("%d",&T);int day,month,year;while(T--){scanf("%d %d %d",&day,&month,&year);int sum=0,y,m;           //sum统计天数,y表示年,m表示月for(y=1;i<year;y++){ //从第一年枚举的year-1年,最后一年单独处理sum+=365;if(check(y)){    //闰年多加一天sum++;}}for(m=1;m<month;m++){           //year年枚举month-1月if(m==2&&check(year))sum++;//枚举到二月且是闰年,多加一天sum+=monthday[i];}sum+=day-1;        //最后一个月加上,这里减不减一都可以,在之后对应日期的时候能匹配上即可sum=sum%7;printf("%s\n",week[sum]);        //用数组方便输出}return 0;
}

最后一些闲谈,如果想在蓝桥杯又或是其他算法比赛拿奖,也不靠啥,就努努力刷刷题,如果不知道大学该干什么,那写写算法题,练练代码能力,也可以同时参加比赛拿点奖,岂不美哉,不知道各位对这个东西,感觉如何,反正我个人在这方面投入时间也只是因为觉得有趣罢了。今年协会应该就出这一场题(主要编故事太累了,而且也快期末了),之后有活动可能就是拉题目,组织组织大家写写题,或许参加蓝桥的同学寒假也有一些题目来训练(不参加比赛的同学也可以来参加的),当然如果要划水,原题网上都是,复制粘贴就是过了,也不拦着,毕竟大家都有自己的想法和追求,这很正常。

完接撒花!!

ahpu程序设计协会蓝桥选拔赛题解相关推荐

  1. 2018中国大学生程序设计竞赛-网络选拔赛题解

    以下所有AC题解程序来自"仙客传奇"团队. A. Buy and Resell AC的C++语言程序: #include<iostream> #include<c ...

  2. SWPU 2021年团队程序设计天梯赛选拔赛 题解

    补题场链接:https://pintia.cn/problem-sets/1373141720280027136 本次选拔赛除后三题以外,其余的题目难度都不是很大,简单筛选一下大家的基础.请大家这段时 ...

  3. 北京信息科技大学第十三届程序设计竞赛暨ACM选拔赛题解

    北京信息科技大学第十三届程序设计竞赛暨ACM选拔赛题解 A lzh的蹦床 B 所谓过河 C 旅行家问题1 D 旅行家问题2 E 小菲和Fib数列 F 好玩的音乐游戏 G ranko的手表 H 字母收集 ...

  4. acm国际大学上计算机竞赛,2018年ACM国际大学生程序设计竞赛校内选拔赛报名通知...

    2018年ACM国际大学生程序设计竞赛校内选拔赛报名通知 我校自2002年开始举办ACM国际大学生程序设计竞赛校内选拔赛,吸引了大量喜爱程序设计和算法的同学积极参与.本项赛事参照ACM国际大学生程序设 ...

  5. 湖南省第十届蓝狐网络杯大学生计算机程序设计竞赛,2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解...

    2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解 update10.01 突然发现叉姐把这场的题传到牛客上了,现在大家可以有地方提交了呢. 不知道该干什么所以就来水一篇题解 ...

  6. 2020第五届上海第二工业大学新生程序设计竞赛(Java题解)

    2020第五届上海第二工业大学新生程序设计竞赛(Java题解) 作为C/C++版本的补充题解,仅供参考 需要解析的可以看这篇: 2020第五届上海第二工业大学新生程序设计竞赛 用Java语言参加竞赛时 ...

  7. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解

    "科林明伦杯"哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解 萌新又来写题解啦 原题链接 B 减成一 题意:存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一.问最少多 ...

  8. 河南工程学院第五届ACM大学生程序设计竞赛(部分题解)

    河南工程学院第五届ACM大学生程序设计竞赛(部分题解) 问题 A: 敏感的小明同学 小明是一个对数字非常敏感的人,当他看到某个特定的数字p (1<=p<=9)时就会兴奋一下,现在给你一个数 ...

  9. 19级爪哇程序设计新手赛(题解)

    19级爪哇程序设计新手赛(题解) A.1+1 HDU - 1228 kk的英语作业,有两个小于100的正整数A和B,计算A+B. A和B由对应的英文单词给出. Input 测试输入包含若干测试用例,每 ...

最新文章

  1. 样本不均衡常见解决方法
  2. python贴吧爬虫-Python 爬虫练习: 爬取百度贴吧中的图片
  3. Matlab GUI 设计(4):不同控件之间的数据传递
  4. go语言快速开发入门示例
  5. django权限管理
  6. 如何实现模糊查询LIKE
  7. C++学习之路,漫长而遥远
  8. 如何在Appscale下发布自己的应用(二)
  9. java jndi tcp_spring配置下通过tomcat的jndi服务连接数据库
  10. 信息安全工程师笔记-网络安全漏洞防护技术原理与应用
  11. 巨人退场!索尼前CEO平井一夫正式退休 结束35年索尼生涯
  12. 打印连续数字 java_java多线程连续打印字母数字问题
  13. docker安装常用组件(mysql,redis,postgres,rancher,Portainer,蝉道,JIRA,sonarqube,Confluence,pgadmin4,harbor)
  14. 聚合函数和group by
  15. n160ii打印机查看ip地址_芯烨ip地址设定软件下载|
  16. php curl模拟post请求提交数据
  17. 100项PPT制作技术,做出让观众倾倒的演示文档!
  18. 软件设计中的可用性和可用性测试
  19. 纳什均衡定义、举例、分类
  20. html子代选择器,Css 后代选择器与子代选择器的区别

热门文章

  1. Three.js进阶篇之4 - 着色器
  2. 两个空间(N维欧氏空间、Lebesgue空间)的Holder不等式
  3. 制作一个“生日快乐”App,来自程序员的生日礼物~
  4. 【KAFKA】kafka可视化工具kafkaTool 免费下载
  5. 开启springcloud全家桶5:探索负载均衡组件 Ribbon实现与原理
  6. 网络计算机amd,AMD推出第六代 APU,为笔记本电脑及一体机带来史无前例的高清流媒体、网络游戏以及创新计算体验...
  7. PowerBI-逻辑函数-IF
  8. 矩阵的压缩存储(随机稀疏矩阵的建立和输出)
  9. 「解析」Self-Attention 关键点
  10. 基于经度坐标校正鱼眼图像