csp
纳萨斯瓦德
这个人很懒,懒得写了。
展开
-
2020-9-2风险人群筛查
题目背景某地疫情爆发后,出于“应检尽检”的原则,我们想要通知所有近期经过该高危区域的居民参与核酸检测。问题描述想要找出经过高危区域的居民,分析位置记录是一种简单有效的方法。具体来说,一位居民的位置记录包含 个平面坐标 ,其中 表示该居民 时刻所在位置。高危区域则可以抽象为一个矩形区域(含边界),左下角和右上角的坐标分别为 和 ,满足 且 。考虑某位居民的位置记录,如果其中某个坐标位于矩形内(含边界),则说明该居民经过高危区域;进一步地,如果其中连续 个或更多坐标均位于矩形内(含边界.原创 2020-09-28 17:07:02 · 254 阅读 · 0 评论 -
2020-9-1称检测点查询
题目背景2020 年 6 月 8 日,国务院联防联控机制发布《关于加快推进新冠病毒核酸检测的实施意见》,提出对“密切接触者”等八类重点人群“应检尽检”,其他人群“愿检尽检”。问题描述某市设有 个核酸检测点,编号从 到 ,其中 号检测点的位置可以表示为一个平面整数坐标。为方便预约核酸检测,请根据市民所在位置 ,查询距其最近的三个检测点。多个检测点距离相同时,编号较小的视为更近。输入格式输入共 行。第一行包含用空格分隔的三个整数 、 和 ,表示检测点总数和市民所在位置。第二行到第 .原创 2020-09-28 17:02:45 · 767 阅读 · 0 评论 -
2016-9-2火车购票
问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。 假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。 购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最小的几个空座位中(不考虑是否相邻)。 假设初始时车票全部未被购买,现在给了一些购票指令,请你处理这些指令。.原创 2020-09-26 21:37:36 · 179 阅读 · 0 评论 -
2016-4-2俄罗斯方块
问题描述 俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游戏。 游戏在一个15行10列的方格图上进行,方格图上的每一个格子可能已经放置了方块,或者没有放置方块。每一轮,都会有一个新的由4个小方块组成的板块从方格图的上方落下,玩家可以操作板块左右移动放到合适的位置,当板块中某一个方块的下边缘与方格图上的方块上边缘重合或者达到下边界时,板块不再移动,如果此时方格图的某一行全放满了方块,则该行被消除并得分。 在这个问题中,你需要写一个程序来模拟板块下落,你不需要处理玩家的操作,也不需要处理消.原创 2020-09-26 21:34:01 · 286 阅读 · 0 评论 -
2015-12-2消除类游戏
问题描述 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 现在给你一个n行m列的棋盘,棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。输入格式 输入的第一行包含两个整数n, m,用空格分隔,分别表示棋盘的行数和列数。 接下来n行.原创 2020-09-26 21:29:57 · 403 阅读 · 0 评论 -
2015-9-2日期计算
问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 注意闰年的2月有29天。满足下面条件之一的是闰年: 1) 年份是4的整数倍,而且不是100的整数倍; 2) 年份是400的整数倍。输入格式 输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。 输入的第二行包含一个整数d,d在1至365之间。输出格式 输出两行,每行一个整数,分别表示答案的月份和日期。样例输入201580样例输出321样例输入2000.原创 2020-09-26 21:27:04 · 145 阅读 · 0 评论 -
2015-3-2数字排序
问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。输入格式 输入的第一行包含一个整数n,表示给定数字的个数。 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。输出格式 输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的。样例输入125 2 3 3 1 3 4 2 5 2 3 5样例输出3 42 35 31 14 .原创 2020-09-21 21:12:58 · 157 阅读 · 0 评论 -
2014-12-2 Z字形扫描
问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan)。给定一个n×n的矩阵,Z字形扫描的过程如下图所示:对于下面的4×4的矩阵, 1 5 3 9 3 7 5 6 9 4 6 4 7 3 1 3 对其进行Z字形扫描后得到长度为16的序列: 1 5 3 9 7 3 9 5 4 7 3 6 6 4 1 3 请实现一个Z字形扫描的程序,给定一个n×n的矩阵,输出对这个矩阵进行Z字形扫描的结果。输入格式 输入的第一行包含一个整数n,.原创 2020-09-21 21:10:20 · 144 阅读 · 0 评论 -
2014-9-2画图
问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。 下图给出了一个画了两个矩形的例子。第一个矩形是(1,1) 到(4, 4),用绿色和紫色表示。第二个矩形是(2, 3)到(6, 5),用蓝色和紫色表示。图中,一共有15个单位的面积被涂上颜色,其中紫色部分被涂了两次,但在计算面积时只计算一次。在实际的涂色过程中,所有的矩形都涂成统一的颜色,图中显示不同颜色仅为说明方便。给出所有要画的矩形,.原创 2020-09-21 21:06:25 · 188 阅读 · 0 评论 -
2014-3-2窗口
问题描述 在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域。窗口的边界上的点也属于该窗口。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。 当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变。如果你点击的位置不属于任何窗口,则系统会忽略你这次点击。 现在我们希望你写一个程序模拟点击窗口的过程。输入格式 输入的第一行有两个正整数,即 N 和 .原创 2020-09-21 21:00:49 · 108 阅读 · 0 评论 -
2013-12-2 ISBN号码
问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。 识别码的计算方法如下: 首位数字乘以1.原创 2020-09-21 20:56:08 · 106 阅读 · 0 评论 -
2020-6-1线性分类器
满分代码:#include <bits/stdc++.h>using namespace std;struct point{ int x; int y; char t;}points[1001];int IsClass(int n,int x0,int x1,int x2){ #define result(x,y) (x0+x1*x+x2*y) char one='c',two='d'; for(int i=0;i<n;i++){ //正好在直线上直接出局 ...原创 2020-09-21 20:54:27 · 97 阅读 · 0 评论 -
2019-12-1报数
满分代码:#include <bits/stdc++.h>using namespace std;int haveseven(int i){ while(i>0){ if(i%10==7){ return 1; } i/=10; } return 0;}int a[4]={0};int main(){ int n,c=1,sum=0,i=1; cin>>n; while(sum<n){ if(i%7==0||havesev..原创 2020-09-21 20:52:16 · 102 阅读 · 0 评论 -
2019-9-1小明种苹果
满分代码:#include <bits/stdc++.h>using namespace std;int a[1111][1111];int main(){ int N,M; int max=0,temp=0; int count=0,tree; cin>>N>>M; for(int i=0;i<N;i++){ for(int j=0;j<M+1;j++){ cin>>a[i][j]; count+=a[i][..原创 2020-09-21 20:50:04 · 69 阅读 · 0 评论 -
2019-3-1小中大
满分代码:#include <bits/stdc++.h>using namespace std;int a[100001];int main(){ int n; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n); if(n%2==1){ printf("%d %d %d",a[n-1],a[n/2],a[0]); }else{ if((a[n/2]+a[n/2-1])..原创 2020-09-13 21:28:21 · 82 阅读 · 0 评论 -
2018-12-1小明上学
题目背景 小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校。为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间。他上学需要经过数段道路,相邻两段道路之间设有至多一盏红绿灯。 京州市的红绿灯是这样工作的:每盏红绿灯有红、黄、绿三盏灯和一个能够显示倒计时的显示牌。假设红绿灯被设定为红灯 r 秒,黄灯 y 秒,绿灯 g 秒,那么从 0 时刻起,[0,r) 秒内亮红灯,车辆不许通过;[r, r+g) 秒内亮绿灯,车辆允许通过;[r+g, r+g+y) 秒内亮黄灯,车辆不许通.原创 2020-09-13 21:00:59 · 96 阅读 · 0 评论 -
2018-9-1卖菜
问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜。 第一天,每个商店都自己定了一个价格。店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商店的价格调整自己的价格。具体的,每家商店都会将第二天的菜价设置为自己和相邻商店第一天菜价的平均值(用去尾法取整)。 注意,编号为1的商店只有一个相邻的商店2,编号为n的商店只有一个相邻的商店n-1,其他编号为i的商店有两个相邻的商店i-1和i+1。 给定第一天各个商店的菜价,请计算第二天每个商.原创 2020-09-13 20:25:50 · 294 阅读 · 0 评论 -
2018-3-1跳一跳
问题描述 近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱。 简化后的跳一跳规则如下:玩家每次从当前方块跳到下一个方块,如果没有跳到下一个方块上则游戏结束。 如果跳到了方块上,但没有跳到方块的中心则获得1分;跳到方块中心时,若上一次的得分为1分或这是本局游戏的第一次跳跃则此次得分为2分,否则此次得分比上一次得分多两分(即连续跳到方块中心时,总得分将+2,+4,+6,+8…)。 现在给出一个人跳一跳的全过程,请你求出他本局游戏的得分(按照题目描述的规则)。输入格式 输入包含多个数字,.原创 2020-09-13 20:23:55 · 99 阅读 · 0 评论 -
2017-12-1最小差值
问题描述 给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。输入格式 输入第一行包含一个整数n。 第二行包含n个正整数,相邻整数之间使用一个空格分隔。输出格式 输出一个整数,表示答案。样例输入51 5 4 8 20样例输出1样例说明 相差最小的两个数是5和4,它们之间的差值是1。样例输入59 3 6 1 3样例输出0样例说明 有两个相同的数3,它们之间的差值是0.数据规模和约定 对于所有评测用例,2 ≤ n ≤ 1000.原创 2020-09-13 20:21:58 · 700 阅读 · 0 评论 -
2017-9-1打酱油
问题描述 小明带着N元钱去买酱油。酱油10块钱一瓶,商家进行促销,每买3瓶送1瓶,或者每买5瓶送2瓶。请问小明最多可以得到多少瓶酱油。输入格式 输入的第一行包含一个整数N,表示小明可用于买酱油的钱数。N是10的整数倍,N不超过300。输出格式 输出一个整数,表示小明最多可以得到多少瓶酱油。样例输入40样例输出5样例说明 把40元分成30元和10元,分别买3瓶和1瓶,其中3瓶送1瓶,共得到5瓶。样例输入80样例输出11样例说明 把80元分成30元和50元,分别买3.原创 2020-09-13 20:20:12 · 68 阅读 · 0 评论 -
2017-3-1分蛋糕
问题描述 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, …, an。小明想分给每个朋友至少重量为k的蛋糕。小明的朋友们已经排好队准备领蛋糕,对于每个朋友,小明总是先将自己手中编号最小的蛋糕分给他,当这个朋友所分得蛋糕的重量不到k时,再继续将剩下的蛋糕中编号最小的给他,直到小明的蛋糕分完或者这个朋友分到的蛋糕的总重量大于等于k。 请问当小明的蛋糕分完时,总共有多少个朋友分到了蛋糕。输入格式 输入的第一行包含了两个整数n, k,意义如上所述。 .原创 2020-09-13 20:17:30 · 135 阅读 · 0 评论 -
2016-12-1中间数
问题描述 在一个整数序列a1, a2, …, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。 给定一个整数序列,请找出这个整数序列的中间数的值。输入格式 输入的第一行包含了一个整数n,表示整数序列中数的个数。 第二行包含n个正整数,依次表示a1, a2, …, an。输出格式 如果约定序列的中间数存在,则输出中间数的值,否则输出-1表示不存在中间数。样例输入62 6 5 6 .原创 2020-09-13 20:15:49 · 252 阅读 · 0 评论 -
2016-9-1最大波动
满分代码:#include <bits/stdc++.h> using namespace std;int main(){ int n,num; cin>>n; int a[n]; for(int i=0;i<n;i++){ cin>>a[i]; } num=abs(a[1]-a[0]); for(int i=2;i<n;i++){ if(abs(a[i]-a[i-1])>num){ num=abs(a[i]-a[i-.原创 2020-09-11 21:21:37 · 70 阅读 · 0 评论 -
2016-4-1折点计数
#include <bits/stdc++.h> using namespace std;int main(){ int n,c=0; cin>>n; int a[n]; for(int i=0;i<n;i++){ cin>>a[i]; } for(int i=1;i<n-1;i++){ if((a[i]>a[i-1]&&a[i]>a[i+1])||(a[i]<a[i-1]&&a[i.原创 2020-09-11 21:20:21 · 124 阅读 · 0 评论 -
2015-12-1数位之和
#include <bits/stdc++.h>using namespace std;int main(){ long long a; int sum=0; cin>>a; while(a!=0){ sum+=a%10; a=a/10; } cout<<sum; return 0;}原创 2020-09-11 21:17:30 · 63 阅读 · 0 评论 -
2015-9-1数列分段
#include <bits/stdc++.h>using namespace std;int main(){ int n,c=1; cin>>n; int a[n]; for(int i=0;i<n;i++){ cin>>a[i]; } for(int i=1;i<n;i++){ if(a[i]!=a[i-1]){ c++; } } cout<<c; return 0;}原创 2020-09-11 21:16:13 · 63 阅读 · 0 评论 -
2015-3-1图像旋转
#include <bits/stdc++.h>using namespace std;int a[1001][1001];int main() { int m,n; cin>>n; cin>>m; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>a[i][j]; } } for(int i=m-1;i>=0;i--){ for(int j=0;j<.原创 2020-09-11 21:14:48 · 71 阅读 · 0 评论 -
2014-12-1门禁系统
#include <bits/stdc++.h>using namespace std;int main() { int n,a[1002]={0},c; cin>>n; for(int i=1;i<=n;i++){ cin>>c; a[c]++; cout<<a[c]; if(i!=n)cout<<' '; } return 0;}原创 2020-09-10 21:01:29 · 82 阅读 · 0 评论 -
2014-9-1相邻数对
#include <bits/stdc++.h>using namespace std;int main() { //11233456789 int n,a[1001],c=0; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n); for(int i=1;i<n;i++){ if(a[i]-a[i-1]==1){ c++; } } cout<<c.原创 2020-09-10 21:00:16 · 80 阅读 · 0 评论 -
2014-3-1相反数
#include <bits/stdc++.h>using namespace std;int main() { //1122331 int n,a[501],c=0; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; if(a[i]<0){ a[i]=a[i]*(-1); } } sort(a,a+n); for(int i=1;i<n;i++){ if(a[i]==a[i-1].原创 2020-09-10 20:58:51 · 85 阅读 · 0 评论 -
2013-12-1出现次数最多的数
#include <bits/stdc++.h>using namespace std;//1 1 2 2 2 3 3//先排序,再比较 int main() { int n,a[1001]; cin >> n; for(int i=0;i<n;i++){ cin >> a[i]; } sort(a,a+n); int count = 1; int maxcount = 0; int maxdata = a[0]; for(int i.原创 2020-09-10 20:57:16 · 93 阅读 · 0 评论