HDU 4070 Phage War

时间:2023-03-09 20:22:39
HDU 4070 Phage War

贪心,t 大的放到前面。。。因为感染所有cell需要的phage的总数是一定的,所以产生phage需要的时间是一定的,只需要考虑用来感染的时间,这样考虑的话,把 t 小的放后面的话,可以发现总时间的最少的。

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath> #define LL long long
#define CLR(a, b) memset(a, b, sizeof(a)) using namespace std; const int N = 111111; struct Cell
{
int d, t;
bool operator < (const Cell& rhs) const
{
return t > rhs.t;
}
}C[N]; int main()
{
int t, cas = 1, n, i, j, ans, sum;
scanf("%d", &t);
while(t --)
{
scanf("%d", &n);
for(i = 0; i < n; i ++)
{
scanf("%d%d", &C[i].d, &C[i].t);
}
sort(C, C + n);
sum = ans = 0;
for(i = 0; i < n; i ++)
{
sum += C[i].d;
ans = max(ans, sum + C[i].t);
}
printf("Case %d: %d\n", cas ++, ans);
}
}