Paratroopers Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7267   Accepted: 2194 Description It is year 2500 A.D. and there is a terrible war between the forces of the Earth and the Mars. Recently, the commanders of the Earth are infor…
1.这道题学了个单词,product 还有 乘积 的意思.. 题意就是在一个 m*n的矩阵中,放入L个敌军的伞兵,而我军要在伞兵落地的瞬间将其消灭.现在我军用一种激光枪组建一个防御系统,这种枪可以安装在一行(或者一列),并且安装在不同行(或者不同列)的费用是不一样的,枪的攻击范围是一行(或者一列).安装所有枪的费用是它们每个费用的“乘积”,现在求组建这个系统需要的最小费用. 2.与前面做的二分图的一道题有点相似(POJ - 3041 Asteroids(最小点覆盖数)).但是现在这道题在不同行(…
Description It is year 2500 A.D. and there is a terrible war between the forces of the Earth and the Mars. Recently, the commanders of the Earth are informed by their spies that the invaders of Mars want to land some paratroopers in them× n grid yard…
http://poj.org/problem?id=3308 r*c的地图 每一个大炮可以消灭一行一列的敌人 安装消灭第i行的大炮花费是ri 安装消灭第j行的大炮花费是ci 已知敌人坐标,同时消灭所有敌人,问最小花费 花费为所有大炮消费的乘积 乘转加:log(a*b*c)=log(a)+log(b)+log(c) 经典的最小点权覆盖 源点向行连,列向汇点连 第i行j列有敌人,点i向点j连inf边 最小点权覆盖=最小割 #include<cmath> #include<queue>…
题意:N*M个格点,K个位置会有敌人.每行每列都有一门炮,能打掉这一行(列)上所有的敌人.每门炮都有其使用价值.总花费是所有使用炮的权值的乘积.求最小的总花费. 若每门炮的权值都是1,就是求最小点覆盖的问题,参考:http://poj.org/problem?id=3041 将行视作X部,列视作Y部,敌人(i,j)视作连接点i和点N+j的边,要求一个点集合,使其能覆盖所有的边,且权值之积最小,即求最小点权覆盖.与求最大权独立集一样,也是用网络流求解. 这里处理积的方法是,将权值取对数,则log(…
Description It is year 2500 A.D. and there is a terrible war between the forces of the Earth and the Mars. Recently, the commanders of the Earth are informed by their spies that the invaders of Mars want to land some paratroopers in the m × n grid ya…
题意 敌人侵略r*c的地图.为了消灭敌人,可以在某一行或者某一列安置超级大炮.每一个大炮可以瞬间消灭这一行(或者列)的敌人.安装消灭第i行的大炮消费是ri.安装消灭第j行的大炮消费是ci现在有n个敌人,告诉你这n个敌人的坐标,让你同时消灭这些敌人,为你最小花费是多少.花费的定义:每个大炮消费的乘积. 思路 非常经典的最小点权覆盖集问题,同最大流建模就可以了,建模方法可见胡伯涛论文<最小割模型在信息学竞赛中的应用>. 这道题的模型转换成最小点权覆盖集的方法可见这里. 这里的点权最大是乘积的,只要…
http://poj.org/problem?id=3308 #include <cstdio> #include <cstring> #include <algorithm> #include <queue> #include <cmath> #define maxn 10000 using namespace std; <<; int n,m,l,x,y; double c,f; ][],flow[][]; ]; ]; void…
题目链接 题意 : 有一个n*m的矩阵,L个伞兵可能落在某些点上,这些点的坐标已知,需要在某些位置安上一些枪,然后每个枪可以将一行或者一列的伞兵击毙.把这种枪安装到不同行的行首.或者不同列的列首,费用都不同.现在已知把激光枪安装到任意位置的费用,总的花费为这些安装了激光枪的行列花费的乘积. 思路 :就是一个最大流问题.Dinic我不会,用的白皮书上的EK算法,嗯,还行,这个建图比较麻烦,就是把行列分开,成为m+n+1个点.嗯,不废话了,还是把大神博客链接弄过来吧,各方面都讲得很详细. #incl…
意甲冠军: 一m*n该网络的规模格.详细地点称为伞兵着陆(行和列). 现在,在一排(或列) 安装激光枪,激光枪可以杀死线(或塔)所有伞兵.在第一i安装一排 费用是Ri.在第i列安装的费用是Ci. 要安装整个激光枪系统,总费用为这些 激光枪费用的乘积. 求杀死全部伞兵的最小费用. 构图: 把伞兵视为边,行与列视为顶点.添加源点和汇点,对于第i行.从源点向顶点i连接一条 容量为Ri的边.对于第j列.从顶点j向汇点连接一条容量为Rj的边. 假设某一点(i,j)有伞兵降落,则从顶点Ri向顶点Cj连接一条…