pascal
disPlayLzy_
梦在前方,路在脚下
展开
-
一个自己编的小游戏——猜数
语言:pascal 程序简单,通俗易懂,觉得好请点赞= = 坑点:回答限制次数是随机的uses crt;var s:longint; i,n,m,x,y,b,ss:longint;begin randomize; ss:=random(20); while ss<8 do ss:=random(20); writeln('You can answer ',ss原创 2016-12-02 18:34:46 · 1643 阅读 · 2 评论 -
图论学习心得
开始接触图论,小小的好奇伴随着一堆的疑问- -。图是一种数据结构。 它的形式定义为Graph=(V,E) 其中,V代表顶点集合,E代表边的集合。 (1)有向图:每条边都是有方向的图。有向边也称为弧,边的起始点称为弧尾,终点称为弧头。 (2)无向图:每条边都是没有方向的图。 (3)有向完全图:具有n(n-1)条弧的有向图。 (4)无向完全图:具有n(n-1)/2条弧的无向图。 (5)原创 2016-12-06 17:55:10 · 7691 阅读 · 0 评论 -
高精度算法个人分析
1.用数组进行进位与运算。 2.常用于位数过大的数的加减乘除运算。 3.必备知识。 4.模块(仅供参考,若想学到知识,请看懂而后行,杜绝照搬): 高精度乘法:var a,b,c:array [1..500] of integer; n1,n2:ansistring; lena,lenb,lenc,i,j,x:integer; begin readln(n1); read原创 2016-12-06 18:36:09 · 692 阅读 · 0 评论 -
开始逐步转C++
听说过几年NOIP取消pascal,改为C++,作为悲催的P党,我不得不走向转C的道路=-=。 买了本C++信息一本通,发现C++很多东东跟pascal一样,begin end变成了{ },还有什么调用库 #include 。 面对疾风吧,骚年!!! 望,转C顺利!转C成功! 最后,状栽我大P党=.=,以后是C党了=_=。原创 2016-12-20 20:36:31 · 593 阅读 · 1 评论 -
洛谷 P2085 最小函数值(minval)
题目大意: 在很多个函数a[i]*x^2+b[i]*x+c[i],求出最小的M个。 堆: 1.将x=1时的全部函数加入堆里建立一个堆。 2.每次找最小的函数输出,然后把这个函数的x+1的结果加入堆,排序。 时间复杂度:O(N+M)var a:array [0..10001,1..3] of longint; f,b:Array [0..10001] of longint;原创 2017-03-01 16:57:07 · 592 阅读 · 0 评论 -
POJ P2560 Freckles
题目大意: 用墨水构建一个总路径长的雀斑集合。Kruskal+并查集: 简单的最小生成树,+并查集优化,不然会超时。 时间复杂度:O(N^2*(N-1))var a:array [0..101,0..101] of extended; x,y:array [0..101] of extended; f:array [0..101] of longint; i,j原创 2017-02-28 17:13:03 · 514 阅读 · 0 评论 -
POJ P2524 Ubiquitous Religions
题目大意: 在一堆关系复杂的宗教信仰大学生中求出不同宗教的最大数目。 并差集: 1.一直把信仰同一种宗教的X和Y合并到一个集合。 2.for一遍累加不同集合个数(宗教个数) 时间复杂度:O(M)var f:array [0..50001] of longint; i,n,m,x,y,ans,g:longint;function find(c:longint):longint;原创 2017-02-24 20:24:47 · 269 阅读 · 0 评论 -
POJ P1611 The Suspects
题目大意: 在一堆人中找与0嫌疑犯有联系的人。 并差集: 1.把在一个小组中的人用并差集合全部做到一个集合中。 2.判断0嫌疑犯与1到N号学生是否在同一个集合,在就累加。 注意:0嫌疑犯本身就是可疑人数,ans初值为1。 时间复杂度:O(NM)var f:array [0..30001] of longint; i,j,k,n,m,x,y,z,ans:longint;func原创 2017-02-24 19:55:57 · 255 阅读 · 0 评论 -
洛谷 P2449 [SDOI2005]矩形
并查集: 1.判断两两矩形是否有重合部分。 2.有就做并查集,合并成一个集合。 3.for一次判断有多少个集合。 时间复杂度:O(n^2)var f,x,y,p,q:array [0..7001] of longint; i,j,n,ans,k,l:longint;function find(c:longint):longint;begin if f[c]=c the原创 2017-02-21 16:57:12 · 575 阅读 · 0 评论 -
洛谷 P1473 零的数列 Zero Sum
Description 请考虑一个由1到N(N=3, 4, 5 … 9)的数字组成的递增数列:1 2 3 … N。 现在请在数列中插入“+”表示加,或者“-”表示减,抑或是“ ”表示空白,来将每一对数字组合在一起(请不在第一个数字前插入符号)。 计算该表达式的结果并注意你是否得到了和为零。 请你写一个程序找出所有产生和为零的长度为N的数列。 Input 单独的一行表示整数原创 2016-12-06 18:28:13 · 775 阅读 · 0 评论 -
洛谷 P2670 扫雷游戏
优美的暴力var a:array [0..101,0..101] of boolean; i,j,m,n,ii,jj,o:integer; g:char;begin readln(m,n); fillchar(a,sizeof(a),false); for i:=1 to m do begin for j:=1 to n do原创 2016-12-03 10:24:27 · 1320 阅读 · 0 评论 -
洛谷 P2669 金币
剩余天数(m-g)有2种 1.大于等于i:总金币直接+i*i,然后累加i天 2.小于i : 总金币剩下的天数*i,然后g=mvar m,i,g,x:longint;begin readln(m); i:=0; x:=0; g:=0; while g<>m do begin i:=i+1; if g+i<=m then begin x:=x+i*i;原创 2016-12-03 10:17:54 · 1228 阅读 · 0 评论 -
洛谷 P1546 最短网络 Agri-Net
克鲁斯卡尔(Kruskal) Description 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费,他想铺设最短的光纤去连接所有的农场。你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并所用光纤最短的方案。每两个农场间的距离不原创 2016-11-30 17:44:29 · 711 阅读 · 1 评论 -
洛谷 P1506 拯救oibh总部
题目背景oibh总部突然被水淹没了!现在需要你的救援……题目描述oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用号表示,而一个封闭的号区域洪水是进不去的……现在给出oibh的围墙建设图,问oibh总部没被淹到的重要区域(由”0”表示)有多少。输入输出格式输入格式: 第一行是两个数,x和y(x,y<=500)第二行及以下是一个由*和0组成的x*y的图。输出格式: 输原创 2016-11-29 17:31:50 · 1200 阅读 · 2 评论 -
记NOIP2016全国信息学分区普级组——比赛感想
这次比赛的时候,有一点小小的紧张,比赛分为四道题,一开始我花了15分钟看题,15分钟理思路。 当我在理思路的时候,已经有很多人开始啪啪啪地敲程序了,给我无形的增加了一种紧迫感。 想好思路了,我一开始做的特别的轻松,第一题写了个暴力,然后开了几个比较容易错的“极端”数据,过了之后,有把握AC,就做起了第二题。 第二题有一点点的小难度,在于年月日的进位,不过也是很水,因为原创 2016-11-24 15:59:12 · 1371 阅读 · 1 评论 -
洛谷 P3367【模板】并查集
题目描述如题,现在有一个并查集,你需要完成合并和查询操作。输入输出格式输入格式: 第一行包含两个整数N、M,表示共有N个元素和M个操作。接下来M行,每行包含三个整数Zi、Xi、Yi当Zi=1时,将Xi与Yi所在的集合合并当Zi=2时,输出Xi与Yi是否在同一集合内,是的话输出Y;否则话输出N输出格式: 如上,对于每一个Zi=2的操作,都有一行输出,每行包含一个大写字母,为Y或者N输入输出样例输入原创 2017-02-12 08:36:29 · 575 阅读 · 0 评论 -
洛谷 P1019 单词接龙
题目描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at 和 atide 间不能相连。输入输出格式输入格式: 输入的第一行原创 2017-02-03 00:15:36 · 291 阅读 · 0 评论 -
洛谷 P1605 迷宫
题目背景迷宫 【问题描述】给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。输入样例 输出样例【数据规模】1≤N,M≤5题目描述输入输出格式输入格式: 【输入】第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标S原创 2017-01-21 17:25:21 · 432 阅读 · 0 评论 -
洛谷 P1181 数列分段Section I
题目描述对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求。输入输出格式输入格式: 输入文件divide_a.in的第1行包含两个正整数N,M,表示了数列A[i]的长度与每段和的最大值,第2行包含N个空格隔开的非负整数A[i],如题目所述。输出格式: 输出文件divide_a.out仅包含一个正整数,输出最少原创 2017-01-13 11:55:50 · 512 阅读 · 0 评论 -
洛谷 P1223 排队接水
题目描述有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。输入输出格式输入格式: 输入文件共两行,第一行为n;第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。输出格式: 输出文件有两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到原创 2017-01-13 11:39:17 · 486 阅读 · 0 评论 -
洛谷 P1219 八皇后
题目描述检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列2 4 6 1 3 5来描述,第i个数字表示在第i行的相应位置有一个棋子,如下:行号 1 2 3 4 5 6列号 2 4 6 1 3 5这只是跳棋放置的一个解。请编一个程序找出所有跳棋放置的解。并把它们以上面的序列方法输出。原创 2017-01-13 11:29:03 · 439 阅读 · 0 评论 -
洛谷 P2142 高精度减法
题目描述高精度减法输入输出格式输入格式: 两个数(第二个可能比第一个大)输出格式: 结果(是负数要输出负号)输入输出样例输入样例#1: 2 1 输出样例#1: 1 说明无高精度减法: 1.按位相减,依次进位。 2.若a>b,则输出负号并且交换位置,变成b-a。var a,b,c:array [1..500] of integer; n,n1,n2:string;原创 2017-01-13 08:34:31 · 784 阅读 · 0 评论 -
洛谷 P1303 A*B Problem
题目描述求两数的积。输入输出格式输入格式: 两个数输出格式: 积输入输出样例输入样例#1: 1 2 输出样例#1: 2 说明 需用高精老老实实打一个高精度乘法,注意数组位数。var a,b,c:array [1..500] of integer; n1,n2:ansistring; lena,lenb,lenc,i,j,x:integer; begin readl原创 2017-01-13 08:30:07 · 746 阅读 · 0 评论 -
洛谷 P1601 A+B Problem(高精)
题目背景无题目描述高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b]输入输出格式输入格式: 分两行输入a,b<=10^500输出格式: 输出只有一行,代表A+B的值输入输出样例输入样例#1: 1 1 输出样例#1: 2高精度: 单纯的高精度!高精度!!高精度!!!var s:ansistring; a,b,c:arr原创 2017-01-12 17:20:36 · 868 阅读 · 0 评论 -
洛谷 P1094 纪念品分组
题目描述元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。输入输出格式输入格式: 输入原创 2017-01-12 17:17:11 · 631 阅读 · 0 评论 -
洛谷 P1087 FBI树
题目描述我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。FBI树是一种二叉树,它的结点类型也包括F结点,B结点和I结点三种。由一个长度为2^N的“01”串S可以构造出一棵FBI树T,递归的构造方法如下:1) T的根结点为R,其类型与串S的类型相同;2) 若串S的长度大于1,将串S从中间分开,分为等长的左右子串S1和S2;由左原创 2017-01-12 17:10:42 · 661 阅读 · 0 评论 -
洛谷 P1583 魔法照片
排序: 1.按照题意先排序初始权值。 2.给排序后的权值加上对应的额外权值。 3.再次排序。 备注:排序时编号跟着交换。const maxn=50000;var a,b,e:array[0..maxn] of longint; i,n,k,j:longint;procedure qsort(l,r:longint); var i,j,key,temp,music:l原创 2017-01-12 16:11:38 · 863 阅读 · 0 评论 -
洛谷 P1781 宇宙总统
题目背景宇宙总统竞选题目描述地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竟选总统,现在票数已经统计完毕,请你算出谁能够当上总统。输入输出格式输入格式: president.in第一行为一个整数n,代表竞选总统的人数。接下来有n行,分别为第一个候选人到第n个候选人的票数。输出格式: president.out共两行,第一行是一个整数m,为当上总统的人的号数。第二行原创 2017-01-12 15:59:40 · 832 阅读 · 0 评论 -
洛谷 P1025 数的划分
题目描述世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的原创 2017-01-12 15:44:51 · 666 阅读 · 0 评论 -
洛谷 P1135 奇怪的电梯
题目描述呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:3 3 1 2 5代表了Ki(K1=3,K2=3,……),从一楼开始。在一楼,按“上”可以到4楼,按“下”是不起作用的,因为没有原创 2017-01-12 15:03:36 · 866 阅读 · 0 评论 -
洛谷 P1059 明明的随机数
题目描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入输出格式输入格式: 输入有2行,第1行为1个正整数,表示所生成的随机数的个数:原创 2017-01-12 12:55:40 · 715 阅读 · 0 评论 -
洛谷 P1177 【模板】快速排序
题目描述利用快速排序算法将读入的N个数从小到大排序后输出。快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++选手请不要试图使用STL,虽然你可以使用sort一遍过,但是你并没有掌握快速排序算法的精髓。)输入输出格式输入格式: 输入文件sort.in的第1行为一个正整数N,第2行包含N个空格隔开的正整数a[i],为你需要进行排序的数,数原创 2017-01-12 12:52:45 · 756 阅读 · 0 评论 -
洛谷 P1090 合并果子
Description 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家,所以多多在合并果子时要原创 2016-12-23 21:35:34 · 636 阅读 · 0 评论 -
洛谷 P1037 产生数
Description给出一个整数 n(n<10^30) 和 k 个变换规则(k<=15)。 规则: 一位数可变换成另一个一位数: 规则的右部不能为零。 例如:n=234。有规则(k=2): 2-> 5 3-> 6 上面的整数 234 经过变换后可能产生出的整数为(包括原数): 234 534 264原创 2016-12-07 16:28:06 · 763 阅读 · 0 评论 -
洛谷 P2502 [HAOI2006]旅行
题目描述Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光。Z小镇附近共有N个景点(编号为1,2,3,…,N),这些景点被M条道路连接着,所有道路都是双向的,两个景点之间可能有多条道路。也许是为了保护该地的旅游资源,Z小镇有个奇怪的规定,就是对于一条给定的公路Ri,任何在该公路上行驶的车辆速度必须为Vi。速度变化太快使得游客们很不舒服,因此从一个景点前往另一个景点的时候,大家都希望选择行使原创 2017-02-14 21:06:40 · 502 阅读 · 0 评论 -
洛谷 P2024 食物链
题目描述动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A 吃 B,B吃 C,C 吃 A。现有 N 个动物,以 1 - N 编号。每个动物都是 A,B,C 中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这 N 个动物所构成的食物链关系进行描述:第一种说法是“1 X Y”,表示 X 和 Y 是同类。第二种说法是“2 X Y”,表示 X 吃 Y 。此人对 N 个动物,用原创 2017-02-23 16:25:03 · 456 阅读 · 0 评论 -
SSL P1407【树】哈夫曼树(一)
Description假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为7、19、2、6、32、3、21、10。试为这8个字母设计哈夫曼编码。如果用二进制数表示这8个字母的编码方案.(请按照左子树根节点的权小于等于右子树根节点的权的次序构造)Input第一行为字母的个数n; 第二行至第n+1行分别为各个字母在电文中出现的频率; Output按照中序遍历输出各个编码Sample In原创 2016-12-10 10:45:09 · 1716 阅读 · 0 评论 -
SSL P1409【树】哈夫曼树(三)
Description根据传送的一串字符出现的频率,设置其相应的哈夫曼编码Input一串字符Output哈夫曼编码(按照中序遍历输出各个字母和编码,中间用冒号分开)Sample InputXINNNMM Sample OutputN:0 M:10 X:110 I:111 哈夫曼树: 1.记录每个字符出现的次数,并且记录这个字符。 2.去重复字符。 3.建哈夫曼树。 4.访问输出。原创 2016-12-22 16:37:18 · 575 阅读 · 0 评论 -
SSL P1408【树】哈夫曼树(二)
Description有n(n<=26)个带权结点,从a开始的n个字母分别表示这n个结点,他们分别代n个权值,试以它们为叶子结点构造一棵哈夫曼树(请按照左子树根节点的权小于等于右子树根节点的权的次序构造,若两结点相等时,按照字典顺序分别为左子树和右子树)。 最后求出该哈夫曼树的带权路径长度.Input第一行为一个n的值;第二行为n个字母,中间用空格分开;第三行为n个数字,分别表示着n个字母代表的数值原创 2016-12-21 17:28:42 · 850 阅读 · 0 评论 -
SSL P2209 数数
Description给出n个正整数,请你数出其中有多少对数的和小于等于s。Input第1行两个正整数n,s。 第2行n个正整数,表示给出的数。Output只有一个数,如题目要求所示。Sample Input4 6 3 5 2 1 Sample Output4 Hint数据范围 对于50%的数据,n<=1000; 对于100%的数据,n<=100000,给出的数以及s都小于等于10原创 2016-12-02 21:08:31 · 576 阅读 · 0 评论