题目链接:http://codeforces.com/problemset/problem/808/D

题意:问能不能通过交换不超过两个元素的位置使得原数组变成能分成前,后和相等的连续两部分;

注意这里只能交换一次!!!

思路:若存在某段前缀和 sum1[i] + x = ans/2 其中 x 为[ 0, i ] 外的某个元素 或者后缀和 sum2[i] + x = ans/2 其中 x 为 [ i, n-1 ] 外的某个元素;

则为 "YES" ,否则为 "NO" ;

代码:

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <map>
 4 #define ll long long
 5 using namespace std;
 6
 7 const int MAXN = 1e5+10;
 8 map<ll, int> mp1, mp2;
 9 int a[MAXN];
10
11 int main(void){
12     int n;
13     ll ans=0;
14     scanf("%d", &n);
15     for(int i=0; i<n; i++){
16         scanf("%d", &a[i]);
17         ans += a[i];
18         mp1[a[i]]++;
19         mp2[a[i]]++;
20     }
21     if(ans&1){
22         cout << "NO" << endl;
23         return 0;
24     }
25     ans >>= 1;
26     ll num1=0, num2=0;
27     for(int i=0; i<n; i++){
28         if(mp1[ans-num1] > 0){
29             cout << "YES" << endl;
30             return 0;
31         }
32         num1 += a[i];
33         mp1[a[i]]--;
34     }
35    for(int i=n-1; i>=0; i--){
36         if(mp2[ans-num2] > 0){
37             cout << "YES" << endl;
38             return 0;
39         }
40         num2 += a[i];
41         mp2[a[i]]--;
42     }
43     cout << "NO" << endl;
44     return 0;
45 }

View Code

转载于:https://www.cnblogs.com/geloutingyu/p/6875613.html

cf808D(xjb)相关推荐

  1. hdu_5761_Rower Bo(xjb猜公式)

    题目链接:hdu_5761_Rower Bo 题意: 让你求一个物理问题 题解: xjb猜公式,由题目样例可得,答案为8/7,然后我们可以xjb猜出公式为v1*a/(v1*v1-v2*v2),然后特判 ...

  2. xjb java,java – .xsd不是此编译的一部分.这是.xjb的...

    我试图更改我的xjb文件中的schemaLocation以使用不是使用URL的远程文件,而是使用也受版本控制的本地副本. 所以例如我的xjb文件有类似的东西 xmlns:jxb="http: ...

  3. xjb java,java – 使用保留下划线的xjb覆盖JAXB属性名称

    自定义xjb非常适合根据需要覆盖名称,但是我们会丢失名称中的下划线. xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jxb=& ...

  4. xjb——洛谷P1191 矩形

    https://www.luogu.org/problem/show?pid=1191 来一个用xjb算法的题解: xjb是什么算法? 这种算法基本上可以解决所有题目: 也许你不会lct: 也许你不会 ...

  5. 程设大作业xjb写——魔方复原

    鸽了那么久总算期中过[爆]去[炸]了...该是时候写写大作业了 [总不能丢给他们不会写的来做吧 一.三阶魔方的几个基本定义 ↑就像这样,可以定义面的称呼:上U下D左L右R前F后B UD之间的叫E,LR ...

  6. 树莓派飞控PID调节之XJB调

    最近代码已经整理差不多,开始了漫长的调试,试图在电机转动的时候调节到平衡状态.遇到了飞机震动造成的姿态也随之起伏的问题.看了下前辈的说法,是飞机共振.需要减震,需要滤波,关于滤波,用的是卡尔漫滤波,目 ...

  7. 51nod1276(xjb)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1276 题意:中文题诶- 思路:xjb 通过画图可以发现对于当前 ...

  8. HDU 1230 火星A+B (xjb搞)

    火星A+B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  9. CodeForces - 747D Winter Is Coming(xjb乱搞)

    题目链接:http://codeforces.com/problemset/problem/747/D点击打开链接 D. Winter Is Coming time limit per test 1 ...

最新文章

  1. Facebook创建新机器学习系统,用于对视频中的人脸进行“去识别化”
  2. scipy.sparse.coo_matrix、csr_matrix、lil_matrix、dia_matrix
  3. 用 Python 做数据处理必看:12 个使效率倍增的 Pandas 技巧(上)
  4. Eclipse jar包打不进apk
  5. 2011年计算机基础知识试卷,2011年计算机一级考试理论试题:第六部分多选题
  6. 作者:崔辰州(1976-),男,博士,中国科学院国家天文台研究员、硕士生导师...
  7. 基础表比商户对账和汇总多了一笔退款数据
  8. 【华为云技术分享】HBase与AI/用户画像/推荐系统的结合:CloudTable标签索引特性介绍
  9. 每周荐书:SQL优化、深度学习、数据科学家(评论送书)
  10. ssm连接mysql引入外部配置文件username无法被正确解析
  11. C#对接中国移动短信接口
  12. s3c2416运行JAVA_实时时钟RTC - 基于S3C2440的Linux-3.6.6移植_Linux编程_Linux公社-Linux系统门户网站...
  13. 搭建jitsi的prosody出现的问题
  14. 安装zstack云平台并搭建云主机
  15. 史上最全的工业相机CCD/CMOS靶面尺寸规格说明
  16. [编程题]雀魂启动!(java实现)
  17. bat putty shell 连携
  18. 【把视频逐帧转换成图片】
  19. 软件工程专业电商网站毕业论文答辩实录(基于SSM+VUE前后端分离的 “依伴汉服”网)
  20. cs230 深度学习 Lecture 2 编程作业: Logistic Regression with a Neural Network mindset

热门文章

  1. 以太网帧长度大小限制
  2. 为什么你的60%的时间都被浪费了?——一场7天重塑大脑的专注力实验
  3. 如何在XML中使用nbsp
  4. yshon对讲机如何调频率_对讲机频率如何设置?
  5. ConfigurationManager姿势快闪
  6. 讲师专访丨蚂蚁金服庆涛:国产数据库OceanBase和分布式数据核心技术
  7. JAVA EE案例:基于MyBatis注解的学生管理程序
  8. 用计算机用u盘怎么切换,更换电脑硬盘后如何用U盘重装系统?
  9. excel表格xlsx解开加密在线,excel表格xlsx权限限制怎么解除?
  10. 名画378 齐白石《花草工虫册页十开》