Array Division

题意:给一个序列,问将一个数调换顺序能否使得序列分为连续的2段后,2段的和相同;

思路:模拟,注意一点,可能第一个数就大于sum/2,所以要1-n模拟一遍再n-1模拟一遍,具体看代码

AC代码:

#include "iostream"
#include "iomanip"
#include "string.h"
#include "stack"
#include "queue"
#include "string"
#include "vector"
#include "set"
#include "map"
#include "algorithm"
#include "stdio.h"
#include "math.h"
#pragma comment(linker, "/STACK:102400000,102400000")
#define bug(x) cout<<x<<" "<<"UUUUU"<<endl;
#define mem(a,x) memset(a,x,sizeof(a))
#define step(x) fixed<< setprecision(x)<<
#define mp(x,y) make_pair(x,y)
#define pb(x) push_back(x)
#define ll long long
#define endl ("\n")
#define ft first
#define sd second
#define lrt (rt<<1)
#define rrt (rt<<1|1)
using namespace std;
const ll mod=1e9+7;
const ll INF = 1e18+1LL;
const int inf = 1e9+1e8;
const double PI=acos(-1.0);
const int N=1e5+100;ll n,a[N],sum,now;
map<ll,int> M1,M2;
int main(){scanf("%lld",&n);for(int i=1; i<=n; ++i){scanf("%lld",a+i);sum+=a[i], M1[a[i]]++, M2[a[i]]++;}if(sum&1){cout<<"NO\n";return 0;}for(int i=1; i<n; ++i){ll x=(sum/2)-now;if(M1[x]>0){cout<<"YES\n";return 0;}now+=a[i], M1[a[i]]--;}now=0;for(int i=n; i>1; --i){ll x=(sum/2)-now;if(M2[x]>0){cout<<"YES\n";return 0;}now+=a[i], M2[a[i]]--;}cout<<"NO\n";return 0;
}

转载于:https://www.cnblogs.com/max88888888/p/7638070.html

codeforces 808d相关推荐

  1. 【Codeforces】808D Array Division(前后两部分和相等)

    http://codeforces.com/contest/808/problem/D 给你一个数组,问:是否可以通过移动一个数字的位置,求只能移动一次,使得这个数组前后部分的和相等,前后部分不一定等 ...

  2. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  3. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  4. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  5. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

  6. codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...

    题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...

  7. CodeForces 595A

    题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...

  8. codeforces A. Jeff and Digits 解题报告

    题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...

  9. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

最新文章

  1. .NET Garbage-Collectors
  2. html制作背景音乐,HTML插入背景音乐方法【全】
  3. canvas绘制阴影
  4. MetaException(message:Hive Schema version 3.0.0 does not match metastore's schema version 1.2.0 Meta
  5. 数据挖掘之数据预处理
  6. 技术人生“白天求生存,晚上谋发展”
  7. 【计算机组成原理】指令系统
  8. cas client 更新ticket_cas sso单点登录系列6_cas单点登录防止登出退出后刷新后退ticket失效报500错...
  9. Uploadify 控件上传图片 + 预览
  10. 通俗理解什么是隐马尔科夫模型(hmm)
  11. MATLAB零基础入门教程视频课程
  12. 手机怎么查看连接过的wifi密码
  13. 艾默生首席执行官范大为退休;液化空气将新建生产装置为京东方供应气体 | 美通企业日报...
  14. 什么是路由器 路由器和路由器之间怎么连接
  15. n-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter convertView
  16. 大型多人在线游戏服务器架构设计
  17. 慕课python下载_python下载小说
  18. 巴塞罗那WASM IO大会
  19. 图网络可解释性(2)
  20. Java—方法的使用

热门文章

  1. CSS属性(根据继承性分为两类)
  2. 简单实现KeyChain实例
  3. EditText 空指针问题
  4. 服务器控件开发之基本概念
  5. 五分钟带你摸透 Vue组件及组件通讯
  6. @PathVariable注解使用
  7. JS性能分析(测试代码运行时间)
  8. 利用jQuery和bootstrap更改radio样式
  9. 架构师不可不知的十大可扩展架构
  10. mysqlpump 备份文件压缩对比