水炸了。。
Asteroids
【题目描述】
N*N的方阵中有k个怪兽,每开一枪可以杀死一行或者一列中的所有怪兽。至少要开多少枪。
【输入描述】
第一行n,k
接下来k行,每一行一个坐标,表示对应的位置有怪兽
【输出描述】
一行为答案
【输入样例】
3 4
1 1
1 3
2 2
3 2
【输出样例】
2
【样例解释】
输入如下
X.X
.X.
.X.
X表示怪兽所在位置
【数据约定】
100%数据:N<=500,k<=1e5
Solution
为每行每列开个点,存在怪兽的格子连接所在行列表示的2个点,跑一次二分图最大匹配即可。
Boxes
2s,256M
【题目描述】
现在有n(<=1000)个盒子排成一圈,每个盒子里有一些小球或者没有小球,现在你可以对小球操作,每个小球移动到相邻盒子的一次代价为1,现在问最少花多少代价使得每个盒子里至少1个球。
【输入描述】
第一行为T(<5),表示数据组数。
对于每一组数据有2行,第一行为n,第二行n个数为每个盒子的情况,保证小球总数>=n
【输出描述】
输出T行,每一行为对于输入的答案
【输入样例】
1
4
2 0 0 2
【输出样例】
2
【数据约定】
50%数据:n<=50
Solution
明显的流动性,考虑费用流
用(a->b,c,d)表示建立a到b的边,容量为c,费用为d,有
(s,i,b[i],0)
(i,t,1,0)
(i,i+1,inf,1)
(i,i-1,inf,1)
好像有点问题。。
比如数据?
20
4 0 0 0 0 6 0 0 0 0 0 0 0 0 0 10 0 0 10 1
Cactus
http://blog.csdn.net/huanghongxun/article/details/51206589
Wormholes
【题目描述】
给出一张N个点的图,其中有M条带正权的双向边,有W条带负权的单向边。
试判断图中是否存在一个权和为负的环。
【输入描述】
第一行为数据组数F
对于每一组数据:
第一行为n,m,w
接下来m+w行,每行三个数,描述了各自类型的边。
先是M条带正权的双向边,再W条带负权的单向边。
【输出描述】
输出F行,为”YES”或”NO”
【输入样例】
2
3 3 1
1 2 2
1 3 4
2 3 1
3 1 3
3 2 1
1 2 3
2 3 4
3 1 8
【输出样例】
NO
YES
【数据约定】
数据组数不超过20组,n<=500,m+w<=10000
Solution
SPFA Bellman-Ford随便用。。