第四届CCF计算机职业资格认证考试题解(C++)
2015-12-11 13:38
543 查看
试题名称: 图像旋转
试题编号: 201503-1时间限制: 5.0s
内存限制: 256.0MB
问题描述
旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。
输入格式
输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。接下来n行每行包含m个整数,表示输入的图像。
输出格式
输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。样例输入
2 31 5 3
3 2 4
样例输出
3 45 2
1 3
评测用例规模与约定
1 ≤ n, m ≤ 1,000,矩阵中的数都是不超过1000的非负整数。#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int a[1010][1010]; int main() { int n, m; while(scanf("%d %d", &n, &m)!=EOF){ for(int i = 0; i < n; i++) for(int j = 0; j < m; j++) scanf("%d", &a[i][j]); for(int i = m-1; i >= 0; i--){ for(int j = 0; j < n-1; j++){ printf("%d ", a[j][i]); } printf("%d\n", a[n-1][i]); } } return 0; }
试题名称: 数字排序
**试题编号: 201503-2
**时间限制: 1.0s
**内存限制: 256.0MB
问题描述
给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。输入格式
输入的第一行包含一个整数n,表示给定数字的个数。第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。
输出格式
输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的。样例输入
12 5 2 3 3 1 3 4 2 5 2 3 5
样例输出
3 4 2 3 5 3 1 1 4 1
评测用例规模与约定
1 ≤ n ≤ 1000,给出的数都是不超过1000的非负整数。#include<cstdio> #include<stdlib.h> #include<cstring> #include<algorithm> using namespace std; struct node{ int num; int c; }a[1010]; bool cmp(node a, node b){ if(a.c == b.c) return a.num < b.num; return a.c > b.c; } int main() { int n, m; while(scanf("%d", &n)!=EOF){ for(int i = 0; i < 1010; i++){ a[i].num = i; a[i].c = 0; } for(int i = 0; i < n; i++){ scanf("%d", &m); a[m].c++; } sort(a, a+1010, cmp); for(int i = 0; i < 1010; i++){ if(0 == a[i].c) break; printf("%d %d\n", a[i].num, a[i].c); } } return 0; }
试题名称: 节日
试题编号: 201503-3
时间限制: 1.0s
内存限制: 256.0MB
问题描述
有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日。现在,给你a,b,c和y1, y2(1850 ≤ y1, y2 ≤ 2050),希望你输出从公元y1年到公元y2年间的每年的a月的第b个星期c的日期。
提示:关于闰年的规则:年份是400的整数倍时是闰年,否则年份是4的倍数并且不是100的倍数时是闰年,其他年份都不是闰年。例如1900年就不是闰年,而2000年是闰年。
为了方便你推算,已知1850年1月1日是星期二。
输入格式
输入包含恰好一行,有五个整数a, b, c, y1, y2。其中c=1, 2, ……, 6, 7分别表示星期一、二、……、六、日。输出格式
对于y1和y2之间的每一个年份,包括y1和y2,按照年份从小到大的顺序输出一行。如果该年的a月第b个星期c确实存在,则以”yyyy/mm/dd”的格式输出,即输出四位数的年份,两位数的月份,两位数的日期,中间用斜杠“/”分隔,位数不足时前补零。
如果该年的a月第b个星期c并不存在,则输出”none”(不包含双引号)。
样例输入
5 2 7 2014 2015样例输出
2014/05/112015/05/10
评测用例规模与约定
所有评测用例都满足:1 ≤ a ≤ 12,1 ≤ b ≤ 5,1 ≤ c ≤ 7,1850 ≤ y1, y2 ≤ 2050。#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; bool runnian(int year){ if((year%400 == 0) || (year%4 ==0 && year%100!=0)) return true; return false; } int week[3005][13]; //µÚiÄêµÚjÔµĵÚÒ»ÌìΪÖܼ¸ void init(){ week[1850][1] = 2; for(int i = 1851; i <= 2055; i++){ //¼ÆËãÿÄêµÚÒ»ÌìΪÖܼ¸ if(runnian(i-1)){ week[i][1] = (week[i-1][1] + 366 - 1)%7 + 1; //ÒòΪÖÜÈÕ%7==0£¬±ÜÃâÕâÒ»µã } else{ week[i][1] = (week[i-1][1] + 365 - 1)%7 + 1; } } for(int i = 1850; i <= 2055; i++){ //¼ÆËãµÚiÄêµÚjÔÂΪÖܼ¸ int flag = 0; if(runnian(i)) flag = 1; for(int j = 2; j < 13; j++){ if(j==3) week[i][j] = (week[i][j-1] + month[j-1] + flag - 1)%7 + 1; else week[i][j] = (week[i][j-1] + month[j-1] - 1)%7 + 1; } } } int main() { init(); int a, b, c, y1, y2; while(scanf("%d %d %d %d %d", &a, &b, &c, &y1, &y2)!=EOF){ int day, flag = 0; for(int i = y1; i <= y2; i++){ int d; if(week[i][a] > c) d = 7 - (week[i][a] - c); else d = c - week[i][a]; day = (b-1)*7 + d + 1; if(runnian(i)) month[2] = 29; else month[2] = 28; if(day > month[a]) printf("none\n"); else{ printf("%04d/%02d/%02d\n", i, a, day); } } } return 0; }
相关文章推荐
- Caffe fine-tuning 微调网络
- Android: 详解触摸事件如何传递 - 玲音 原文 http://www.cnblogs.com/superlcr/p/3946034.html
- 服务器tcp连接timewait过多优化及详细分析
- kmp算法中next数组的3种表示方式
- HTTP Cookies - HTTP cookie jars HTTP cookie jars:
- 同步网络请求 类封装,包括get请求和post请求,可选择是否进行JSON解析
- TCP和UDP 协议发送数据包的大小
- 计算机视觉Computer Vision网址导航
- 高并发服务器开发--网络模型
- iOS应用架构谈 (3)网络层设计方案
- 计算机类期刊投稿心得
- 关于七牛云CDN服务器存储的图片在部分网络下无法访问的问题
- 共有65款 计算机视觉库/人脸识别开源软件
- 自动还原魔方算法数据结构
- iOS9 https改成http
- 关于获取手机网络以及如何跳转到设置界面
- 基于nodejs的tcp服务器与客户端
- SQL Server Connection Strings for ASP.NET Web Applications https://msdn.microsoft.com/en-us/library/jj653752.aspx
- http://www.cnblogs.com/lukun/archive/2011/03/14/1983282.html
- retrofit2.0中使用okHTTP post get put 过滤请求内容或添加内容