csp
北海南风
这个作者很懒,什么都没留下…
展开
-
csp—— 201812-2 小明放学(java,满)
思路:注意这道题的坑,他的总时间不能单单的用int,需要用long数据类型。而且这道题的红绿灯顺序跟我们现实生活不太一样。这道题的顺序是 红-绿-黄(1,3,2);我们用区间范围来表示什么时候为红绿灯。红:(0,r】,绿(r,r+g】,黄(r+g,r+g+y】当等待时间太长时,红绿灯可能已经过了好几轮了,所以我们求走到红绿灯时候的状况要%(r+g+y)。package csp;import java.util.Scanner;public class csp201812_2_小明放学 .原创 2020-08-21 20:05:24 · 243 阅读 · 0 评论 -
csp 201803—2 碰撞的小球(java)
思路如代码注释所示:import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int n = input.nextInt(); int L = input.nextInt(); int..原创 2020-08-17 16:07:37 · 124 阅读 · 0 评论 -
csp 201512-2 消除类游戏 (java)
思路:先遍历二维数组的每一行,查看是否可以消除的元素,可以的话则自身元素加10,再遍历每一列,判断 每一列的下一个元素%10,与上一个元素%10是否相等,超过三个或三个以上则可抵消的元素自身再加10.最后遍历,大于10的元素,则替换成0。import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input = new Scanner(Sys..原创 2020-08-16 19:35:59 · 228 阅读 · 0 评论 -
csp 201703-02 学生排队 (java)
思路:与题意一样,移动数组。import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner input = new Scanner(System.in); int n = input.nextInt(); int[] a = new int[n + 1]; int m = input.nextInt(); .原创 2020-08-16 19:27:34 · 111 阅读 · 0 评论 -
csp 201412-2 Z字形扫描(java,满)
试题编号: 201412-2试题名称: Z字形扫描时间限制: 2.0s内存限制: 256.0MB图片指引:思路:经过反复的看图、商讨,我们发现了这样一个规律,遍历的时候,都是按照顺序2-3-4-1-2-3-4···遍历,每遍历一个数,就把那个数置0。2和4都只走一步,如果跳完发现当前顺序无法遍历,那就跳回去,然后继续到下一个顺序,直到遍历到数组 a[n-1][n-1] 的时候,遍历完毕,退出程序。1和3的时候,遍历的时候除了要判断是否到边界问题,还得判断是否遇到0,如果遇到了0,那就说明原创 2020-08-16 09:40:25 · 120 阅读 · 0 评论 -
csp 201509—1 数列分段(java)
思路:用一个数组承接输入的数,每次和前一个数不同的时候,数段个数count+1;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int n = input.nextInt(); int[] a = new int[n]; int.原创 2020-08-15 16:57:02 · 137 阅读 · 0 评论 -
csp 201503-2 数字排序(java)
思路,创一个数组,输入的数相等于数组的下标,每输入一个数,就对应的下标+1;然后遍历,找出数组里的最大值,输出该下标和值,然后置0,当最大值的为0时,终止循环。import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int[] count = new int[100.原创 2020-08-15 16:28:45 · 207 阅读 · 2 评论 -
csp 201409-2 画图 (java)
思路:最开始想了一些很傻逼的思路,弄了好久都没过用一个二维数组承接,对于范围内的就赋值为1,最后统计等于1的个数。import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner input = new Scanner(System.in); int n = input.nextInt(); int[][] mj = new.原创 2020-08-15 15:46:26 · 165 阅读 · 0 评论 -
csp_ 201312-2 ISBN号码(java)
这题唯一要注意的就是,一个字符想变成数字运算,那就就得 - ‘0’;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); String str = input.next(); int sum = 0, count = 1; for (.原创 2020-08-15 09:24:24 · 198 阅读 · 0 评论 -
csp—201512-1—位数之和(java)
问题描述 给定一个十进制整数n,输出n的各位数字之和。 输入格式 输入一个整数n。 输出格式 输出一个整数,表示答案。 样例输入20151220样例输出13样例说明 20151220的各位数字之和为2+0+1+5+1+2+2+0=13。评测用例规模与约定 所有评测用例满足:0 ≤ n ≤ 1000000000。从后往前取,这道题就特别简单了。import java.util.Scanner;public class Main { public原创 2020-08-15 09:17:37 · 183 阅读 · 0 评论 -
csp—201509-2 日期计算(java)
没什么思路可言,直接上代码import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner input = new Scanner(System.in); int year = input.nextInt(); int date = input.nextInt(); int flag = 0; .原创 2020-08-15 09:13:03 · 131 阅读 · 0 评论 -
csp201609_2_火车购票(java)
思路:建一个数组a,全部赋值为5,每插入一个座位,则-1。遍历,判断该排是否可以连续插入。如果都没有连续的座位,则从前面遍历原创 2020-08-15 08:00:13 · 138 阅读 · 1 评论 -
CSP 201403-2 窗口(java)
思路:1、 创建数组x[n][2],y[n][2]存放每个窗口的两个坐标。 2、xm[m]存放判断的坐标,index[n+1]来存放对应窗口的优先级,这里用数字表示,数字越大,优先级越高。3、遍历,求符合要求的窗口,用index【】来判断,取优先级大的下标。该下标对应的就是符合题意的窗口。如果没有,则输出“IGNORED”.import java.util.Scanner;public class Main { public static void main(String[] ar.原创 2020-08-14 21:13:21 · 280 阅读 · 0 评论 -
CSP 201503-1 图像旋转(C语言)
问题描述旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。 输入格式 输入的第一行包含两个整数n,m,分别表示图像矩阵的行数和列数。 接下来n行每行包含m个整数,表示输入的图像。输出格式输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。样例输入2 31 5 33 2 4样例输出3 45 21 3评测用例规模与约定1 ≤ n,原创 2020-08-14 19:48:50 · 1125 阅读 · 0 评论 -
CSP 2019-12-2 回收站选址(c语言)
思路:建立数组x,数组y,存放x的坐标和y的坐标。遍历数组x,y。查看有没有上下左右都有垃圾站的坐标,查找到后,再查找四个角落有几个垃圾站。代码如下:#include <stdio.h>int main() { int a0=0,a1=0,a2=0,a3=0,a4=0,b,i,j,k,z,n,d; scanf("%d",&n); int x[n],y[n]; for(i=0;i<n;i++){ scanf("%d%d",&x[i],&y[...原创 2020-08-14 10:33:59 · 290 阅读 · 0 评论 -
CSP 201909-1 小明种苹果(c语言)
代码如下:#include<stdio.h>int num(int c[],int d[],int s);int main(){ int n,m,i,j,t,sum; scanf("%d %d",&n,&m); int a[n],b[n]; for(i=0;i<n;i++,sum=0){ scanf("%d",&a[i]); for(j=0,sum=0;j<m;j++){ ..原创 2020-08-14 10:12:33 · 309 阅读 · 0 评论 -
CSP 201709-1 打酱油(c语言)
问题描述小明带着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原创 2020-08-14 09:51:56 · 645 阅读 · 0 评论 -
CSP 201712-1 最小差值(c语言)
暴力思路:把输入的数都放到数组a里面,把数组排序,再用另一个数组b承接他们两两之间的差值,然后找出数组b的最小值代码:#include <stdio.h>int main() { int n,i,j,k,t,min; scanf("%d",&n); int a[n],b[n-1]; for(i=0;i<n;i++){ scanf("%d",&a[i]); } for(i=0;i<n-1;i++){ k=i; for(j=i+1;j<.原创 2020-08-14 09:45:05 · 1859 阅读 · 0 评论 -
csp 201803-1跳一跳(c语言)
问题描述近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱。 简化后的跳一跳规则如下:玩家每次从当前方块跳到下一个方块,如果没有跳到下一个方块上则游戏结束。 如果跳到了方块上,但没有跳到方块的中心则获得1分;跳到方块中心时,若上一次的得分为1分或这是本局游戏的第一次跳跃则此次得分为2分,否则此次得分比上一次得分多两分(即连续跳到方块中心时,总得分将+2,+4,+6,+8…)。 现在给出一个人跳一跳的全过程,请你求出他本局游戏的得分(按照题目描述的规则)。输入格式输入包含多个数字,用空原创 2020-08-14 09:26:00 · 673 阅读 · 0 评论 -
CSP 201812-1小明上线(c语言)
题目背景小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校。为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间。他上学需要经过数段道路,相邻两段道路之间设有至多一盏红绿灯。 京州市的红绿灯是这样工作的:每盏红绿灯有红、黄、绿三盏灯和一个能够显示倒计时的显示牌。假设红绿灯被设定为红灯 r 秒,黄灯 y 秒,绿灯g 秒,那么从 0 时刻起,[0,r) 秒内亮红灯,车辆不许通过;[r, r+g) 秒内亮绿灯,车辆允许通过;[r+g, r+g+y)秒内亮黄灯,车辆不许通过,原创 2020-08-14 09:02:36 · 262 阅读 · 0 评论 -
CSP 201903-1 小中大(c语言)
这题没什么好说的,直接上代码吧#include <stdio.h>int main() { int n; scanf("%d",&n); int a[n],max,min,i,z,sum; float f; for(i=0;i<n;i++){ scanf("%d",&a[i]); } max=a[0]; min=a[n-1]; z=n/2; if(a[0]<a[n-1]){ max=a[n-1]; min=a[0]; } i..原创 2020-08-14 08:51:03 · 182 阅读 · 0 评论 -
CSP 201912-1 报数(c语言)
思路:报数的时候,我们要考虑的情况有:1、7的倍数2、个位数是7的情况3、二位数的时候,十位数是七的情况,4、三位数时,十位数是七的情况,百位数是七的情况。(完全有可能百位数是七,n是指报的有效个数,不包含跳过的数)当我们没跳过时,有效报数就加一,需要跳过时就不理。代码如下:#include<stdio.h>int main(){ int a=0,b=0,c=0,d=0,n,i=1,j=1; scanf ("%d",&n); while(i<=n) ..原创 2020-08-14 08:45:33 · 536 阅读 · 0 评论 -
csp- 201712-2_游戏 (java)
问题描述有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向……, 1号小朋友坐在n号小朋友的顺时针方向。游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加1。若一个小朋友报的数为k的倍数或其末位数(即数的个位)为k,则该小朋友被淘汰出局,不再参加以后的报数。当游戏中只剩下一个小朋友时,该小朋友获胜。 例如,当n=5, k=2时: 1号小朋友报数1; 2号小朋友报数2淘汰; 3号小朋原创 2020-08-13 20:26:41 · 184 阅读 · 0 评论 -
csp ccf线性分类器【c语言】(2020.6 题一)
答题思路:先分AB类点,后判断是否A类点都在同一侧,B类点都在另一侧。参考代码#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) { int n,m; //定义输入的点数n,线性分类条数m; scanf("%d%d",&n,&m); int x, y, i, j; char types; // 分类A、B点。 int xa[n], ya[n], xb[n],原创 2020-07-25 16:22:06 · 2551 阅读 · 4 评论