第二场个人训练赛(水题合集)
来源:互联网 发布:自动切换窗口软件 编辑:程序博客网 时间:2024/05/16 14:13
A - 偶数求和 HDU - 2015
Problem Description
有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
Input
输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。
Output
对于每组输入数据,输出一个平均值序列,每组输出占一行。
Sample Input
3 2
4 2
Sample Output
3 6
3 7
[分析]
麻烦的水。就是肝。
[代码]
#include <cstdio>int main(){ int n, m; while(scanf("%d%d", &n, &m) != EOF) { int sum=0, ai=2, count=0, i; for(i=1; i<=n; i++) { sum += ai; ai += 2; if( i % m == 0) { count++; if(count != 1) printf(" "); printf("%d", sum / m); sum = 0; } } if(n % m == 0) printf("\n"); else printf(" %d\n", sum / (n % m)); } return 0;}
B - 数据的交换输出 HDU - 2016
数据的交换输出
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 105432 Accepted Submission(s): 39428
Problem Description
输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。
Input
输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。
Output
对于每组输入数据,输出交换后的数列,每组输出占一行。
Sample Input
4 2 1 3 4
5 5 4 3 2 1
0
Sample Output
1 2 3 4
1 4 3 2 5
[分析]
水。
[代码]
#include<cstdio>#include<cstring>int main(){ int a[105]; int n; while (scanf("%d", &n) != EOF) { if (!n)break; int min; scanf("%d", &a[0]); min = 0; for (int i = 1; i < n; i++) { scanf("%d", &a[i]); if (a[i] < a[min])min = i;//取最小 } int c = a[min];/// a[min] = a[0];/// a[0] = c;///交换 printf("%d", a[0]); for (int i = 1; i < n; i++) { printf(" %d", a[i]);//输出 } printf("\n"); }}
C - 字符串统计 HDU - 2017
字符串统计
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 82603 Accepted Submission(s): 45409
Problem Description
对于给定的一个字符串,统计其中数字字符出现的次数。
Input
输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。
Output
对于每个测试实例,输出该串中数值的个数,每个输出占一行。
Sample Input
2
asdfasdf123123asdfasdf
asdf111111111asdfasdfasdf
Sample Output
6
9
[分析]
水。
[代码]
#include<cstdio>#include<cstring>int main(){ int n; char a[1000]; scanf("%d", &n); while (n--) { scanf("%s", a); int len = strlen(a); int ans = 0; for (int i = 0; i < len; i++) { if (a[i] >= '0'&&a[i] <= '9')ans++; } printf("%d\n", ans); }}
D - 母牛的故事 HDU - 2018
母牛的故事
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 83962 Accepted Submission(s): 41742
Problem Description
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
Input
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0
#include <cstdio>using namespace std;int main(){ int n, i; int year1, year2, year3, yearn; while (scanf("%d", &n) != EOF) { if (!n)break; year1 = 1; year2 = 2; year3 = 3; if (n == 1 || n == 2 || n == 3)printf("%d\n", n); else { for (i = 4; i <= n; i++) { yearn = year3 + year1; year1 = year2; //year1前3年 year2 = year3; //year2前2年 year3 = yearn; //year3前1年 } printf("%d\n", yearn); } } return 0;}
E - 数列有序! HDU - 2019
数列有序!
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 90149 Accepted Submission(s): 37926
3 3
1 2 4
0 0
1 2 3 4
[分析]
别问我为什么突然有页面了。
这题做的特别窝囊,原本只要输入什么输出什么,遇到大的就插入输出,但不知道为什么错了两边,嗯,很生气,一个sort暴力解决。
[代码]
#include<cstdio>#include<algorithm>using namespace std;int main(){ int n,m,i; int a[105]; while (scanf("%d%d", &n, &m) != EOF) { if (!n && !m)break; for (i = 0; i < n; i++) { scanf("%d", &a[i]); } a[i] = m; sort(a, a + n+1); int flag = 1; for (i = 0; i <= n; i++) { if (flag)flag = 0; else { printf(" "); } printf("%d", a[i]); } printf("\n"); }}
F - 绝对值排序 HDU - 2020
绝对值排序
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 81503 Accepted Submission(s): 38800
3 3 -4 2
4 0 1 2 -3
0
-4 3 2
-3 2 1 0
[分析]
随手写了个快速排序。(装一波)然后写个绝对值扔进去。水。快速排序当模板背吧,觉得这个是基本功。虽然有sort。
[代码]
#include<cstdio>void change(int i, int j, int a[]){ int c; c = a[i]; a[i] = a[j]; a[j] = c;}int jdz(int i){ return i > 0 ? i : -i;}void qsort(int p, int q, int a[]){ int i = p, temp = a[i]; if (p<q) { for (int j = i + 1; j <= q; j++) { if (jdz(a[j]) >= jdz(temp)) { change(j, i + 1, a); i++; } } change(i, p, a); qsort(p, i - 1, a); qsort(i + 1, q, a); }}int main(){ int n; int a[105]; while (scanf("%d", &n) != EOF) { if (!n)break; for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } qsort(0,n-1,a); int flag = 1; for (int i = 0; i < n; i++) { if (flag) { printf("%d", a[i]); flag = 0; } else printf(" %d", a[i]); } printf("\n"); }}
- 第二场个人训练赛(水题合集)
- 第二场个人训练赛
- 新生训练个人排位赛第二场
- 第一场个人训练赛
- 第三场个人训练赛
- 第四场个人训练赛
- 第三场个人训练赛
- 第九场个人训练赛
- 训练赛第二场总结
- 暑期个人赛第二场
- 暑假训练-个人赛第五场
- 第四场个人训练赛(未完成)
- 暑期个人赛--第二场--D--every SG(重)
- 暑期个人赛--第二场--A
- 暑期个人赛--第二场--B
- 暑期个人赛--第二场--D
- 暑期个人赛--第二场--C
- #个人赛第二场解题总结#
- 设置了防火墙地址为什么还是连接不上去是因为wifi连接的缘故吗
- Ubuntu14.04安装cuda8.0+cudnn5.1+Tensorflow1.0.0(GPU)教程
- HTML第二天学习
- Linux系统中段错误的原因
- ajax+ashx返回值详解
- 第二场个人训练赛(水题合集)
- 机器学习_2之目标跟踪Camshift算法
- 【Hash】bzoj4337 BJOI2015树的同构
- log4j日志存储到数据库
- 好久好久与
- html5学习2017.07.07
- 树中相关计算
- 翻车笔记:openjudge8469:特殊密码锁
- 揭秘 DeepMind 的关系推理网络