2010 Europe - Northwestern
开的比赛地址:HUST VJ
UVALive 题目链接:here
A:
Fair Division
题目是给n个数,要在每一个数里面取出一部分来,组成和为p的。 尽量平分, 数值大、排在前面的先出。 直接暴力搞就可以了。
1 | /* *************** |
B:
Free Goodies
题目意思是:有n个东西,Petra and Jan两个人轮流取。 每个东西对两个人各有一个价值。 Petra每次取得原则是取对自己价值最大的,如果相同则取对Jan价值最小的。 Jan取得原则是让最后自己的总价值最大,相同的时候让Prtra的总价值最大。 题目输入了谁先取,以及每个东西对各个人的价值。 求最后他们得到的价值和。 这题其实重要的是Prtea取法简单。 可以把东西按照对Petra价值从大到小,相等则Jan价值从小到大。 然后进行DP, Jan 取得最大价值,前i个里面,Jan最多取一半。 然后进行DP转移就可以了。
1 | /* *************** |
C:
High Score
需要将一个全A的字符串,变换为目标串。 现在的位置在第1个。 每步操作可以左右移动,或者将字母翻到上一个或者下一个。 求最小步数。 直接枚举不需要变动的区间,走法就两种。
1 | /* *************** |
D:
Hill Driving
二分+判断。 二分速度,然后进行判断。 注意下坡的情况。 这题要1e-10才能A, 1e-8WA了好久。
1 | /* *************** |
E:
Rankings
这题不会有不确定的情况。 因为任意两个之间的先后顺序都是知道的,进行拓扑排序,就可以判断是不是存在了,按照顺序输出就是答案了。
1 | /* *************** |
F:
Risk
二分+ 最大流。 使用最大流去判断,经典的网络流构图。 注意二分上界的选取,不要选小了。
1 | /* *************** |
G:
Selling Land
这题主要是要看懂题目。 看懂了发现就是DP。 对每个空格子进行DP,找一个以这个格子为右下角的周长最长的矩形。 这题使用单调队列进行优化的做法非常经典,赞!!!!!新技能get 具体看代码吧。
1 | /* *************** |
H: 就是简单的模拟,读懂题意就可以了。
1 |
|
I:
Telephone Network
题目意思大致是 看那个图就知道了。 N输入,N输出的网络。N = 2^k 不停地分层。 2^k 输入输出的网络分成两个2^(k-1)输入输出的网络。 题目看起来很复杂。 其实很简单的一个题,题意太难懂了。 只需要在每个分层的时候,使用二分图染色,分层两部分。
1 | /* *************** |
J:
Wormly
比较简单的题目,模拟下。 贪心往前移动就可以了。
1 | /* *************** |