time limit: 10 sec memory limit: 128 mbsec special judge
submit: 1244 solved: 560
[submit][status][discuss]
2023年,在銀河系的某星球上,x軍*和y軍*正在激烈地作戰。在戰鬥的某一階段,y軍*一共*遣了n個巨型機械人進攻x軍*的陣地,其中第i個巨型機械人的裝甲值為ai。當乙個巨型機械人的裝甲值減少到0或者以下時,這個巨型機械人就被摧毀了。x軍*有m個雷射**,其中第i個雷射**每秒可以削減乙個巨型機械人bi的裝甲值。雷射**的攻擊是連續的。這種雷射**非常奇怪,乙個雷射**只能攻擊一些特定的敵人。y軍*看到自己的巨型機械人被x軍*乙個乙個消滅,他們急需下達更多的指令。為了這個目標,y軍*需要知道x軍*最少需要用多長時間才能將y軍*的所有巨型機械人摧毀。但是他們不會計算這個問題,因此向你求助。
第一行,兩個整數,n、m。
第二行,n個整數,a1、a2…an。
第三行,m個整數,b1、b2…bm。
接下來的m行,每行n個整數,這些整數均為0或者1。這部分中的第i行的第j個整數為0表示第i個雷射**不可以攻擊第j個巨型機械人,為1表示第i個雷射**可以攻擊第j個巨型機械人。
一行,乙個實數,表示x軍*要摧毀y軍*的所有巨型機械人最少需要的時間。輸出結果與標準答案的絕對誤差不超過10-3即視為正確。
2 23 10
4 60 1
1 11.300000
【樣例說明1】
戰鬥開始後的前0.5秒,雷射**1攻擊2號巨型機械人,雷射**2攻擊1號巨型機械人。1號巨型機械人被完全摧毀,2號巨型機械人還剩餘8的裝甲值;
接下來的0.8秒,雷射**1、2同時攻擊2號巨型機械人。2號巨型機械人被完全摧毀。
對於全部的資料,1<=n, m<=50,1<=ai<=105,1<=bi<=1000,輸入資料保證x軍*一定能摧毀y軍*的所有巨型機械人
round 1 感謝yts1999上傳
題解:
顯然隨著時間的增長,能摧毀的機械人是不減的,這就有了單調性
我們就先二分時間t,由s向每個**連容量為它在t時間內能造成的傷害的邊
由**向每個能攻擊到的機械人連一條容量為inf的邊,由每個機械人向t連容量為它的裝甲值的邊
如果最大流=所有機械人的裝甲值,則這個時間是可行的
#include#include#include
#include
using
namespace
std;
typedef
double
real;
const
int v=120
;const
int e=v*v*2
;const real eps=1e-8
;struct edgee[e],ed[e];int tot=1
,po,head[v],last[v];
int n,m,s,t,dis[v],q[v];bool
vis[v];
real ans,a[v],b[v];
inline
intread()
while(ch>='
0'&&ch<='9')
return x*f;
}inline
void add(int x,int
y,real z)
inline
bool
bfs()}}
return0;
}real dfs(
intx,real f)
}if(!used) dis[x]=-1
;
return
used;
}inline real dinic()
inline
void
change(real lim)
inline
void
init()
}po=tot;
for(int i=2;i<=tot;i++) ed[i]=e[i];
for(int i=s;i<=m;i++) last[i]=head[i];
}inline
void
work()
printf(
"%.7lf
",l);
}int
main()
3993 SDOI2015 星際戰爭
time limit 10 sec memory limit 128 mbsec special judge submit 1069 solved 489 submit status discuss 3333年,在銀河系的某星球上,x軍團和y軍團正在激烈地作戰。在戰鬥的某一階段,y軍團一共派遣了n個...
3993 SDOI2015 星際戰爭
題目鏈結 題解 二分答案,st向 連一條值為最大攻擊力,機械人向ed連一條值為血量,如果 可以打機械人,就連一條值為inf的邊,精度炸裂啊!include include include include include include includeusing namespace std defin...
bzoj3993 SDOI2015 星際戰爭
3333年,在銀河系的某星球上,x軍團和y軍團正在激烈地作戰。在戰鬥的某一階段,y軍團一共派遣了n個巨型機械人進攻x軍團的陣地,其中第i個巨型機械人的裝甲值為ai。當乙個巨型機械人的裝甲值減少到0或者以下時,這個巨型機械人就被摧毀了。x軍團有m個雷射 其中第i個雷射 每秒可以削減乙個巨型機械人bi的...