UVA11054 Wine trading in Gergovia
阿新 • • 發佈:2018-07-30
ans via return namespace ios 求和 ret end n!
題目大意:有N戶人家住在一條街上,每戶人家有需求和供應葡萄酒, 因為路程的不同,導致交易葡萄酒的成本不同,成本等於交易量乘路程,求最少的交易成本使得每戶人家的需求和供應的到滿足,(總需求= 總供應)。
解題思路:貪心的思想, 最左邊的人家想要獲得或者是賣出,一定是對右邊的人家進行操作,所以問題可以轉化成第二家人的需求變成num[0] + num[1], 而運輸量即為num[0]的絕對值,不管第二戶人家的需求與第一戶人家的需求是否匹配或者數量夠不夠,都可以看成是人家1在買賣過程中將貨物暫時放在人家2,以此類推到最後一戶人家。
註意總和要用long long 。
#include <iostream> #include<cmath> using namespace std; const int maxn=1e5+10; int n; int main() { ios::sync_with_stdio(false);cin.tie(0); while(cin>>n&&n!=0) { long long last=0,ans=0,x; for(int i=0;i<n;i++){ cin>>x; ans+=abs(last); last+=x; } cout<<ans<<endl; } return 0; }
UVA11054 Wine trading in Gergovia