自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 收藏
  • 关注

原创 noip2014

noip2014珠心算试题一(count.pas) 【问题描述】 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。 某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正 整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和

2015-07-10 11:31:35 646

原创 问题 C: 求最小公倍数

题目描述输入两个正整数a和b,求a、b的最小公倍数。 输入输入只有一行,两个正整数a、b(09)。 输出输出只有一行,为a、b的最小公倍数。 样例输入2 5样例输出10提示注意数据的范围!!var m,n:longint;function gcd(a,b:longint):longint;begin if b=0 then

2015-07-10 09:47:38 421

原创 问题 B: 求最大公约数

题目描述求两个正整数m、n的最大公约数。 输入输入只有一行,为两个正整数m,n(09)。 输出输出只有一行,为m和n的最大公约数。 样例输入3 6样例输出3提示求最大公约数一般用辗转相除法:在数学中,辗转相除法,又称欧几里得算法,辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数。例如,252和1

2015-07-10 09:47:36 674

原创 问题 A: 分解质因数(Primefac) [1*]

题目描述分解质因数Prime factor(Primefac) 【问题】求正整数n的质因子,输出如下形式: 100=2*2*5*5 【输入】一个【输出】按题目要求的形式输出n的质因子 输入输出样例输入样例输出Const max=32000;var a:array[2..max]of boolean;    p:array[1..3500]of word;   

2015-07-10 09:47:33 975

原创 问题 H: Frog青蛙的约会【浙江省选2002】

题目描述Frog青蛙的约会 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝着对方那里跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然

2015-07-10 09:47:30 485

原创 问题 B: 排队打水问题(water) [2*]

题目描述排队打水问题(water) 【问题】 有n个人排队到m个水龙头去打水,他们装满水桶的时间t1, t2 , ……, tn为整数且各不相同,应如何安排他们的打水顺序才能使他们花费的总时间最少? 【输人样例】4 2 ( n m ) 【输出样例】23(所有人的花费时间总和) 2 6 4 5 (t1 t2 …… tn) 输入输出样例输入样例输出提示va

2015-07-10 09:47:28 1048

原创 问题 G: 均分纸牌

有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若于张纸牌,然后移动。  移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。  现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。  例如 N=4,4

2015-07-10 09:47:25 637

原创 问题 A: [贪心算法]删数问题

删数问题 delete.pas/c/cpp 输入一个高精度的正整数n(【输入样例】1754384【输出样例】13var s:string; i,n,j,k:longint;begin readln(s); readln(n); i:=1; for j:= 1 to n do  for i:= 1 to length(s) do   if i=length(s) then    begin 

2015-07-10 09:47:22 915

原创 2015年07月06日

var s:string; i,n,j:longint;begin readln(s); readln(n); i:=1; for j:= 1 to n do  for i:= 1 to length(s) do   if i=length(s) then    begin     delete(s,i,1);     break;    end else   if s[i]>s[i+1] the

2015-07-10 09:47:20 255

原创 NOIP2010提高组复赛试题

1.机器翻译 (translate.pas/c/cpp)【问题描述】小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这

2015-07-10 09:47:17 542

原创 问题 B: 亲戚

题目描述        或许你并不知道,你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。如果能得到完整的家谱,判断两个人是否亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使得家谱十分庞大,那么检验亲戚关系实非人力所能及。在这种情况下,最好的帮手就是计算机。为了将问题简化,你将得到一些亲戚关系的信息,如Marry和Tom是亲戚,Tom和Ben是亲戚,等等。

2015-07-10 09:47:11 445

原创 分治求最大最小

var x:array[1..1000]of integer;    i,n,maxx,minn:integer;procedure pd(r1, r2:integer;var maxx,minn:integer);  var max1,min1,max2,min2,d:integer;begin  if(r1=r2) then   begin    maxx:=x[r1];    minn:=x

2015-07-10 09:47:09 282

原创 高精乘

vari,j,la,lb,len:integer;s1,s2:string;m:longint;a,b,c:array[1..250] of integer;beginreadln(s1);la:=length(s1);readln(s2);lb:=length(s2);for i:=1 to la doa[i]:=ord(s1[la-i+1])-48;for i:=1 to lb dob[i]:

2015-07-10 09:47:06 303

原创 高精减

代码一:const max=200;var  s,sa,sb:string;  a,b:array[1..max] of integer;  len,la,lb, i:integer;  fh:char;begin   readln(sa);   readln(sb);   if sa=sb then begin writeln(0);halt;end;   if (length(sa)     

2015-07-10 09:47:03 489

原创 高精度加法

代码一:program gaojingjia;const max=200;var  sa,sb:string;  b:array[1..max] of integer;  a:array[1..max+1] of integer;  len,la,lb, i:integer;beginreadln(sa); readln(sb);fillchar(a,sizeof(a),0);  fillchar

2015-07-10 09:47:00 315

原创 问题 D: 合唱队形

题目描述N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。  合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1 Ti+1 > … > TK (1≤i≤K)。  你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。输入输入文

2015-07-10 09:46:57 370

原创 最后一题

program problem_f;type int=longint;const inf='f.in'; outf='f.out'; mapxy1=5; maxn=mapxy1*mapxy1; maxrinhp=16; maxt=34; dx:array[0..3] of int=(-1,0,1,0); dy:array[0..3] of int=(0,-1,0,1); dn:array[0..4

2015-07-10 09:46:54 342

原创 问题 C: 求最长上升序列

题目描述      设有由n个不相同的整数组成的数列,记为:b(1)、b(2)、……、b(n)且b(i)j),若存在i1       例如13,7,9,16,38,24,37,18,44,19,21,22,63,15。例中13,16,18,19,21,22,63就是一个长度为7的不下降序列,同时也有7 ,9,16,18,19,21,22,63长度为8的不下降序列。输入只有一行,为若干正整数(最多1

2015-07-10 09:46:54 670

原创 最后一题

program problem_f;type int=longint;const inf='f.in'; outf='f.out'; mapxy1=5; maxn=mapxy1*mapxy1; maxrinhp=16; maxt=34; dx:array[0..3] of int=(-1,0,1,0); dy:array[0..3] of int=(0,-1,0,1); dn:array[0..4

2015-07-10 09:46:52 272

原创 2015年06月06日

【问题描述】设有一个三角形的数塔,顶点结点称为根结点,每个结点有一个整数数值。从顶点出发,可以向左走,也可以向右走。如图1所示。寻找一条从根结点到达数塔最底层的路径,使得路径上结点的和为最大。 【输入格式】 第一行:一个整数n(n),表示数塔共有n层。 以下n行(第2行至第n+1行): 第i行有i个整数,每个整数不超过10000, 依次是此行结点上的数值,整数之间用空格隔开。

2015-07-10 09:46:51 432

原创 2015年06月06日

@echo off echo 我们现在来玩个游戏! echo 嗯! 游戏即将开始! echo ************************ echo *                       * echo *                       * echo *                       * echo *       ╭^^^╮       * echo *  

2015-07-10 09:46:49 300

原创 尾声-怪盗基德的逃离

背景 Background    怪盗基德第四次拿着战利品信心满满地离开了OIBH总部,一路上大摇大摆,好不嚣张。OIBH的人看不下去又没办法,打算作罢,可是有一天……当当当当……当OIBH总部的吃饭铃声响起的时候,所有正在埋头工作的大牛们都以迅雷不及掩耳盗铃之势向食堂冲去。食堂的大门顿时被人群塞的鼓鼓的(可怜ing...)当大牛们正在全力消灭由水稻演变而来的那东西时,突然

2015-07-10 09:46:46 531

原创 单挑女飞贼

[描述]在一个夜黑风高,伸手不见五指的深夜,睡梦中的林月如突然听到房外一阵躁动。她出去一看,发现一个女飞贼抢了一个古董商的包袱。"站住!""那你为什么不来追我?""因为程序设计,在李大哥来之前,我不能追你。""那李逍遥为什么不来呢?""大概程序出bug了吧"……………………………………………… 终于,在登了一个又一个时辰后,林月如终于忍不住了,开始向女飞贼发起进攻。"喂!你为什么可以动

2015-07-10 09:46:43 1860

原创 2015年05月24日

program num8;const n=1500;waymax=4;      dx:array[1..4]of longint=(0,1,0,-1);      dy:array[1..4]of longint=(1,0,-1,0);type sh=array[1..3,1..3]of longint;var state:array[1..n]of sh;    father,b:array[

2015-07-10 09:46:40 219

原创 迷宫

program migong;type node=record          xx,yy:longint;     end;     all=array[1..10,1..10]of longint; const n=400; dx:array[1..4]of longint=(0,1,0,-1); dy:array[1..4]of longint=(1,0,-1,0); a:all=((0,

2015-07-10 09:46:37 239

原创 2015年05月01日

program tppx;const maxn=100;var map:array[1..maxn,1..maxn]of longint; into:array[1..maxn]of longint; n,i,j,k:longint; procedure init; var  i,j:longint; begin read(n); for i:=1 to

2015-07-10 09:46:35 208

原创 spfa

program spfa;constmaxp=10000;varp,c,s,t:longint;a,b:array[1..maxp,0..maxp]of longint;d:array[1..maxp]of longint;v:array[1..maxp]of boolean;dist:array[1..maxp]of longint;head,tail:longint;procedure ini

2015-07-10 09:46:32 212

原创 问题 H: 查找细胞

题目描述一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。输入第一行输入n,m;表示n行m列矩阵。接下来输入该n*m矩阵输出细胞个数样例输入4 100234500067 1034560500 2045600671 0000000089样例输出4program xibao;const dx:array[1..4]

2015-07-10 09:46:29 742

原创 26991: 带负权的单源最短路

题目描述 输入一个有向网络图,边的权值可正可负,求顶点到其他各点的最短路。输入第一行输入n,表示n个结点(默认顶点为0号)接下来输入n*n矩阵。表示各边的权值。输出输出一行,如果有负权回路输出“not possible”,否则输出顶点0到其他点的最短路,输出答案之间仅有一个空格,结尾没有空格。样例输入40 0 -3 02 0 0 00 -1 0 -40 0 0 0样

2015-07-10 09:46:27 1076

原创 1765: 算法7-9:最小生成树

题目描述最小生成树问题是实际生产生活中十分重要的一类问题。假设需要在n个城市之间建立通信联络网,则连通n个城市只需要n-1条线路。这时,自然需要考虑这样一个问题,即如何在最节省经费的前提下建立这个通信网。 可以用连通网来表示n个城市以及n个城市之间可能设置的通信线路,其中网的顶点表示城市,边表示两个城市之间的线路,赋于边的权值表示相应的代价。对于n个顶点的连通网可以建立许多不同的生成树

2015-07-10 09:46:24 1697

原创 26935: 笛卡尔树

题目描述【问题描述】      笛卡尔树(Cartesian Tree)是一种特殊的二叉搜索树。让我们复习一下:二叉搜索树是一颗有根二叉树,并且对于每个结点x都满足:它左子树中的任何结点的权值都小于x的权值,它右子树中任何结点的权值都大于x的权值。让我们形式化定义:假设x的左子树为L(x),x的右子树为R(x),x的权值为k(x)。则一颗满足如下条件的二叉树称为二叉搜索树:     如果点y在L(

2015-07-10 09:46:21 604

原创 1763: 算法7-6:图的遍历——广度优先搜索

题目描述广度优先搜索遍历类似于树的按层次遍历的过程。其过程为:假设从图中的某顶点v出发,在访问了v之后依次访问v的各个未曾被访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使“先被访问的顶点的邻接点”先于“后被访问的顶点的邻接点”被访问,直至图中所有已被访问的顶点的邻接点都被访问到。若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作为起始点。重复上述过程,直至图中

2015-07-10 09:46:19 1187

原创 1762: 算法7-4,7-5:图的遍历——深度优先搜索

题目描述深度优先搜索遍历类似于树的先根遍历,是树的先根遍历的推广。其过程为:假设初始状态是图中所有顶点未曾被访问,则深度优先搜索可以从图中的某个顶点v出发,访问此顶点,然后依次从v的未被访问的邻接点出发深度优先遍历图,直至图中所有和v有路径相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作为起始点,重复上述过程,直至图中所有顶点都被访问到为止。 其算法可

2015-07-10 09:46:16 1558

原创 1779: 算法10-10,10-11:堆排序

题目描述堆排序是一种利用堆结构进行排序的方法,它只需要一个记录大小的辅助空间,每个待排序的记录仅需要占用一个存储空间。首先建立小根堆或大根堆,然后通过利用堆的性质即堆顶的元素是最小或最大值,从而依次得出每一个元素的位置。堆排序的算法可以描述如下:在本题中,读入一串整数,将其使用以上描述的堆排序的方法从小到大排序,并输出。输入输入的第一行包含1个正整数n,

2015-07-10 09:46:13 654

原创 1777: 算法10-6~10-8:快速排序

题目描述快速排序是对起泡排序的一种改进。它的基本思想是,通过一趟排序将待排序的记录分割成两个独立的部分,其中一部分记录的关键字均比另一部分的关键字小,在分成两个部分之后则可以分别对这两个部分继续进行排序,从而使整个序列有序。快速排序的算法可以描述如下:在本题中,读入一串整数,将其使用以上描述的快速排序的方法从小到大排序,并输出。输入输入的第一行包含1个正整数n,表示共有n个整数需要参与排序。其中n

2015-07-10 09:46:11 2213

原创 26886: 树的路径

题目描述给定一棵二叉树和两个不同的节点,求出他们到最近的公共祖先父节点的路径。已知该二叉树有n个节点,标号1..n。(n输入输入: 第一行两个整数x,y,表示需要求的节点; 以下若干行,每行两个整数a和b,表示a的父节点是b。 输出X到y的路径。 样例输入9 72 13 24 25 38 59 56 47 4样例输出9 5 3 2 4 7 program x

2015-07-10 09:46:08 262

原创 26885: 树的公共祖先

题目描述给定一棵二叉树和两个不同的节点,求出他们最近的公共祖先父节点。已知该二叉树有n个节点,标号1..n。(n输入输入: 第一行两个整数x,y,表示需要计算的节点; 以下若干行,每行两个整数a和b,表示a的父节点是b。 输出输出: X与y的最近公共祖先root。 样例输入9 72 13 24 25 38 59 56 47 4样例输出2program p26885;

2015-07-10 09:46:05 479

原创 26847: 二叉树的遍历

题目描述建立二叉树,然后实现:输出先序遍历、中序遍历、后序遍历的结果。 输入第一行:结点个数n。 以下行:每行3个数,第一个是父亲,后两个依次为左右孩子,0表示空。 输出输出:根、先中后序遍历结果。 样例输入81 2 42 0 04 8 03 1 55 6 06 0 78 0 07 0 0样例输出33 1 2 4 8 5 6 7 2 1 8 4 3 6

2015-07-10 09:46:02 541

原创 26791: 找树根和孩子

题目描述给定一棵树,输出树的根root,孩子最多的结点max以及他的孩子。 输入第一行:n(结点个数),m(边数)。 以下m行;每行两个结点x和y,表示y是x的孩子。 输出第一行:树根:root。 第二行:孩子最多的结点max。 第三行:max的孩子。 样例输入8 74 14 21 31 52 62 72 8样例输出426 7 8program p26791

2015-07-10 09:46:00 1529

原创 【转载】自学视频教程--数据结构篇

第一讲  队列教学视频   教学课件 密码: a7xy   作业:周末舞会  查找细胞  合并石子第二讲 栈教学课件  密码: 4rn2作业:出栈合法性  进制转换  表达式括号匹配  程序员输入问题  自然数有序拆分  中缀转后缀  后缀表达式求值  中缀表达式求值第三讲 树教学视频  教学课件 密码:umsm作业:树的数量  找树根和孩子 单词查找树  2450: 树的

2015-07-10 09:45:57 593

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除