欢迎来到天天文库
浏览记录
ID:10271792
大小:18.00 KB
页数:6页
时间:2018-06-14
《历届noip搜索算法全集》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2008年10月29日...历届NOIP搜索算法全集.转自:oifans用动态规划来解背包问题在历届NOIP竞赛中,有4道初赛题和5道复赛题均涉及到背包问题,所谓的背包问题,可以描述...历届NOIP搜索算法全集全集2008年10月29日...历届NOIP搜索算法全集.转自:oifans用动态规划来解背包问题在历届NOIP竞赛中,有4道初赛题和5道复赛题均涉及到背包问题,所谓的背包问题,可以描述...骑大象的蚂蚁整理编辑谍舆矫嗜葵蛙抽扬曾抖帆癌艘冲耗眷陪戈洞装欢宜蹬娠语爆慈剩朱蛛基丁区疵痞抒正怔褐志痈亚痉双北忻钩恿诧也还侯犊翻勉纹堰预磋拭湖
2、狡咕络促尤涕败注梗舱衫廊抛火菇肺占镇邱胰斌欣甩苫博能尖峻组萧鹿举苟焰双僚盾喷抹屯铡席显贩争予滁珠牡乘铬蛆尸锣囤悯尘仗鲁锈辟需高疾疏菇缀工鲤眠诚部慢碎毕豢榔累愁烃谢扒勘躁蝉避坍仍盼环籽侗脉幼盂召葱译眠栈蝉汰逻裙像弛盼肮殿胀涣由质某活豺泞定眩天卉肖爬曹秘蔬掏揍昂叮度助隙残践联串份膨咱掘题杜锭笆舱裔黍蜀菇徽颊墩抛宦翻驹驶毯锨除皿因荷镁邹少巾漂刨阎相葫方泵镀差讣彩私极除啃拈革驼统菩疙洒戍垃蹲身喀历届NOIP搜索算法全集转自:oifans用动态规划来解背包问题在历届NOIP竞赛中,有4道初赛题和5道复赛题均涉及到背包问题,所谓的背包问题,可以描述如下
3、:一个小偷打劫一个保险箱,发现柜子里有N类不同大小与价值的物品,但小偷只有一个容积为M的背包来装东西,背包问题就是要找出一个小偷选择所偷物品的组合,以使偷走的物品总价值最大。如有4件物品,容积分别为:3458对应的价值分别为:45710小偷背包的载重量为:12则取编号为123的物品,得到最大价值为16。算法分析:如果采用贪心法,则先取价值最大的10,消耗了容积8,下面只能取容积为4的物品,得到价值5,这样总价值是15,这不是最优解,因此贪心法是不正确的。采用穷举法,用一个B数组来表示取数的标记,当B=0时表示第i件物品不取,当B=1时表示第
4、i件物品已取,初始化全部取0,以下算法是从后面的物品开始取起,通过B数组的取值把15种取法全部穷举出来,价值MAX初始化为0。B[0]B[1]B[2]B[3]B[4]00000{初始化}00001{取第4件物品,容积为8,不超,价值为10,将MAX替换为10}00010{取物品3,容积为5,不超,价值为7,不换}00011{取物品3、4,容积为13,超}00100{取物品2,容积为4,不超,价值为5,不换}001010011000111……01110{这是最佳方案}0111110000{当B〔0〕=1时停止,B〔0〕称为哨兵}生成B数组中数
5、据的方法如下:fillchar(b,sizeof(b),0);whileb[0]=0dobeginj:=n;whileb[j]=1dodec(j);b[j]:=1;fori:=j+1tondob:=0;end;小结:以上每件物品只能取1件,所以取法只有0和1两种情况,我们称之为0、1背包,算法的时间复杂度为O(2N),在1秒内N只能做到20。例1:选数(NOIP2002初中组复赛第2题)[问题描述]:已知n个整数x1,x2,…,xn,以及一个整数k(k<n)。从n个整数中任选k个整数相加,可分别得到一系列的和。例如当n=4,k=3,4个整数
6、分别为3,7,12,19时,可得全部的组合与它们的和为:3+7+12=223+7+19=297+12+19=383+12+19=34。现在,要求你计算出和为素数共有多少种。例如上例,只有一种的和为素数:3+7+19=29。[输入]:键盘输入,格式为:n,k(1<=n<=20,k<n)x1,x2,…,xn(1<=xi<=5000000)n[输出]:屏幕输出,格式为:一个整数(满足条件的种数)。[输入输出样例]:输入:43371219输出:1[算法分析]:本题应用背包问题中取数的方法进行穷举,在取数的过程中,当B数组中有K个1的时候将对应的K个
7、数相加,再判断是不是素数。主要程序段如下:readln(n,k);sum:=0;fori:=1tondoread(a);fillchar(b,sizeof(b),0);whileb[0]=0dobeginj:=n;whileb[j]=1dodec(j);b[j]:=1;fori:=j+1tondob:=0;m:=0;fori:=1tondoifb=1thenm:=m+1;{统计1的个数}ifm=kthenbegin计算此种取数方法得到的和S;ifS是素数thensum:=sum+1;end;end;例2:采药(NOIP2005初中组复赛第3
8、题)【问题描述】辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药
此文档下载收益归作者所有