codeforces 808D
题意:给出一个序列,询问是否能移动一个数(或不操作)使得序列能分为左右两个和相等的子序列。
思路:对每个数处理最左边和最右边出现的位置。设置断点分左右区间,左右区间和差值的一半就是要找的数,进行判断。
tip:很简单的想法,但debug很久很久,细节部分考虑欠妥。忘记位运算的优先级很低,sub&1==1错误,l[sub]<=i时漏考虑sub不出现时l[sub]都为0,发生错误。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=100005;
map<ll,int> l,r;
int a[N];
int main() {
int n;scanf("%d",&n);
ll sum=0;
for(int i=1;i<=n;++i) {
scanf("%d",&a[i]);
sum=0ll+sum+a[i];
if(!l[a[i]]) l[a[i]]=i,r[a[i]]=i;
else r[a[i]]=i;
}
ll t=0;
int f=0;
for(int i=1;i<=n && !f;++i) {
t=0ll+t+a[i];
ll sub=abs(sum-t-t);
if(!sub) {
f=1;break;
}
if((sub&1)==1) continue;
sub/=2ll;
if(sum-t-t>0&&(r[sub]>i)) f=1;
else if(sum-t-t<0&&(l[sub]<=i&&l[sub]!=0)) f=1;
}
if(f) puts("YES");
else puts("NO");
return 0;
}
codeforces 808D的更多相关文章
- Educational Codeforces Round 21 Problem D(Codeforces 808D)
Vasya has an array a consisting of positive integer numbers. Vasya wants to divide this array into t ...
- Array Division CodeForces - 808D (构造+实现)
Vasya has an array a consisting of positive integer numbers. Vasya wants to divide this array into t ...
- Codeforces 808D. Array Division
题目大意 给定你一个长为\(n\)的序列,问能否在最多一次取出某一元素然后插入到某一点后可以将整个序列分成两段使得其两段的元素之和相同. \(n \leq 10^5\) 题解 发现插入操作实际上是让某 ...
- python爬虫学习(5) —— 扒一下codeforces题面
上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
- 【Codeforces 738C】Road to Cinema
http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...
- 【Codeforces 738A】Interview with Oleg
http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...
- CodeForces - 662A Gambling Nim
http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...
- CodeForces - 274B Zero Tree
http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...
随机推荐
- 报错An internal error occurred during: "reload maven project". java.lang.NullPointerException
新建了一个maven项目,由于有问题就删除了,但是卡住了就强制关闭了. 查了一下是由于由于没有正常关机导致eclipse无法将数据正常写入配置文件导致无法启动.所以报这样一个异常. 最后是这样解决的: ...
- pycharm 授权/激活
License server: http://elporfirio.com:1017/ http://idea.imsxm.com/
- 锚点链接 阻止a标签跳转
参考 http://blog.csdn.net/awe5566/article/details/22583699 href="#downJacket" 锚点链接 必须写: 但又 ...
- 01Go开发环境搭建(参考无闻大神)
一直安装下一步就可以了 GOPATH是工作目录 GOROOT是安装目录 如果有多个工作目录,就需要我们用分号进行分隔
- iOS接收远程通知响应方法
点击 iOS 接收远程推送主要牵扯到的方法有以下五种 (1) - (BOOL)application:(UIApplication *)application didFinishLaunchingWi ...
- ES6通过WeakMap解决内存泄漏问题
一.Map 1.定义 Map对象保存键值对,类似于数据结构字典:与传统上的对象只能用字符串当键不同,Map对象可以使用任意值当键. 2.语法 new Map([iterable]) 属性 size:返 ...
- jq左右按钮点击幻灯片
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 用table显示n条记录,每3行换一次颜色,即1,2,3用红色字体,4,5,6用绿色字体,7,8,9用红颜色字体。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- javascript教程2:---DOM操作
1.DOM 简介 当页面加载时,浏览器会创建页面的文档对象模型(Document Object Model).文档对象模型定义访问和处理 HTML 文档的标准方法.DOM 将 HTML 文档呈现为带有 ...
- Flask(1)- 主流web框架、初识flask
一.Python 现阶段三大主流Web框架 Django.Tornado.Flask 对比 Django 主要特点是大而全,集成了很多组件(例如Models.Admin.Form等等), 不管你用得到 ...