目的:分别从前面和后面开始找划分点,使得前面的数字之和 = 后面的数字之和

目标表述:sum( 前面m 个数 ) = sum( 后面n个数) s.t. m+n <= N(总个数)

变形:sum[i] 表示前 i 个数之和,sum2[i]表示后 i 个数之和

如果 sum[m] == sum2[n] ,s.t., m+n <= N,问题解决!

#include <iostream>
using namespace std;
typedef long long lint;lint a[200002] ={0};
lint sum[200002] ={0};
lint sum2[200002] ={0};// 在 sum2[] 中搜索是否有元素= q,因为 sum2 单调递增,所以可以用二分查找
// 搜索范围从 sum2[1] 到 sum2[limit]
// 返回值: 找到就返回序号,没找到就返回 -1
int bi_search(lint q, int limit){if( q < sum2[1] || q > sum2[limit] ) return -1;int left = 1, right = limit, mid;while( left <= right ){mid = (left+right)/2;if( sum2[left] == q ) return left;if( sum2[right] == q ) return right;if( sum2[mid] == q ) return mid;if( mid == left) break;if( sum2[mid] > q )right = mid;elseleft = mid;}return -1;
}int main()
{int n;cin >> n;for(int i=1;i<=n;i++)   // 从1开始{scanf("%lld",&a[i]);sum[i] = sum[i-1] + a[i];}for(int i=n;i>=1;i--)sum2[n+1-i] = sum2[n-i] + a[i];/************ match ************/lint max_gain = 0;for(int i=1;i<n;i++){int j = n - i; // 取值的范围if( bi_search(sum[i],j) != -1 )max_gain = sum[i];}cout << max_gain << endl;return 0;
}

快手2019校招笔试题相关推荐

  1. 百度2019校招笔试题

    百度2019校招笔试题 1. 探险安排 小明要为n个人计划一次火星的探险,其中一个重要的任务是为每个参与者安排食物.仓库里面有m个能用一天的食物包裹,每个食物包裹有不同的类型ai.每个人每天必须用且只 ...

  2. 快手2020校招笔试题 2019.8.25

    算法A试卷部分编程题 求解字符串表示的一元一次方程. 思路:将等式右侧的表达式左移,即将等号替换为-(,并在最后添加上).然后将表达式的变量X替换为虚数的1j,这样就能通过python的eval函数来 ...

  3. 美团点评2019校招笔试题——前端开发方向(附答案)

    2019年美团点评前端开发岗位校招笔试题目,虽然不是最新的,但面试题万变不离其宗,掌握了想要考察的知识点才是重要的. 1.单选题 点击"计算"按钮后输出结果为( ) A 11.5 ...

  4. 字节跳动2019校招笔试题(后端开发)一

    题目描述 第一题:产品经理转程序员 c++版代码 测试用例可以通过 #include <iostream> #include <string> #include <vec ...

  5. 思特奇2019校招笔试题

    这里仅记录自己不会的哦,有需要的可以参考下哦 1Java接口的修饰符可以为(d) A.private        B.proected         C.final          D.abst ...

  6. 搜狐畅游2019校招笔试题-游戏开发工程师(java)

    题目描述: 一组无序的自然数集合,由0,1,2,,,,n的数字和一个的数字X组成,请从集合中找出这个重复的数字X. 例子: 输入:1 2 3 1 4 输出:1 public class Main {p ...

  7. 巨人网络2019校招笔试题

    巨人网络笔试,游戏开发岗位.前面8个选择题,主要考的是基础,里面有一道SQL题.后面两道填空题,都是考的指针.两道问答题,第一个具体是什么,不记得了:第二个是考的Linux,列举常用Linux命令.最 ...

  8. 深信服笔试题 php,2019深信服校招笔试题------木板接水

    2019深信服校招笔试题--木板接水 题目: 空地上竖立着n个从左到右排列的木板,它们可以把水挡住,但溢出最边上木板的水将会流到空地上.已知木板间距都是单位1,现给定每个木板的高度,请求出总共能接住的 ...

  9. 关于python类的继承正确的说法是_2017美团点评的运维岗校招笔试题,测测你会几题?...

    原标题:2017美团点评的运维岗校招笔试题,测测你会几题? 1.数据库:以下哪项不是HASH索引的特征? A MySQL不能确定在两个值之间大约有多少行 B 不能使用hash索引来加速ORDER BY ...

最新文章

  1. SAP库存历史库存表更新逻辑
  2. js中图片显示用ajax,javascript - 前台用ajax上传图片,怎么让图片上传完成显示的缩略图片的时候显示分辨率大小...
  3. 清华大学「天机」芯片登上Nature封面:类脑加传统计算融合实现通用人工智能...
  4. C 流插入和流提取运算符的重载
  5. 【ES6(2015)】Generator
  6. cglib动态代理jar包_Java中的原生动态代理和CGLIB动态代理的原理,我不信你全知道!...
  7. 计算机视觉CV中特征点提取SIFT算法的学习笔记
  8. CentOS 7 安装OpenOffice并实现WordToPDF(Java调用)
  9. 杨强教授领衔撰写,国内首本联邦学习实战的权威著作
  10. arcgis裁剪失败
  11. Java实现微信公众号模板消息管理群发和单发
  12. maven3实战之仓库(仓库搜索功能)
  13. 电路设计中晶体和晶振的区别
  14. Java解析Excel 获取文本和图片信息
  15. python-面向对象的编程
  16. Java程序流程控制(符号函数sgn、闰年判断)
  17. Apache ShardingSphere 企业行|走进中商惠民
  18. 变脸软件成犯罪帮凶​,上万个限用微信号被“复活”
  19. Mybatis-Plus的条件构造器(Wrapper)
  20. LTE default bearer dedicated bearer and radio bearer

热门文章

  1. 【PostgreSQL】数据表的增删改查
  2. shell 脚本处理多行文本的记录 -- awk
  3. 上海科技大学和南方科技大学计算机,上海科技大学和南方科技大学哪个好?哪个更容易考?...
  4. 基本面量化(Quantamental)——财务指标量化策略
  5. 【李超线段树】BZOJ3165 [Heoi2013]Segment
  6. Java实现 LeetCode 187 重复的DNA序列
  7. ckeditor4.6.2上传图片thinphp3.3.2
  8. 技能梳理9@RGB+WS2812+ESP32
  9. bzoj1038: [ZJOI2008]瞭望塔
  10. A10+Android4.0 音频驱动