【北航】Bella 姐姐发辣条(贪心)
題干:
題目描述
Bella 姐姐又來回國發(fā)辣條啦。
所有集訓(xùn)隊(duì)的小朋友按照訓(xùn)練成績站成一排,從左到右為成績從低到高排列。每個(gè)人都對和藹的 Bella 姐姐有兩個(gè)要求:
我至少需要?AiAi?根辣條。
我要比我左邊的小朋友恰好多?BiBi?根辣條(比如左邊小朋友是?33?根,Bi=5Bi=5,Ai=5Ai=5。 那么這個(gè)小朋友必須拿恰好?88?根辣條)。
當(dāng)然啦,成績最差的小朋友就沒有權(quán)利說我要比別人多多少了,所以?B1=0B1=0(第一個(gè)小朋友沒有第二種要求)。
Bella 姐姐問你,在保證能滿足每個(gè)小朋友的要求的前提下,她至少要準(zhǔn)備多少根辣條。可以證明一定有解。
輸入
第一個(gè)數(shù)為數(shù)據(jù)組數(shù)?TT(T≤100T≤100)。
每組數(shù)據(jù)第一行一個(gè)整數(shù)?nn(1≤n≤1001≤n≤100)代表有?nn?個(gè)集訓(xùn)隊(duì)小朋友。下標(biāo)從?11?開始。
接下來一行有?nn?個(gè)整數(shù)?AiAi(0≤Ai≤1000≤Ai≤100)。
接下來一行有?nn?個(gè)整數(shù)?BiBi(0≤Bi≤1000≤Bi≤100,B1=0B1=0)。
輸出
對于每組數(shù)據(jù),輸出一行,代表 Bella 姐姐最少準(zhǔn)備的辣條根數(shù)。
輸入樣例
1 2 1 1 0 1輸出樣例
3?解題報(bào)告:
? ?貪心。還好這題告訴了你順序,是線性排列的,否則需topu排序一下,比如這題然后可能還會(huì)用到二分。。(當(dāng)然 也可以不用二分)
AC代碼:
#include<cstdio> #include<iostream> #include<algorithm> #include<queue> #include<map> #include<vector> #include<set> #include<string> #include<cmath> #include<cstring> #define ll long long #define pb push_back #define pm make_pair using namespace std; const int MAX = 2e5 + 5; int a[MAX],b[MAX],c[MAX]; bool vis[MAX];int main() {int t,n;cin>>t;while (t--) {scanf("%d", &n);for(int i = 1; i<=n; i++)scanf("%d", &a[i]);for(int i = 1; i<=n; i++)scanf("%d", &b[i]);int low = a[1], ans = a[1];for(int i = 2; i<=n; i++) {low += b[i];c[i] = low - a[i];ans += low;}int res = 0;for(int i = 1; i<=n; i++) {if(c[i] < res) res = c[i];}printf("%d\n", ans - n * res);} }?
總結(jié)
以上是生活随笔為你收集整理的【北航】Bella 姐姐发辣条(贪心)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 广汽埃安车主拉横幅维权:安保人员拉黑布阻
- 下一篇: 【CodeChef - CLIQUED