topcoder SRM588 DIV1 解题报告
2013-08-20 18:35
489 查看
250':GUMIAndSongsDiv1
题意:A喜欢唱歌,现有n首歌,每首歌有时长Di和音调Ti两个参数,A唱完一首歌i后唱另一首歌j时,中间要休息|Di - Dj|的单位时间。问T时间内A最多唱多少首歌。
分析:对于选定的歌单,按Ti的升序或降序的顺序来唱一定是用时最少的,所以把歌曲按Ti排序再DP即可。
450':KeyDungeonDiv1
题意:有n(1~12)个门,每个门要用一定数量的红钥匙和绿钥匙来开(或者可以用白钥匙替代),每个门只能打开一次,打开后能提供一定量的红绿白钥匙,起始时有三种颜色的钥匙若干,问,手头最多能有多少把钥匙。
分析:对于所有的门有2^n个状态,如果某个状态是合法的,即能通过一定步骤打开一定的门,那么其三种颜色的钥匙的数量总数是一定的,这与开门顺序无关。然而考虑到白钥匙能开两种门,我们应尽量选择使得白钥匙更多的开门顺序。这样我们可以写个优先队列的dij,队列以状态下的白钥匙个数为排序的关键字。
1100':GameInDarknessDiv1
题意:给出一个树(节点数最坏情况在1000左右),现Alice和Bob在树中的两个不同的节点上,现Alice和Bob轮流在树上一步一步的移动(不能停在原地),移动过程中,Alice不知道Bob的具体位置(起始位置还是知道的),但Bob知道Alice的走法(两人采取最优策略,故Alice的走法其实已固定),问Alice能不能在1000000步数以内有完全的把握找到Bob。
分析:可以画图证明,如果Alice在找Bob的过程中如果要经过一个三路(四路的也行啊,就不细说了)岔口,且这三条路的长度都不小于3,那么Alice将永远找不到Bob,反之Alice可以找到。另外,假设刚开始两人距离为D,Alice刚开始至少会直奔Bob的位置而去,大概在D/2多一点点的位置(稍微推算一下,假设是P好了),Alice到了P以后就必须进行地毯式搜索了。所以整个图以P为界,在有B的那一边出现那个三路岔口Alice就永远找不到Bob了。至于题目中的1000000的步数限制,是节点数的平方以上,已经很大了,所以没有三叉口时,Alice找到Bob的步数肯定不会超过1000000,事实上不超过两倍的节点数。所以只要树DP来找三岔口就行了。
本人代码写得有点龊,就不贴了。
题意:A喜欢唱歌,现有n首歌,每首歌有时长Di和音调Ti两个参数,A唱完一首歌i后唱另一首歌j时,中间要休息|Di - Dj|的单位时间。问T时间内A最多唱多少首歌。
分析:对于选定的歌单,按Ti的升序或降序的顺序来唱一定是用时最少的,所以把歌曲按Ti排序再DP即可。
450':KeyDungeonDiv1
题意:有n(1~12)个门,每个门要用一定数量的红钥匙和绿钥匙来开(或者可以用白钥匙替代),每个门只能打开一次,打开后能提供一定量的红绿白钥匙,起始时有三种颜色的钥匙若干,问,手头最多能有多少把钥匙。
分析:对于所有的门有2^n个状态,如果某个状态是合法的,即能通过一定步骤打开一定的门,那么其三种颜色的钥匙的数量总数是一定的,这与开门顺序无关。然而考虑到白钥匙能开两种门,我们应尽量选择使得白钥匙更多的开门顺序。这样我们可以写个优先队列的dij,队列以状态下的白钥匙个数为排序的关键字。
1100':GameInDarknessDiv1
题意:给出一个树(节点数最坏情况在1000左右),现Alice和Bob在树中的两个不同的节点上,现Alice和Bob轮流在树上一步一步的移动(不能停在原地),移动过程中,Alice不知道Bob的具体位置(起始位置还是知道的),但Bob知道Alice的走法(两人采取最优策略,故Alice的走法其实已固定),问Alice能不能在1000000步数以内有完全的把握找到Bob。
分析:可以画图证明,如果Alice在找Bob的过程中如果要经过一个三路(四路的也行啊,就不细说了)岔口,且这三条路的长度都不小于3,那么Alice将永远找不到Bob,反之Alice可以找到。另外,假设刚开始两人距离为D,Alice刚开始至少会直奔Bob的位置而去,大概在D/2多一点点的位置(稍微推算一下,假设是P好了),Alice到了P以后就必须进行地毯式搜索了。所以整个图以P为界,在有B的那一边出现那个三路岔口Alice就永远找不到Bob了。至于题目中的1000000的步数限制,是节点数的平方以上,已经很大了,所以没有三叉口时,Alice找到Bob的步数肯定不会超过1000000,事实上不超过两倍的节点数。所以只要树DP来找三岔口就行了。
本人代码写得有点龊,就不贴了。
相关文章推荐
- TopCoder SRM144 DIV1(one)
- TOPCODER/SRM 566 DIVII(250、500、1000题)(1000PT暂未附上代码)
- Topcoder SRM 656 DIV2 1000 题解(动态规划)
- TopCoder SRM 668 Div2 Problem 1000 - AnArray (数学)
- 【TopCoder SRM 157 DIV 1】 Salary 解题报告
- topcoder srm 682 div1 -3
- topcoder SRM495 div1 level3
- [容斥] Topcoder SRM div1-3 12004. SetAndSet
- 【解题报告】 SRM412_div1_250pt 和 SRM411_div2_900pt
- Codeforces Round #225 (Div. 2)A:Coder 解题报告
- Topcoder SRM 652 DIV1 250
- TopCoder SRM 659 Div2 Problem 500 - PublicTransit (思维)
- Topcoder SRM 573 WolfPackDivTwo
- TopCoder SRM 649 Div2 Problem 500 - CartInSupermarketEasy (区间DP)
- TopCoder SRM 681 Div. 2 Problem 500 - ExplodingRobots (枚举)
- Top Coder SRM 614 DIV 2
- topcoder srm 518 div 2
- Topcoder SRM 585 DIV2 解题报告 //缺1000
- SRM528 DIV2 解题报告
- Topcoder SRM 668 DIV 2