IDI Open 2007解题报告

1 A  Help Chelsea! Easy  输出一串数的最大值。。这个题目也太无聊了点吧。。

2 G Fridge of Your Dreams    Easy  这个题目更无聊,把24位的二进制转化为十进制。。

3 B Virus   Medium
先前想法:
可以很容易的想到这个问题是没有数学解的。。因为你必须在前n步中查询才能够获得我下一步的前进方向。只有这些值得到了才能够获得数学解
此时优化的余地就不是很大了。。所以我们采用模拟的解法,保存两个数组,一个是数量数组,一个是病毒量数组,然后依次模拟,判断现有的量是否已经超过了L,复杂度是O(NL)这个复杂度还是可以接受的吧。。虽然N<=10^9。。。
  很容易看出来这个是肯定超时的啦。。
  采用行列式来优化求解的技术是很值的借鉴的。
  有状态转移的时候,采用矩阵求解是具有很大优势的!与此同时,能够采用矩阵快速求幂的方法来求解。。
  但是没有想到怎么把二分加入到这当中去。。这还是一个问题!!
4  C Frogger  Hard

  真是一个非常强大的题目。。首先我们需要通过题目的定义,提出一个势能函数,此函数的值是坐标面中所有青蛙的和。当然在最优移动的过程中,这个势能函数的值是不变的。换句话说就是从位置-3,0  移动到-1,0 扩过了-2,0 在这个过程中 k(-3,0)+k(-2.0)=k(-1,0)这个函数必须满足,而且
k(0,3)+k(0,2)=k(0,1) 且k(0,-3)+k(0,-2)=k(0,-1)此时为我们提出了一个势能函数总体的形状。这个函数是一个凸函数,而且具有对称性。所以
很容易构造出来k^(d(x,y))  d(x,y)=|x-X|+|y|  d(x,y)代表此点到X,0点的曼哈顿距离。。然后我们列方程得到k=(sqrt(5)-1)/2注意到负值为什么
舍掉的原因是非凸性。所以下面开始求一下吧。。当我们把左半平面都摆上青蛙,结果是多少呢? 比较简单的等比数列就可以得到当X=5的时候,我们的sum=1...所以当X=5的时候,我们就不可能有青蛙能够达到X=5这一点,此时k^0=1...所以当X>=5的时候,都是impossible。。当X=4的时候,我们可以得到至少要19个最大势能值的青蛙才能够达到1。。但是19个是不行的。。然后当X=4的时候,得到的解答时20。。。OK了。。至于为什么19个不行。。可以用根铅笔搞出来也可以编程搞定。。

5  D Conquistador  Easy
  比较简单的一个题目,首先找到分隔点,然后依次分隔。。

6  E Party  Medium
  最大流问题。。也是比较简单的,。。建图,然后不断增加源点与女孩的那个分支的流量,可以使用binary Search。。

7 F Save the Computer
  看到了第一句。。Life as a computer sicence student is hard!内牛满面。。

  说实话,没词典。。这个题目没看懂。。。。

8 H Scorched Earth  Easy
  不得不感叹啊。。国外的物理题真简单。。。
  X轴Y轴两个方程联立搞定。。真没劲。。可以换另一种解法是将 重力加速度与w结合起来,然后在一个重力场中算轨迹
  可以求的是一个从当前重力场到参考重力场的一个变换,然后是已知两点和在一点出切线方向。。。当然可以求。。不过貌似更麻烦来着。。
  既然已经分解好了。。就借借东风好了。。

9 I Free Willy
  这套题里面的状态转移的题目还真是挺多的。。。
  首先给定一个初始状态,和一个目标状态。然后给出了最多10个变换的规则。求从初始状态到达目标状态所需要经历的最少的状态转移次数。
  熟悉线性代数的话,可以很容易的写出转移矩阵,而此时的转移矩阵求逆仍为其本身。所以我们考虑的思路就是从双向进行搜索。
这样子的时间复杂度是2*10^5 而不是之前的10^10这么多。。。

总结一下这套IDI 2007的题目。。
简单题目: A D G H
好题:
B 考察矩阵快速乘法与二分
C 考察数学直觉与推理
E 最大流的题目
F 一个比较好的数学背景,然后需要DP
I 状态转移题目,需要一些YY能力
BCEFI的代码需要好好搞一下。。。。欧洲人出的题目,代码质量一向非常高,既有Java也有C++,质量都不错。。

自己这个周,需要好好看一下最大流的题目。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值