摘要: 题意:魔王将在T时刻吃掉公主,公主被关在一个两层的迷宫里,迷宫的入口是S(0,0,0),公主的位置用P表示,时空传输机用#表示,墙用*表示,平地用.表示。骑士们一进入时空传输机就会被转到另一层的相对位置,但如果被转到的位置是墙的话,那骑士们就会被撞死。骑士们在一层中只能前后左右移动,每移动一格花1时刻。层间的移动只能通过时空传输机,且不需要任何时间。如果骑士们在T时刻能找到公主就输出“YES”,否则输出“NO”。分析:简单广搜,要注意的是,一旦进入传输机就被传送到另一层,不能在传输机上停留。另外,若另一层的相对位置也是传输机,则不能传输,两个传输机都应视为墙。int dx[] = {-1,0, 阅读全文
posted @ 2013-05-28 20:15 心向往之 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题意:从 n (1<=n<=200)个候选人中选 m (1<=m<=20)人组成陪审团。控方和辩方给所有候选人打分D[i]和P[i],分值从0 到20。为了公平起见,法官选出陪审团的原则是:选出的m 个人,必须满足辩方总分D和控方总分P的差的绝对值|D-P|最小。如果有多种选择方案的|D-P|值相同,那么选辩控双方总分之和D+P最大的方案。分析:用dp(i,j)表示取i个候选人,差为j的总和。则转移函数为 dp(i, j) = max dp(i-1, j-Vt), (t在i-1个人中没被选到,Vt=Dt-Pt)。此题要记录选了哪些人,用path[i][j]表示dp[i] 阅读全文
posted @ 2013-05-28 18:47 心向往之 阅读(169) 评论(0) 推荐(0) 编辑