SDOI2015 星際戰爭

2022-07-14 22:39:22 字數 865 閱讀 8447

題目傳送門

看了標籤恍然大悟

我們可以二分所用的時間\(t\),然後對於每乙個**,從源點向它們連長度為傷害\(\times t\)的邊,然後**向它們能攻擊的敵人連長度為\(\inf\)的邊,對於每個敵人,向匯點連長度為它們血量的邊

然後跑最大流即可

因為要至少保留\(2\)位小數,為了便於處理,將所有生命和時間都乘了\(10000\)

#include #include #include #include #include #define ll long long

#define inf 2147483647777777ll

using namespace std;

ll read()

while(c >= '0' && c <= '9')

return k * f;

}struct zzz e[10010 << 1]; int head[210], tot = 1;

void add(int x, int y, ll z)

int s, t, vis[210];

bool bfs() }}

return vis[t];

}ll dfs(int x, ll flow)

}if(rest < flow) vis[x] = 0;

return rest;

}ll dinic()

ll a[210], b[210], k; bool ff[210][210];

int main()

printf("%lf", (double)l/10000);

return 0;

}

SDOI2015 星際戰爭(網路流)

由於時間可能是小數,所以不能直接跑。先二分答案為 ttt。s ss 向每個雷射 i ii 連一條容量為 bi tb i times t bi t 的邊,表示這個雷射 最多能輸出多少。然後每個機械人向 t tt 連一條容量為 a ia i ai 的邊,表示這個機械人至少需要這麼多攻擊才能被摧毀。接著每...

SDOI2015第1輪第2試 星際戰爭

3333年,在銀河系的某星球上,x軍團和y軍團正在激烈地作戰。在戰鬥的某一階段,y軍團一共派遣了n個巨型機械人進攻x軍團的陣地,其中第i個巨型機械人的裝甲值為ai。當乙個巨型機械人的裝甲值減少到0或者以下時,這個巨型機械人就被摧毀了。x軍團有m個雷射 其中第i個雷射 每秒可以削減乙個巨型機械人bi的...

3993 SDOI2015 星際戰爭

time limit 10 sec memory limit 128 mbsec special judge submit 1069 solved 489 submit status discuss 3333年,在銀河系的某星球上,x軍團和y軍團正在激烈地作戰。在戰鬥的某一階段,y軍團一共派遣了n個...