csp
_Mr.Tree
深入理解
展开
-
ccf 201903-4 消息传递接口
思路1)T是测试几次。n是每次有几个程序。2)命令后面的数字可能是多位数,例如”S123“3)判断死锁没有,就是看当前所有程序的当前命令是否是:<1>全是S命令 或者 全是R命令<2>S命令 或者 R命令后面指定的程序是不存在的,例如n=10,存在S11命令,11不存在。<3>S命令指定的程序,当前命令不是R代码#include <stdio.h>#include <string.h>typedef struct{ c...原创 2020-08-30 13:53:19 · 217 阅读 · 0 评论 -
csp 201812-4 数据中心
样例输入4511 2 31 3 41 4 52 3 83 4 2样例输出4样例说明 下图是样例说明。 思路:很明显题意是求一个求最小生成树的最大边,求最小生成树有迪杰斯特拉算法和普利姆算法。1)普利姆算法从顶点出发,最大要循环n次。2)迪杰斯特拉算法从边出发,最大要循环n-1次。再结合题目所说n<=5*105,m<=105,所以选用迪杰斯特拉算法。再有题目所说“但是不能将数据传输给多个节点”,也就是说图中不可能出现环。代码:#inclu..原创 2020-08-27 15:52:24 · 202 阅读 · 0 评论 -
csp 201912-3 化学方程式
解答:(40分未考虑)系数可以是多位数,(70分未考虑)括号嵌套可以是:((化学式))(化学式)。思路按照巴克斯范式分析。#include <stdio.h>#include <stdlib.h>#include <string.h>struct big{ int count; int small[26];};// 比如:big['C'-'A'].small['a'-'a'] = 9,表示Ca元素系数9;big['C'-'A'].count = 9,...原创 2020-06-22 11:21:56 · 356 阅读 · 2 评论 -
csp 201803-2 碰撞的小球
问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。 当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。 当两个小球撞到一起的时候,两个小球会分别向与自己原来移动的方向相反的方向,以原来的速度大小继续移动。 现在,告诉你线段的长度L,小球数量n,以及n个小球的初始位置,请你计算t秒之后,各个小球的位置。提示 因原创 2020-06-21 13:41:44 · 190 阅读 · 0 评论 -
csp 201803-1 跳一跳
问题描述 近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱。 简化后的跳一跳规则如下:玩家每次从当前方块跳到下一个方块,如果没有跳到下一个方块上则游戏结束。 如果跳到了方块上,但没有跳到方块的中心则获得1分;跳到方块中心时,若上一次的得分为1分或这是本局游戏的第一次跳跃则此次得分为2分,否则此次得分比上一次得分多两分(即连续跳到方块中心时,总得分将+2,+4,+6,+8…)。 现在给出一个人跳一跳的全过程,请你求出他本局游戏的得分(按照题目描述的规则)。输入格式 输入包含多个数字,用原创 2020-06-20 20:25:09 · 149 阅读 · 0 评论 -
csp 201809-2 买菜
问题描述 小H和小W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁边的一个广场把菜装上车,两人都要买n种菜,所以也都要装n次车。具体的,对于小H来说有n个不相交的时间段[a1,b1],[a2,b2]…[an,bn]在装车,对于小W来说有n个不相交的时间段[c1,d1],[c2,d2]…[cn,dn]在装车。其中,一个时间段[s, t]表示的是从时刻s到时刻t这段时间,时长为t-s。 由于他们是好朋友,他们都在广场上装车的时候会聊天,他们想知道他们可以聊多长时间。输入原创 2020-06-20 18:34:19 · 126 阅读 · 0 评论 -
csp 201809-1 卖菜
问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜。 第一天,每个商店都自己定了一个价格。店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商店的价格调整自己的价格。具体的,每家商店都会将第二天的菜价设置为自己和相邻商店第一天菜价的平均值(用去尾法取整)。 注意,编号为1的商店只有一个相邻的商店2,编号为n的商店只有一个相邻的商店n-1,其他编号为i的商店有两个相邻的商店i-1和i+1。 给定第一天各个商店的菜价,请计算第二天每个商店原创 2020-06-20 18:32:49 · 97 阅读 · 0 评论 -
csp 201812-2 小明放学
题目背景 汉东省政法大学附属中学所在的光明区最近实施了名为“智慧光明”的智慧城市项目。具体到交通领域,通过“智慧光明”终端,可以看到光明区所有红绿灯此时此刻的状态。小明的学校也安装了“智慧光明”终端,小明想利用这个终端给出的信息,估算自己放学回到家的时间。 问题描述 一次放学的时候,小明已经规划好了自己回家的路线,并且能够预测经过各个路段的时间。同时,小明通过学校里安装的“智慧光明”终端,看到了出发时刻路上经过的所有红绿灯的指示状态。请帮忙计算小明此次回家所需要的时间。 输入格式 输原创 2020-06-20 17:51:53 · 179 阅读 · 0 评论 -
csp 201812-1 小明上学
题目背景 小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校。为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间。他上学需要经过数段道路,相邻两段道路之间设有至多一盏红绿灯。 京州市的红绿灯是这样工作的:每盏红绿灯有红、黄、绿三盏灯和一个能够显示倒计时的显示牌。假设红绿灯被设定为红灯 r 秒,黄灯 y 秒,绿灯 g 秒,那么从 0 时刻起,[0,r) 秒内亮红灯,车辆不许通过;[r, r+g) 秒内亮绿灯,车辆允许通过;[r+g, r+g+y) 秒内亮黄灯,车辆不许通过原创 2020-06-20 15:46:45 · 146 阅读 · 0 评论 -
csp 201903-2 二十四点
解答:#include <stdio.h>#include <stdlib.h>#include <limits.h> int result(int a,int b,char ch){ int res=0; switch(ch){ case '+': res = a+b; break; case '-': res = a-b; break; case 'x': res = a*b; break; cas..原创 2020-06-20 15:43:40 · 201 阅读 · 0 评论 -
csp 201903-1 小中大
解答:#include <stdio.h>#include <stdlib.h>#include <limits.h> int main() { int n,i,max=INT_MIN,min=INT_MAX,flag=0,temp,a=0,b=0; double avg; scanf("%d",&n); if(n%2 == 0){ flag = 1; } for(i=0; i<n; i++){ scanf("%d",&am..原创 2020-06-20 15:40:36 · 204 阅读 · 0 评论 -
csp 201909-2 小明种苹果(续)
解答:#include <stdio.h>int main(){ int n,m,i,j,total,temp,t=0,d=0,e=0,bi=-1; scanf("%d",&n); int iless[1000]={0}; for(i=0; i<n; i++){ scanf("%d",&m); scanf("%d",&total); for(j=1; j<m; j++){ scanf("%d",&temp); ...原创 2020-06-20 15:35:36 · 156 阅读 · 0 评论 -
csp 201909-1 小明种苹果
解答:#include <stdio.h>int main(){ int n,m,total,max=0,maxIndex=0,less=0,i,j;; scanf("%d %d",&n,&m); for(i=0; i<n; i++){ scanf("%d",&total); int sum = 0,temp; for(j=0; j<m; j++){ scanf("%d",&temp); sum+=(-temp)..原创 2020-06-20 15:26:48 · 177 阅读 · 0 评论 -
csp 201912-2 回收站选址
解答:#include <stdio.h>int up(int xi,int yi,int xj,int yj);int down(int xi,int yi,int xj,int yj);int left(int xi,int yi,int xj,int yj);int right(int xi,int yi,int xj,int yj);int ul(int xi,int yi,int xj,int yj);int ur(int xi,int yi,int xj,int y.原创 2020-06-20 15:21:27 · 190 阅读 · 0 评论 -
csp 201912-1 报数
解答:#include <stdio.h>int hasseven(int ti){ int flag = 0; do{ if(ti%10 == 7){ flag = 1; } ti/=10; }while(ti!=0); return flag;}int main(){ int n,i,a,b,c,d=0,ti=1,pos=1,flag; a=b=c=d; scanf("%d",&n); i=0; while(i<n){ fl.原创 2020-06-20 15:16:01 · 160 阅读 · 0 评论