题目大意:

给出两个长度为n的序列A,B,从1开始依次加Ai,减Bi,分数为第一次为当前和为负数的位置以前的Ai之和(左闭右开区间)。同时有一种操作可以把当前的A1,B1移动到序列最后,注意序列A的各个元素之和等于B的各个元素之和。问取得最大分数时,至少应该操作多少次。如果分数相同,输出移动较少的次数;

基本思路:

出了以下前缀和,然后用一个sum(初始值为0)来当做判断条件,然后比这个小,就更新并记录一下下标,(每次更新说明和上一次更新这一段里的书是负数),然后最后输出下标,就是移动个数(前提是下标是从1开始的);

总结与反思:

有想过前缀和,但没想到这样怎么判断某一段是不是负数,好蠢啊,然后一定要掌握这种思路;

代码如下:

#include<cstdio>
#include<algorithm>
#include<iostream> using namespace std; const int maxn = 2000000+10; ll ans[maxn]; int main()
{
while(scanf("%d",&n)==1)
{
for(int i=1;i<=n;i++) scanf("%lld",&ans[i]);
ll x;
for(int i=1;i<=n;i++)
{
scanf("%lld",&x);
ans[i]-=x;
}
for(int i=2;i<=n;i++) ans[i]+=ans[i-1];
ll sum=0;
int res=0;
for(int i=1;i<=n;i++)
{
if(ans[i]<sum)
{
sum=ans[i];
res=i;
}
}
printf("%d\n",res%n);
}
return 0;
}

  

最新文章

  1. 去IOE的一点反对意见以及其他
  2. MVC AjaxOptions 中的OnSuccess方法执行多次的问题
  3. html规范
  4. 布隆过滤器的概述及Python实现
  5. android 入门-git之上传本地代码到github
  6. hive处理hbase数据
  7. an error occured during the file system check
  8. PCB板蛇形走线有什么作用
  9. Find The Multiple(bfs)
  10. 【Alpha】第六次Daily Scrum Meeting
  11. hbase 导入导出、hbase shell 基本命令。
  12. 关于return的一些了解
  13. 记录遭遇挖矿程序kthrotlds的失败处理经历
  14. Angularjs1.X进阶笔记(1)—两种不同的双向数据绑定
  15. openal在vs2010中的配置
  16. MUI 添加自定义图标(注意点)
  17. JS--bom对象:borswer object model浏览器对象模型
  18. 使用JSch远程执行shell命令
  19. Youtube高清视频下载的3种方法
  20. canvas 遮罩

热门文章

  1. Android功耗评测系列之——软件评测方案原理
  2. k8s--网络模式
  3. 手写Spring事务框架
  4. 服务器中卸载JDK
  5. InnoDB事务之redo log工作原理
  6. Halo(二)
  7. chroot()使用
  8. 【Flutter学习】可滚动组件之ScrollView
  9. 自己动手写ORB特征
  10. Docker Machine 管理-安装docker-machine(15)