国外网站怎么浏览,wordpress自动采集发布文章,一尊网 又一个wordpress站点,装饰公司网站源码Circle of Monsters—CF1334C
思路
每一个怪兽都有两种死法#xff1a; 直接被子弹打死先被上一个怪兽爆炸击伤#xff0c;剩下的血量再用子弹打死 所以#xff0c;很容易看出来第二种死法对于所有的怪兽都是最优死法#xff08;消耗子弹最少的死法#xff09;。我们需要…Circle of Monsters—CF1334C
思路
每一个怪兽都有两种死法 直接被子弹打死先被上一个怪兽爆炸击伤剩下的血量再用子弹打死 所以很容易看出来第二种死法对于所有的怪兽都是最优死法消耗子弹最少的死法。我们需要尽可能使得所有怪兽都先被上一个怪兽爆炸击伤但这是不可能的。因为开始的怪兽一定是需要只用子弹把它打死的。在实际操作中第一个怪兽是第一种死法其它的怪兽都是第二种死法。 C o d e Code Code
#include bits/stdc.h
#define int long long
#define sz(a) ((int)a.size())
#define all(a) a.begin(), a.end()
using namespace std;
using PII pairint, int;
using i128 __int128;
const int N 3e5 10;int n;
int a[N], b[N];
int c[N]; // 被炸后还剩多少血void solve() {cin n;for (int i 1; i n; i ) {cin a[i] b[i];}int sum 0;for (int i 1; i n; i ) {c[i] a[i] - min(a[i], b[i - 1 n * (i - 1 0)]);sum c[i];}int res 1e18;for (int start 1; start n; start ) {res min(res, sum - c[start] a[start]);}cout ;cout res \n;
}signed main() {ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int T 1;cin T; cin.get();while (T --) solve();return 0;
}