SDOI2015 BZOJ3993 星際戰爭

2022-08-03 14:30:25 字數 2194 閱讀 9356

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的...