程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> uva - 11054 - Wine trading in Gergovia(貪心)

uva - 11054 - Wine trading in Gergovia(貪心)

編輯:C++入門知識

題意:一個小鎮上有n個居民,都以賣酒為生,城鎮的運作模式就是每個居民買其他的酒。假定酒每天的需求量和銷售量相同。但是運酒需要運費,運費等於每個居民的房子到其他居民的房子的距離*交易量(居民住在一條直線上)。求最小的交易量。

方法:參考了網上的代碼,讓鄰居間進行交易,既讓後一個滿足前一個。例如即使前一個是買,後一個也是買也讓後一個賣給前一個人。具體為什麼也說不太清楚。。

AC代碼:

#include     
#include     
#include     
#include     
#include     
#include     
#include     
#include     
#include     
#include 

using namespace std;  
const int maxn = 100000+10;

int arr[maxn];

int main()
{
#ifdef Local      
	freopen("a.in", "r", stdin);  
#endif
	int n = 0;
	while (cin >> n && n)
	{
		int i = 0;
		for (i = 0; i < n; i++)
			cin >> arr[i];
		long long int ans = 0;
		for (i = 0; i < n-1; i++)
		{
			ans += abs(arr[i]);
			arr[i+1] += arr[i];
		}
		cout << ans << endl;
	}
	return 0;
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved