摘要:
题意:第一行数字是邮票的面值,每一个数字就是一个不同的种类,哪怕面值相同。第二行数字是顾客所需要的邮票总面值。每个数字就是一个顾客的需求。顾客是集邮爱好者,所以必须尽可能的给他不同种类的邮票。但是一位顾客最多只能拿4张邮票。满足顾客需求的解就是可行解。邮票种类最多的可行解为最优。如果存在两个以上的最优解的邮票种类是一样的,张数最少的更优张数也一样的话,这些最优解中最大面值较大的更优。若邮票种类、张数、最大面值三者都分别相同,则认为这些最优解相同,输出tie。没有解就是none。分析:1、最多拿四张邮票,如果同一面值的邮票种类超过5,以5计算。为什么不以4计算呢,因为tie。2、若DFS的深度超 阅读全文
摘要:
题意:游戏 http://www.hacker.org/push棋盘上有几个箱子,可以找个空地,放置'推子'。然后横向或竖向推动,直到遇到箱子,将箱子数减1,推到下一格,若下一格也有箱子,则两者相加。 推子在第一个箱子的原位置。 推子和箱子之间至少有一个空格才能撞动箱子。分析:深搜。找到任意一种解决方案即可。 注意: 一开始放推子的时候,只能放在空地上。 这点没注意到卡了N小时。char c[30][30];int a[30][30];int n,m,count,flag;int dir[2][4]={{ -1, 1, 0, 0 }, { 0, 0,-1, 1 ... 阅读全文
摘要:
1429题意:这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢的某些地方安装了带锁的门,钥匙藏在地牢另外的某些地方。刚开始Ignatius被关在(sx,sy)的位置,离开地牢的门在(ex,ey)的位置。Ignatius每分钟只能从一个坐标走到相邻四个坐标中的其中一个。魔王每t分钟回地牢视察一次,若发现Ignatius不在原位置便把他拎回去。经过若干次的尝试,Ignatius已画出整个地牢的地图。现在请你帮他计算能否再次成功逃亡。只要在魔王下次视察之前走到出口就算离开地牢,如果魔王回来的时候刚好走到出口或还未到出口都算逃亡失败。分析:用b[x][y][s]代表在x,y 阅读全文
摘要:
题意:密码是一个C进制的数,并且只能由给定的M个数字构成,同时密码是一个给定十进制整数N (0<=N<=5000)的正整数倍(如果存在多个满足条件的数,那么最小的那个就是密码), 最多只能保存500位密码.因此如果得到的密码长度大于500也不能用来开启房门,这种情况也被认为密码不存在.分析:广搜, 结构体记录 密码下标、前驱、余数、长度。每次(余数*进制+新数)%N 求得新的余数,若为0,则找到密码,若超过500位,则无解。余数如果以前出现过,则舍弃。bool b[15010];char c[20];int a[20];int T,N,C,M,p;struct node{ i... 阅读全文