time limit: 10 sec memory limit: 128 mbsec special judge
submit: 201 solved: 119
[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上傳
round1的題,當場直接不會……
回來做了不知為何總是wa,今天同校大神一語驚醒夢中人啊,反向弧忘清了!!
二分答案+最大流驗證
#include#include#include
#include
#include
#include
#define eps 1e-4
#define inf 100000007
using
namespace
std;
int n,m,suma,sumb,a[51],b[51],pointsum,x,q[200],ll[51][51
];double l,r,map[200][200],dis[200
];bool
bfs()
}if (dis[pointsum]>0) return
1; else
return0;
}
double find(int x,double
flow)
if (used1
;
return
used;
}void madepaint(double
t)
for (int i=1;i<=m;i++) map[1][i+1]=t*b[i];
for (int i=1;i<=m;i++)
for (int j=1;j<=n;j++)
if (ll[i][j]) map[i+1][j+m+1]=inf;
for (int i=1;i<=n;i++) map[i+m+1][pointsum]=a[i];
}bool dinic(double
t)int
main()
for (int i=1;i<=m;i++)
l=double(suma)/double
(sumb);
r=double
(suma);
pointsum=n+m+2
;
for (int i=1;i<=m;i++)
for (int j=1;j<=n;j++)
scanf("%d
",&ll[i][j]);
while (l+epsprintf(
"%.6lf
",r);
return0;
}
BZOJ 3991 SDOI2015 尋寶遊戲
題目大意 給定一棵樹,其中有若干個關鍵點,任意選擇起點,求從起點出發訪問所有關鍵點又回到起點的最小邊權總和,有m個修改操作,每次修改乙個關鍵點。假如沒有修改操作的話,就像乙個簡單的樹形dp,方程如下 f i sigma sigma.觀察一下dp的過程,就是不斷地從前面的點走到後面的點,所以我們可以不...
bzoj3995 SDOI2015 道路修建
題目鏈結 分析 曲神的題解 曲神表示想要結構體版本的 題解最後給出的就是結構體的 bzoj1018的高階版 一開始看到這道題 好像不是很難,用線段樹維護最小生成樹 update的時候直接判斷上下哪一條橫邊比較小,連線即可 然而一下就發現了bug 存在可能性連線點的上下兩條邊都需要連線 那我們就要深入...
bzoj3993 SDOI2015 星際戰爭
3333年,在銀河系的某星球上,x軍團和y軍團正在激烈地作戰。在戰鬥的某一階段,y軍團一共派遣了n個巨型機械人進攻x軍團的陣地,其中第i個巨型機械人的裝甲值為ai。當乙個巨型機械人的裝甲值減少到0或者以下時,這個巨型機械人就被摧毀了。x軍團有m個雷射 其中第i個雷射 每秒可以削減乙個巨型機械人bi的...