标签:
今天是参加讲授的第一天。上午主要学习了一部分的DP选讲和线段树的运用,下午是练习测试。这里将今天所学的知识点做一个清理和总结消化。
上午 - DP选讲
Part 1
酱神寻宝(CDOJ1141)
题意:
酱神来到了一座小岛,岛上有n个箱子。一共有3中不同的钥匙,金钥匙、银钥匙和万能钥匙。酱神一开始有a把金钥匙、b把银钥匙和c把万能钥匙。第i个箱子上有xi把金锁,yi把银锁。金钥匙只能打开金锁,银钥匙只能打开银锁,万能钥匙两种锁都能打开。用于打开锁的钥匙会立刻损坏,酱神会丢掉损坏的钥匙。箱子里有ai把金钥匙、bi把银钥匙和ci把万能钥匙,想要取出箱内的钥匙必须要打开这xi+yi把锁。酱神的目的是使他拥有的钥匙总数最多。一旦酱神认为自己已经拥有了最多的钥匙,他就不会去开剩下的箱子了。
思路:
Part 2
题意:
Alice从[l1,r1]中选出一个数字x,JSL看到这个数字之后从[l2,r2]中取出一个数字y(y可能和x相同)。最后他们计算出数字z=x⊕y(⊕为异或运算)。Alice希望z尽可能大,而JSL希望z尽可能小。Alice和JSL都很聪明,那么z最后会是多少?
思路:
游戏存在明显的先后顺序,Alice已知JSL是会尽可能地选一个数使z变小。所以我们可以想出暴力程序:首先枚举 i ,表示Alice能选择的数 ( l1 ≤ i ≤ r1 );而后枚举 j ,表示JSL能选择的数( l2 ≤ j ≤ r2 )。则每次在(r2 - l2)个 j 中选出能使z最小的 j (此处模拟了JSL的选择),然后在(r1 - l1)个 i 中确定出能使z最大的 i (Alice的选择)。从而得到要求的z。Part 3
酱神的旅行(CDOJ1140)
题意:
酱神要去一棵树上旅行。酱神制定了一个旅行计划,他要按顺序去m个树上的结点,a1,a2,a3,...,am。酱神有一辆车,树上的每一条边既可以开车通过,也可以走过去,两种方法需要不同的时间。如果选择走路,酱神需要先把车停在结点上,在他下一次要开车的时候,必须先回到停车的结点取车。酱神和他的爱车一开始都在a1结点上,酱神要依次访问完这m个结点最少需要多少时间。
思路:
首先这题看上去像是一道树形DP,似乎需要按照树的路径进行遍历。但实际上需要去的节点的顺序是规定了的,也就说酱神的旅行是有规定的路径的。所以先暴力dfs将路径求出来,保存在数组中,再到数组里进行DP。标签:
原文地址:http://www.cnblogs.com/hy-dgj/p/4693213.html