
2017寒假作业
文章平均质量分 58
SSLGZ_yyc
这个作者很懒,什么都没留下…
展开
-
迷宫pascal程序
题意走迷宫,要绕开障碍,走过的就不能再走,求有多少种不同的方法可以到达终点分析我们可以用深搜来做,输入时把障碍的坐标记录下来constdx:array[1..4]of longint=(0,0,1,-1);dy:array[1..4]of longint=(1,-1,0,0);varn,m,t,sx,sy,fx,fy,tj,i,z1,z2:l原创 2017-01-13 15:26:23 · 480 阅读 · 0 评论 -
宇宙总统pascal程序
题意找出最大的数和它的序号分析先长度排序,长度相同,就字符串排序varn,i,j:longint;a:array[0..20]of string;b,l:array[0..20]of longint;begin readln(n); for i:=1 to n do begin readln(a[i])原创 2017-01-12 20:44:53 · 443 阅读 · 0 评论 -
分数线划定pascal程序
题意把分数从大到小排序,同分数的,学号小的排前。找出分数大于等于,第m*1.5(向下取整)名的分数,的人。分析开始先排序,再一个一个找varn,m,i,j,tj:longint;k,s:array[0..10000]of longint;t:real;begin readln(n,m); for i:=1 to n原创 2017-01-12 19:38:04 · 725 阅读 · 0 评论 -
明明的随机数
题意输入一段数,去掉相同的数,再排序分析一开始输入的时候,就完成“去重”,再排序constmaxn=100000;varn,t,i:longint;a,b:array[0..maxn]of longint;procedure init;vari,w:longint;begin fillchar(a,sizeof(a),0原创 2017-01-12 16:18:38 · 411 阅读 · 0 评论 -
笨小猴pascal题解
题意找出在单词里出现最多的单词的次数,再找出在单词里出现最少的单词的次数,最多和最少的次数相减,如果结果是素数,那么就是Lucky Word,不然就是No Answer分析假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Wordvar原创 2017-01-12 15:33:27 · 623 阅读 · 0 评论 -
机器翻译pascal程序
题意:把一串数放进一个字典里,如果字典里没有相同的数,就把最先放的那一类数拿出来,把当前的数放进去,再统计一次。分析整个查字典过程如下:每行表示一个单词的翻译,冒号前为本次翻译后的内存状况:空:内存初始状态为空。第一个数时. 1:查找单词1 并调入内存。第二个数时. 1 2:查找单词2 并调入内存。第三个数时. 1 2:在内存中找到单词1。第四个数时. 1原创 2017-01-12 14:41:14 · 461 阅读 · 0 评论 -
传球游戏
题意n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师在此吹哨子时,传球停止,此时,拿着球没有传出去的那个同学就是败者。分析一个球只能从左边和右边传来所以 f[i,j]:=f[i-1,left[j]]+f[i-1,right[j]];var l,r:array[0原创 2017-02-05 18:48:48 · 343 阅读 · 0 评论 -
迎春舞会之数字舞蹈
题意打印图案分析仔细看输出,理解题意,思路清晰就能做出这题。vari,j,k,a:longint;s:ansistring;p:array[0..9,1..5]of longint=((1,1,0,1,1),(0,2,0,2,0),(1,2,1,3,1),(1,2,1,2,1),(0,1,1,2,0),(1,3,1,2,1),(1,3,1,1,1),(1原创 2017-02-05 18:36:51 · 347 阅读 · 0 评论 -
乒乓球
题意对于一系列比赛信息的输入(WL形式),输出正确的结果。分析如果理解了题目,那么就能做出这题。vari,n,x,y:longint;w:char;a:array[0..100000]of char;begin n:=0; repeat read(w); if (w='W')or(w='原创 2017-02-05 18:20:49 · 271 阅读 · 0 评论 -
铺地毯pascal程序
题意找出最后一张覆盖在点上的地毯编号分析先输入,再从后面找,这样会更快varn,i,j:longint;a:array[0..20]of string;b,l:array[0..20]of longint;begin readln(n); for i:=1 to n do begin readln(a[原创 2017-01-12 21:01:51 · 395 阅读 · 0 评论 -
多项式输出pascal程序
题意一个一个的输入,按以下规则输出:1. 多项式中自变量为 x,从左到右按照次数递减顺序给出多项式。2. 多项式中只包含系数不为 0 的项。3. 如果多项式 n 次项系数为正,则多项式开头不出现“+”号,如果多项式 n 次项系数为负,则多项式以“-”号开头。4. 对于不是最高次的项,以“+”号或者“-”号连接此项与前一项,分别表示此项系数为正原创 2017-01-13 09:31:11 · 378 阅读 · 0 评论 -
数列分段pascal程序
题意对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求。分析一个一个加上s,如果s>m,那么s就变成当前的数字,并且tj+1varn,m,tj,i,s,w:longint;begin readln(n,m); tj:=1; s:=0;原创 2017-02-04 13:05:25 · 324 阅读 · 0 评论 -
[USACO1.3]混合牛奶 Mixing Milk
题意给出Marry乳业每天对牛奶的需求量,还有每位奶农提供的牛奶单价和产量。计算采购足够数量的牛奶所需的最小花费。分析排序,最小价值优先取,太多了就退出循环,输出(之前的价值+还有多少需求*退出时的单价)。varn,m,i,j,tj:longint;a,b:array[0..5000]of longint;procedure kp(l,r原创 2017-02-04 12:54:21 · 427 阅读 · 0 评论 -
混合牛奶pascal程序
题意给出Marry乳业每天对牛奶的需求量,还有每位奶农提供的牛奶单价和产量。计算采购足够数量的牛奶所需的最小花费。分析排序,最小价值优先取,太多了就退出循环,输出(之前的价值+还有多少需求*退出时的单价)。varn,m,i,j,tj:longint;a,b:array[0..5000]of longint;procedure kp(l,r原创 2017-02-04 12:52:53 · 462 阅读 · 0 评论 -
单词接龙pascal程序
题意现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at 和 atide间不能相连。vara:array[0..20] of string;b,c:原创 2017-02-03 22:52:03 · 689 阅读 · 0 评论 -
谁拿了最多奖学金pascal程序
题意找出奖学金最多的学生分析这题就是很简单的字符串处理,细心一点就好。先把每一个学生的奖学金算出来,再排序,如果有两位或两位以上的学生获得的奖金最多,输出他们之中在输入文件中出现最早的学生的姓名。varn,tj,i,gb,xb,lw,q,b,j:longint;m:array[0..100]of string;t,p:array[0..100]of原创 2017-02-03 22:20:06 · 591 阅读 · 0 评论 -
凌乱的yyy
题意安排比赛,且不能同时进行两个比赛,使比赛场数最多。分析这题用贪心原创 2017-02-03 18:56:32 · 335 阅读 · 0 评论 -
魔法照片pascal程序
题意求出加上额外权值以后,最终的权值最大的k个人,并输出他们的编号。分析先排序,再一个一个求权值。varn,k,i:longint;e:array[0..10]of longint;a:array[0..50000,1..4]of longint;procedure kp(l,r:longint);vari,j,mid,key1,key2原创 2017-01-13 10:33:53 · 304 阅读 · 0 评论 -
均分纸牌pascal程序
题意有n堆纸牌,通过把牌移到另一堆,使每一堆的纸牌数相等。分析在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。constmaxn=100;vara:array[0..maxn]of longint;p,n,i,step:lon原创 2017-01-13 10:10:30 · 303 阅读 · 0 评论 -
零的数列
题意请考虑一个由1到N(N=3, 4, 5 ... 9)的数字组成的递增数列:1 2 3 ... N。 现在请在数列中插入“+”表示加,或者“-”表示减,“ ”表示空白(例如1-2 3就等于1-23),来将每一对数字组合在一起(请不要在第一个数字前插入符号)。 计算该表达式的结果并判断其值是否为0。分析这题用搜索就能做出来,思路清晰就可以了。varn:lon原创 2017-02-05 17:27:56 · 471 阅读 · 0 评论 -
特殊的质数肋骨
题意从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数。 7331 被叫做长度 4 的特殊质数。写一个程序对给定的肋骨的数目 N (1<=N<=8),求出所有的特殊质数。分析每个质数肋骨的首位一定是2、3、5、7之一;往后的每一位一定是...原创 2017-02-05 16:45:47 · 1034 阅读 · 0 评论 -
开心的金明
题意在不超过N元(可以等于N元)的前提下,使每件物品的价格与重要度的乘积的总和最大。varn,m,i,j,v,p:longint;f:array[1..30001]of longint;begin readln(n,m); for i:=1 to m do begin readln(v,p); p:原创 2017-02-04 17:25:12 · 253 阅读 · 0 评论 -
最大子串和
题意给出一段序列,选出其中连续且非空的一段使得这段和最大。分析一个一个加,只要判断总和会不会小于0就行,小于0就接着往下重新计算和,因为如果所有数据里有正数的话,单个正数肯定更大,而如果都是负数的话,单个负数也比负数和大。varn,i,t,m:longint;a:array[0..200000]of longint;begin read原创 2017-02-04 16:53:24 · 229 阅读 · 0 评论 -
[USACO1.5]数字金字塔 Number Triangles
题意从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。分析从最低层开始走。varn,i,j:longint;f,a:array[0..2000,0..2000]of longint;function work(x,y:longint):longint;begin if x>y原创 2017-02-04 16:33:36 · 372 阅读 · 0 评论 -
数字金字塔
题意从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。分析从最低层开始走。varn,i,j:longint;f,a:array[0..2000,0..2000]of longint;function work(x,y:longint):longint;begin if x>y原创 2017-02-04 16:33:15 · 1181 阅读 · 0 评论 -
台阶问题
题意有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式。分析递推公式a[i]:=a[i]+a[i-j];varn,k,i,j:longint;a:array[-1000..100000]of longint;begin read(n,k); a[0]:=1; for原创 2017-02-04 16:14:50 · 383 阅读 · 0 评论 -
约瑟夫问题pascal程序
题意n个人(nvarn,m,i,j,tj:longint;a:array[0..200]of longint;begin read(n,m); fillchar(a,sizeof(a),0); i:=0;j:=0;tj:=0; repeat inc(i); if i>n then i:=原创 2017-01-13 16:43:52 · 603 阅读 · 0 评论 -
约数研究pascal程序
题意把1到n中,所有数的约数数量相加。分析从它给出的样例中,我们可以得出这样的规律:t:=(n/1)+(n/2)+...(n/n-1)+(n/n);varn,i,t:longint;begin read(n); t:=0; for i:=1 to n do t:=t+(n div i); write(t);原创 2017-01-13 15:54:50 · 495 阅读 · 0 评论 -
拼数pascal程序
题意将一些是接起来,找出接的最大的数分析这题其实就是最大整数。做的时候,我们可以先把数字符串排序,从小到大,再一个一个接起来varn,i,x,j:longint;t:string;s:array[0..20]of string;procedure kp(l,r:longint);vari,j:longint;mid:string;begin原创 2016-12-08 15:38:46 · 341 阅读 · 0 评论 -
装箱问题
题意要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。分析这题跟装载问题差不多,只不过这题是输出剩余空间。先排序,再从大到小搜。varn,c,i,tao,t,tj:longint;b,s:array[0..5000]of longint;procedure kp(l,r:longint);vari,j,mid:lon原创 2017-02-04 18:01:09 · 445 阅读 · 0 评论 -
斯诺登的密码
题意找出句子中所有用英文表示的数字(≤20),将这些数字平方后%100,如00,05,11,19,86,99。把这些两位数按数位排成一行,组成一个新数,如果开头为0,就去0。找出所有排列方法中最小的一个数,即为密码。分析先计算出每一个数字的平方,不过在放进数组里时,只放两位。如1的平方是1,放进数组里时则变成01。如10的平方是100,放进数组里时则变成00。最后排原创 2017-02-04 19:25:44 · 757 阅读 · 0 评论 -
回文质数
题意找出范围[a,b](5 <= a < b <= 100,000,000)( 一亿)间的所有回文质数;分析找出所有的回文数再判断它们是不是质数(素数).vara,b,l:longint;function work(w:longint):longint;vart,s:longint;begin t:=w; s:=0; while t<>0 do ...原创 2017-02-05 16:31:07 · 243 阅读 · 0 评论 -
黑色星期五
题意给出N年的一个周期,要求计算1900年1月1日至1900+N-1年12月31日中十三号落在周一到周日的次数分析先算出当前月份的天数,再看有没有到13号,有的话就加次数。varx,m,y,d,i,n,j:longint;a:array[1..7]of longint;procedure c(var m:longint);begin原创 2017-02-04 21:48:38 · 456 阅读 · 0 评论 -
高精度减法pascal程序
const max=1000;vara,b:array[0..max]of longint;procedure init;vars1,s2,s:string;l1,l2,i:longint;begin readln(s1); readln(s2); l1:=length(s1); l2:=length(s2); if原创 2017-01-13 21:55:35 · 916 阅读 · 0 评论 -
奖学金pascal程序
题意把总分排序分析先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学 排在前面vara,t,p:array[0..300]of longint;n,i,x,y,j:longint;procedure kp(l,r:longint);vari,j,mid:longin原创 2017-01-13 21:35:28 · 449 阅读 · 0 评论 -
快速排序pascal程序
题意排序分析数据规模太大,建议使用快排。varn,i:longint;a:array[0..100000]of longint;procedure kp(l,r:longint);vari,j,mid:longint;begin if l>=r then exit; i:=l;j:=r;mid:=a[(l+r) d原创 2017-01-13 21:26:35 · 3520 阅读 · 0 评论 -
排队接水pascal程序
题意找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。分析打水的时候花费时间越少的人越先打,那么所有人的等待时间之和就会最小,所以我们要先排序,再计算总时间vara,b:array[0..50000]of longint;n,i,j,w:longint;tj:real;begin readln(n); for i:原创 2017-01-13 21:15:27 · 450 阅读 · 0 评论 -
A*B Problem
分析要用高精度,数组一定要开得大。我做的时候,就是因为数组不够大而和我朋友调试了超久。const maxn=2600;vara,b:array[1..maxn]of longint;c:array[1..2*maxn]of longint;l1,l2:longint;procedure init;vars1,s2:ansistring;i:lon原创 2017-01-13 20:21:05 · 229 阅读 · 0 评论 -
你要的飞碟在这儿
题意通过小组名和彗星名来决定这个小组是否能被那颗彗星后面的UFO带走。小组名和彗星名都以下列方式转换成一个数字:最终的数字就是名字中所有字母的积,其中“A”是1,“Z”是26。例如,“USACO”小组就是21*19*1*3*15=17955。如果小组的数字 mod 47等于彗星的数字mod 47,你就得告诉这个小组需要准备好被带走。分析先把每一个字母所代表的数字算出来,这样原创 2017-02-04 19:56:59 · 421 阅读 · 0 评论 -
取余运算
题意求b^p mod k的值。分析这题要用到一个原理,百度上搜’快速幂‘可以找到。varb,p,k,l,t,w,i:longint;a:array[1..32]of longint;begin read(b,p,k); l:=0; t:=p; while t begin inc(l)原创 2017-02-04 13:43:21 · 509 阅读 · 0 评论