- 博客(42)
- 资源 (6)
- 收藏
- 关注
原创 选课_DP
/*选课来源:VIJOS P1180【问题描述】学校实行学分制。每门的必修课都有固定的学分,同时还必须获得相应的选修课程学分。学校开设了N(N在选修课程中,有些课程可以直接选修,有些课程需要一定的基础知识,必须在选了其它的一些课程的基础上才能选修。例如《Frontpage》必须在选修了《Windows操作基础》之后才能选修。我们称《Windows操作基础》是《Frontpage
2014-05-08 19:54:39
901
原创 加分二叉树_DP
加分二叉树(binary.pas/c/cpp)来源:NOIP2003(提高组)【问题描述】 设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下: subt
2014-05-08 10:06:36
1023
原创 盖房子_DP
盖房子来源:VIJOS P1057【问题描述】永恒の灵魂最近得到了面积为n*m的一大块土地(高兴ING^_^),他想在这块土地上建造一所房子,这个房子必须是正方形的。但是,这块土地并非十全十美,上面有很多不平坦的地方(也可以叫瑕疵)。这些瑕疵十分恶心,以至于根本不能在上面盖一砖一瓦。 他希望找到一块最大的正方形无瑕疵土地来盖房子。 不过,这并不是什么难题,永恒の
2014-05-07 20:30:23
804
原创 能量项链_DP
/*能量项链(energy.pas/c/cpp) 【问题描述】在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释
2014-05-06 22:23:17
629
原创 石子合并_DP
石子合并(stone.pas/c/cpp)来源:某年NOI(去巴蜀交)【问题描述】 在huanxing一个操场上摆放着一行共n堆的石子。现要将石子有序地合并成一堆。规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆石子数记为该次合并的得分。请编辑计算出将n堆石子合并成一堆的最小得分和将n堆石子合并成一堆的最大得分。【输入文件】输入第一行为n(n【输出文件】
2014-05-06 21:45:55
508
原创 【石子合并】_DP
【石子合并】 在一个直线操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。 试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。 【输入文件】包含两行,第1 行是正整数n(1第2行有n个数,分别表示每堆石子的个数。 【输出文件】输出两行。第1 行
2014-05-06 21:01:05
515
原创 任意石子合并_DP
有N堆石子,现要将石子有序的合并成一堆,规定如下:每次只能移动任意的2堆石子合并,合并花费为将的一堆石子的数量。设计一个算法,将这N堆石子合并成一堆的总花费最小(或最大)。此类问题比较简单,就是哈夫曼编码的变形,用贪心算法即可求得最优解。即每次选两堆最少的,合并成新的一堆,直到只剩一堆为止。证明过程可以参考哈夫曼的证明过程。 代码如下:
2014-05-06 20:29:01
646
原创 多多看DVD(加强版)_DP
多多看DVD(加强版)(watchdvd.pas/c/cpp)来源:本人原创【问题描述】 多多进幼儿园了,今天报名了。只有今晚可以好好放松一下了(以后上了学后会很忙)。她的叔叔决定给他买一些动画片DVD晚上看。可是爷爷规定他们只能在一定的时间段L看完。(因为叔叔还要搞NOIP不能太早陪多多看碟,而多多每天很早就困了所以只能在一定的时间段里看碟)。多多列出一张表要叔叔给她买N张
2014-05-06 10:30:03
716
原创 回文字符串_LCS
/*回文字符串时间限制:3000 ms | 内存限制:65535 KB 难度:4描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。 输入 第一行给出整数N(0<N
2014-05-05 15:30:39
530
原创 最长公共子序列_DP
最长公共子序列(lcs.pas/c/cpp)来源:《全国青少年信息学奥林匹克联赛培训教材》巴蜀在线评测系统【问题描述】 一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X= ,则另一序列Z= 是X的子序列是指存在一个严格递增的下标序列 ,使得对于所有j=1,2,…,k有 Xij=Zj 例如,序列Z=是序列X=的子序列,相应的递增下标
2014-05-04 21:56:04
566
原创 街道问题_DP
街道问题(way.pas/c/cpp)来源:《奥赛经典》(提高篇)【问题描述】如图所示的矩形图中找到一条从左下角到右上角的最短路径,图中数字表示边的长度。只能向右或向上走。 【输入文件】 第一行两个数,N,M 矩形的点有N行M列。(0 接下来N行每行M-1个数描述横向边的长度。 接下来N-1行每行M个数描述纵向边的长度。 边的长度小于10
2014-05-04 21:35:43
767
原创 Henry捡钱_DP
Henry捡钱 (money.pas/c/cpp)来源:Dream Team邀请赛【问题描述】最近,Henry由于失恋(被某大牛甩掉!)心情很是郁闷.所以,他去了大牛家,寻求Michael大牛的帮助,让他尽快从失恋的痛苦中解脱出来.Michael大牛知道Henry是很爱钱的,所以他是费尽脑水,绞尽脑汁想出了一个有趣的游戏,帮助Henry....
2014-05-04 20:59:12
777
原创 挖地雷问题_DP
挖地雷问题 (P3.pas/c/cpp)来源:NOIP1996(提高组)第三题(有改动) 【问题描述】 在一个地图上有N个地窖(N 图3当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷,然后可以沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。设计一个挖地雷的方
2014-05-04 20:40:46
2004
原创 新年趣事之打牌_DP
新年趣事之打牌★ 输入文件:bagb.in 输出文件:bagb.out 简单对比时间限制:1 s 内存限制:128 MB【题目描述】 过年的时候,大人们最喜欢的活动,就是打牌了。xiaomengxian不会打牌,只好坐在一边看着。 这天,正当一群人打牌打得起劲的时候,突然有人喊道:“这副牌少了几张!”众人一数,果然是少了。于是这副
2014-05-04 10:21:09
881
原创 Money Systems _DP
Money SystemsThe cows have not only created their own government butthey have chosen to create their own money system. In their own rebellious way,they are curious about values of coinage. Traditi
2014-05-04 09:18:57
600
原创 金明的预算方案_DP
金明的预算方案 (budget.pas/c/cpp) 来源:NOIP2006 第二题 【问题描述】 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是
2014-05-03 23:00:15
662
原创 开心的金明_DP
开心的金明 来源:NOIP2006(普及组)第二题 【问题描述】 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元。于是,他把每件物品规定了一个重要度,
2014-05-03 22:05:59
588
原创 采药_DP
采药 (medic.pas/c/cpp) 来源:NOIP2005(普及组) 第三题 【问题描述】 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。
2014-05-03 21:45:52
875
原创 积木城堡_DP
积木城堡描述 DescriptionXC的儿子小XC最喜欢玩的游戏用积木垒漂亮的城堡。城堡是用一些立方体的积木垒成的,城堡的每一层是一块积木。小XC是一个比他爸爸XC还聪明的孩子,他发现垒城堡的时候,如果下面的积木比上面的积木大,那么城堡便不容易倒。所以他在垒城堡的时候总是遵循这样的规则。 小XC想把自己垒的城堡送给幼儿园里漂亮的女孩子们,这样可以增加他的好感度。为了公平起见,他决
2014-05-03 21:03:19
1132
原创 砝码称重_DP
砝码称重 来源:NOIP1996(提高组) 第四题 【问题描述】 设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重 【输入文件】 a1 a2 a3 a4 a5 a6 (表示1g砝码有a1个,2g砝码有a2个,…,20g砝码有a6个,中间有空格)。 【输出文件】 Total=N
2014-05-03 19:55:29
859
原创 装箱问题_DP
装箱问题 (pack.pas/c/cpp) 来源:NOIP2001(普及组) 第四题 【问题描述】 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 【输入文件】
2014-05-03 19:41:40
573
原创 船_DP
船(ships.pas/c/cpp)来源:《奥赛经典》(提高篇)【问题描述】PALMIA国家被一条河流分成南北两岸,南北两岸上各有N个村庄。北岸的每一个村庄有一个唯一的朋友在南岸,且他们的朋友村庄彼此不同。每一对朋友村庄想要一条船来连接他们,他们向政府提出申请以获得批准。由于河面上常常有雾,政府决定禁止船只航线相交(如果相交,则很可能导致碰船)。你的任务是编写一个程序,帮助
2014-05-03 18:28:46
840
原创 逢低吸纳_DP
逢低吸纳 来源: USACO 4-3-1 【问题描述】 “逢低吸纳”是炒股的一条成功秘诀。如果你想成为一个成功的投资者,就要遵守这条秘诀: "逢低吸纳,越低越买" 这句话的意思是:每次你购买股票时的股价一定要比你上次购买时的股价低.按照这个规则购买股票的次数越多越好,看看你最多能按这个规则买几次。
2014-05-03 17:55:31
1414
原创 合唱队形_DP
合唱队形(chorus.pas/c/cpp) 来源:NOIP2004(提高组) 第一题 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1Ti+1>…>T
2014-05-03 17:38:19
578
原创 十进制转二进制(不区分正负数)
#include #include #include using namespace std; char s[100]="\0";int solve(int x){ int cnt=0; int i=0; unsigned int flag=1; while(flag){ if(x&flag)
2014-04-30 17:32:09
564
原创 整理试卷
2354:整理试卷 分数:2.3 时间限制:1 秒内存限制:32 兆特殊判题:否 提交:2解决: 2 题目描述小明是班里的C语言课代表,有一天他被C语言老师叫去把期中考试的试卷从旧办公室搬到新办公室去。老师之前已经按照成绩从低到高把试卷排好了,并且嘱咐小明搬的时候不要把试卷的顺序弄乱了。但巧的是,小明在搬着试卷走的过程中迎面走来一漂亮妹子,于是小明本能的目送
2014-04-30 13:03:10
940
原创 全排列
#include#includeconst int MAX = 100;void full_permutation(int a[], int n, int cur){ int i, num; if(cur == n)//递归的边界 { for(i=0; i<n; ++i) printf("%d ", a[i]); printf("\n"); }
2014-04-27 22:48:44
430
原创 最大公约数,最小公倍数
最大公约数,最小公倍数 /* 最大公约数,最小公倍数 语法:result=hcf(inta,int b),result=lcd(int a,int b) 参数: a:int a,求最大公约数或最小公倍数 b:int b,求最大公约数或最小公倍数 返回值:返回最大公约数(hcf)或最小公倍数(lcd) 注意: lcd需要连同hcf使用*/
2014-04-27 22:43:55
808
原创 数塔问题
数塔问题 (numtri.pas/c/cpp) 来源:IOI94 【问题描述】 考虑在下面被显示的数字金字塔。 写一个程序来计算从最高点开始在底部任意处结束的路径经过数字的和的最大。每一步可以走到左下方的点也可以到达右下方的点。 7 3 8 8 1 0
2014-04-27 22:18:19
648
原创 JS正则表达式大全
正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。-或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配
2014-04-27 21:09:03
486
原创 Flip Game
Flip GameTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 28824 Accepted: 12475DescriptionFlip game is played on a rectangular 4x4 field with two-sided pie
2014-04-27 20:30:11
595
原创 最少拦截系统_DP
/*最少拦截系统Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11544 Accepted Submission(s): 4542 Problem Description 某国为了防御敌国的导弹袭
2014-04-25 22:23:57
556
原创 ASCII码排序
/*ASCII码排序时间限制:3000 ms | 内存限制:65535 KB 难度:2描述 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。 输入 第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。 输出 对于每组输入数据,输出一行,字符中间用一个空格分开。
2014-04-25 21:45:36
585
原创 6174问题
/*--------6174问题-----------输入一个n位数,把所有数字从大到小排序得到a,从小到大得到b,然后用a-b替换原来这个数并且继续操作。1234 、4321-1234=3087、8730-378=8352、8532-2358=6174 样例输入:1234//样例输出:1234->3087->8352->6174->6174样例输出:4*/{CSDN:
2014-04-25 21:10:10
538
原创 EasyUI中在表单提交之前进行验证
EasyUi我们可以在客户端表单提交之前进行验证使用EasyUi我们可以在客户端表单提交之前进行验证,过程如下:只需在onSubmit的时候使用return $("#form1").form('validate')方法即可,EasyUi中form模块中的from('validate')方法会自行对我们 指定的表单中required=true等需要验证的的元素进行验证,但有不通过的元素时返
2014-04-25 08:55:46
1428
原创 随机分区
/* 随机分区 算法将数组 a[1],...,a[j] 进行随机分区,方法是随机产生一个分区元素,在下标h处插入val = a[i],这个位置正是数组排序后它应处的位置。当算法结束时,下标比h小的单元的值小于val,而下标比h大的单元的值大于或等于val,算法送 回下标h*/ InputParameters:a,i,j OutputP
2014-04-21 22:38:43
700
原创 随机选择
/* 随机选择 令val是数组 a[i],...,a[j] 已排序后位于下标k(i算法中使用随机分区算法*/InputParameters:a,i,j,kOuputParameter:arandom_select(a,i,j,k){ if(i p = random_partition(a
2014-04-03 11:19:16
564
原创 分区
/* 分区 算法将数组 a[1],...,a[j] 进行分区,方法是在下标h处插入val = a[i],这个位置正是数组排序后它应处的位置。当算法结束时,下标比h小的单元的值小于val,而下标比h大的单元的值大于或等于val,算法送 回下标h*/ InputParameters:a,i,j OutputParameter:a
2014-04-03 10:56:06
466
原创 计数排序和基数排序
/*算法将整数数组 a[1,...,a[n]]排序,每个整数的范围在0到m,包括0和m。*/InputParameters:a,mOutputParameter:acounting_sort(a,m){ //设置c[k]=数组a中值k出现的次数。 //开始将c初始换为0。 for k = 0 to m c[k] = 0 n
2014-04-03 10:02:32
473
原创 插入排序
插入排序:将数组A排序,首先将A[2]插入已经有序的数组A[1];再将A[3]插入已经有序的数组A[1],A[2];依次类推;最后将A[N]插入已经排好序的数组A[1],...,A[N].InputParameter:aOutputParameter:ainsertion_sort(a){ n=a.last; for i=2 to n{ val=a[i];
2014-04-02 22:32:47
449
二叉树先序、中序、后序三种遍历的非递归算法_此三个算法可视为标准
2013-05-19
Visual C++ 编程技巧精选500例
2012-11-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人