您的位置:首页 > Web前端

codeforces Money Transfers

2016-05-18 18:47 351 查看
深感实现能力太差

开始想的是找最长的0连续长度,发现有问题,比如5 -5 5 -5 5 -5这个case

然后发现找可以构成0的段最多可以构成的段

不过发现我实现不了,不知道怎么找,2333

最后发现正解就是这样的,而且找的很简单

代码如下:

/*  ^^ ====== ^^
ID: meixiuxiu
PROG: test
LANG: C++11
*/
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <climits>
#include <string>
#include <vector>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <sstream>
#include <cctype>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int ,int> pii;
#define MEM(a,b) memset(a,b,sizeof a)
#define CLR(a) memset(a,0,sizeof a);
#define pi acos(-1.0)
#define maxn 40000
#define maxv 100005
const int inf = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
//#define LOCAL
map<ll,ll> mp;
int main()
{
#ifdef LOCAL
freopen("in.txt", "r", stdin);
//	freopen("out.txt","w",stdout);
#endif
int n;cin >> n;
ll sum = 0;
ll cnt = 0;
for(int i=1;i<=n;i++){
int a;scanf("%d",&a);
sum += a;
mp[sum]++;
cnt = max(cnt,mp[sum]);
}
cout << n-cnt << endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: