Codeforces Round #353 (Div. 2) C. Money Transfers

mac2022-06-30  83

解题思路:由均分纸牌的思想可以得知 当区间和为0的区间个数出现最多时,所需要的移动次数是最少的,从1遍历到n 如果相同数字产生次数最多的即为区间和为0个数出现最多的次数(相同数字的产生是因为中间区间和为0),起点的位置不会影响区间和的个数,因为整体区间就那一个。

注意题目的数据类型。

 

#include<iostream> #include<algorithm> #include<map> using namespace std; map<long long,int> m; int main(){ int n,temp,counter; long long sum; scanf("%d",&n); sum = counter = 0; for(int i=0;i<n;i++){ scanf("%d",&temp); sum += temp; m[sum]++; counter = max(counter,m[sum]); } printf("%d\n",n-counter); }

 

转载于:https://www.cnblogs.com/yuanshixingdan/p/5503454.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)