Codeforces Round #353 (Div. 2) C. Money Transfers 贪心+前缀和
来源:互联网 发布:qq音速网络连接 编辑:程序博客网 时间:2024/06/04 20:14
http://codeforces.com/contest/675/problem/C
题意:
n个银行形成环,一个人在每个银行资产有正有负,现在要求相邻银行之间可以转移资产,使得最后每个银行资产为零。
保证sum=0,求最小转移次数
首先最坏的情况,从第一个银行一直转移到最后一个银行,这样的话 最小转移次数=n-1
如果我们找到一个区间的区间和为零,那么就把原序列划分成两个区间,总的最小转移次数=n-2
以此类推,找到越多区间和为零的不相交小区间,最小转移次数就越少。
怎么找最多的零区间呢?
假设第一个环是从i开始的,那么前缀和S【i】==S【j】表示区间【i+1,j】的和为0,那么下一个环必然是从j+1开始,下一个环的右端点必然是k,满足S【k】==S【j】,同理以后的环都是S【k1】=S【k2】=S【i】....
也就是我们只需要看有多少前缀和值等于s[i],就能找到第一个环从i开始的情况下,能找到最多的零区间
所以我们要找最多的零区间,就变成找所有的前缀和里 重复次数最多的一个
复杂度nlogn
#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <algorithm>#include <iostream>#include <queue>#include <map>#include <set>#include <vector>#include<stack>using namespace std;map<long long ,int>mp;int main(){ int n; cin>>n; long long sum=0; int x,ans=0; for (int i=1; i<=n; i++) { scanf("%d",&x); sum+=x; mp[sum]++; ans=max(ans,mp[sum]); } printf("%d\n",n-ans); return 0;}
0 0
- Codeforces Round #353 (Div. 2) C. Money Transfers 环、贪心、前缀和推广、好题
- Codeforces Round #353 (Div. 2) C. Money Transfers 贪心+前缀和
- Codeforces Round #353 (Div. 2) C. Money Transfers (贪心)
- Codeforces Round #353 (Div. 2) C. Money Transfers
- Codeforces Round #353 (Div. 2)C. Money Transfers
- Codeforces Round #353 (Div. 2) C. Money Transfers(数学题)
- Codeforces Round #353 (Div. 2) C.Money Transfers
- Codeforces Round #353 (Div. 2) C. Money Transfers (map)
- Codeforces Round #353 (Div. 2) C. Money Transfers 数学
- Codeforces Round #353 (Div. 2) C. Money Transfers (思维题)
- codeforces C. Money Transfers 贪心
- Codeforces Round #353 Money Transfers
- Codeforces Round #353 (Div. 2) C. Money Transfers(相邻银行之间转账,求最少的转账次数)
- Codeforces 675C Money Transfers【贪心】
- codeforces 675C Money Transfers(贪心)
- CodeForces 675 C. Money Transfers(贪心)
- Money Transfers(CF #353 Div. 2)
- codeforces 675C Money Transfers
- 实用在线工具
- 存储过程详解
- Kodi 开源源码定制化开发(原XBMC)
- 无人机飞控平台ArduPilot源码入门教程 — 例子
- android实现聊天页面的气泡
- Codeforces Round #353 (Div. 2) C. Money Transfers 贪心+前缀和
- java编译和执行
- Myeclipse使用技巧
- linux下mysql配置文件my.cnf最详细解释
- 无人机飞控平台ArduPilot源码入门教程 - 多线程
- Fresco 图片请求库(工具类)
- C++ 读写大文件代码
- KVC
- 直接在 PS 上使用 Google Font 字体:Fontea Photoshop 扩展工具推荐