2010 East Central Regional Contest

2010  East Central Regional Contest
声明:本博菜,只做水,未给出程序的题目待补充。

题目网址:
http://acm.ashland.edu/

【Problem A】 Cut It Out!
【Problem B】 Flip It
    简单的模拟题。
    把一个卡片矩阵通过四种操作翻成一叠,从 bottom 向 top 输出正面朝上的卡片编号。
    每个矩阵的元素一个栈,每次按照命令执行即可。
   


【Problem C】
    中等的广度优先搜索题,对练习编码速度比较有好处。
    题目比较难懂(至少对我而言),解释一下:
 一个 n*n*n 的立方体,中间 <1,1,1>-<n-2,n-2,n-2> 这个被挖空,剩下三维立方体的6个面(具体信息由题目给出)。然后在<1,1,1>有一个 Marker ,有三根无线长的棒子穿过它,当你移动 Marker 时,由于三根棒子连在一起,所以会受到六个面的阻碍,求 Marker 到达 <n-2,n-2,n-2> 的最少步骤。
    可以仔细看看题目中的图像。
    状态还是比较好确定的,就用 Marker 的坐标<x,y,z>作为一个状态即可。然后,将看<x,y,z>映射到六个面上的格子是否皆可移动,若是,则 Marker 可以移动,否则,不可移动。这样生成状态即可。
   其实,跟 2D 迷宫也是差不多的。
  


【Problem D】
【Problem E】
【Problem F】
     比较经典的动态规划。
     题目描述:Bob 有 M 美元,要向 N 个地区进行投资,以获得更高的选票,对 p 区投资x元后最终

的投票比例为 F(p , x) = I(p) + delta * x/(x+10.1) , 请问 Bob 应该怎样投资?请输出最高票数及投资

分布(注意:投资数按字典序从大到小)。
     思路分析: opt[i,j]表示对 percincts_0 , percincts_1 .... , percincts_i 前面 i 个区一共投资 j 美元

可获得的最高票数。则有动态转移方程为:
     opt[i , j] = max ( opt[i-1 , j - k] + f(i ,k))    0<=k<=j .
     递推理由其实就是依次枚举地区 i 的投资金额。
     问题的难点在于找到最大字典序的一个投资分布:先按照逆序完成动态规划,按照从顶上向上的
原则递归选择使得 opt[i-1 , j-k] + f(i,k) == opt[i ,j] 成立的最大 k 即可。
     具体可以参考程序。


【Problem G】Vampires!
    依旧模拟题。也是练习编码速度的考题。
    其实跟模拟机器人走迷宫差不多。
  


【Problem H】

 

posted on 2010-11-15 23:55 IronOxide 阅读(400) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年10月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿

随笔分类

随笔档案

ACMer

方向

搜索

最新评论

阅读排行榜

评论排行榜