Lecture Sleep(尺取+前缀和)
Description
Input
Output
只打印一个整数 - 只用一次技巧来唤醒Mishka,他可以记下的定理的最大数量。
Sample Input
Input
6 3
1 3 5 2 5 4
1 1 0 1 0 0
Output
16
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
int n,k,sum=,tmp=,ans=-,x,j,i;
int a[];
int vis[];
scanf("%d%d",&n,&k);
for(i=;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=;i<n;i++)
{
scanf("%d",&vis[i]);
if(vis[i])///只要是醒着的时候都能记住定理
{
sum=sum+a[i];
}
}
for(i=;i<k;i++)
{
if(!vis[i])
{
tmp=tmp+a[i];///tmp储存的是使用某种方法之后能记住的定理的增量
}
}
i=;
j=i+k-;///以使用某种方法的作用时间作为尺取的尺度
while()
{
ans=max(ans,sum+tmp);
if(!vis[i])
{
tmp=tmp-a[i];
}
i++;
j++;
if(j==n)///尺取到头就要终止遍历
{
break;
}
if(!vis[j])
{
tmp=tmp+a[j];
}
}
printf("%d\n",ans);
return ;
}
前缀和的方法
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
int a[];
int vis[];
int sum[];
int per[];
int main()
{
int n,k,i,j,maxt;
int x,y,z;
scanf("%d%d",&n,&k);
for(i=; i<=n; i++)
{
scanf("%d",&a[i]);
sum[i]=sum[i-]+a[i];///sum储存的是前i项老师讲的定理和
}
for(i=; i<=n; i++)
{
scanf("%d",&vis[i]);
if(vis[i])
{
per[i]=per[i-]+a[i];///per储存的是前i项mishka听到的定理和
}
else
{
per[i]=per[i-];
}
}
maxt=;
for(i=; i<=n-k+; i++)
{
x=per[i-];///之前听到的定理
y=sum[i+k-]-sum[i-];///中间老师讲到的定理,在这里可以使用某一种方法,使得可以听到老师所讲的内容
z=per[n]-per[i+k-];///后面听到的定理
maxt=max(maxt,x+y+z);
}
printf("%d\n",maxt);
return ;
}
看到一个大神有更为优化的前缀和的方法
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
int a[];
int main()
{
int n,k,i,j,maxt,ans,b;
int x,y,z;
scanf("%d%d",&n,&k);
ans=;
maxt=;
for(i=; i<=n; i++)
{
scanf("%d",&a[i]);
}
for(i=; i<=n; i++)
{
scanf("%d",&b);
if(b)
{
ans=ans+a[i];///ans里面储存的是上课能听到的所有定理
a[i]=;///听到了的重置为0
}
a[i]=a[i-]+a[i];///a[i]///里面储存的是前i项上课没有听到的
}
for(i=k; i<=n; i++)
{
maxt=max(maxt,a[i]-a[i-k]);
}
printf("%d\n",maxt+ans);
return ;
}
Lecture Sleep(尺取+前缀和)的更多相关文章
- Intense Heat(前缀和或尺取)
The heat during the last few days has been really intense. Scientists from all over the Berland stud ...
- poj2566尺取变形
Signals of most probably extra-terrestrial origin have been received and digitalized by The Aeronaut ...
- POJ3061 Subsequence 尺取or二分
Description A sequence of N positive integers (10 < N < 100 000), each of them less than or eq ...
- Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot 【二分 + 尺取】
任意门:http://codeforces.com/contest/1073/problem/C C. Vasya and Robot time limit per test 1 second mem ...
- POJ:2566-Bound Found(尺取变形好题)
Bound Found Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5408 Accepted: 1735 Special J ...
- 2018亚洲区预选赛北京赛站网络赛 D.80 Days 尺取
题面 题意:你带着K元要去n个城市,这n个城市是环形的,你可以选择任意一个起点,然后顺时针走,对于每个城市,到达时可以获得a元,但是从这里离开又需要花费b元,问你能否找到一个起点(输出花钱最少的那个) ...
- POJ-3061 Subsequence 二分或尺取
题面 题意:给你一个长度为n(n<100000)的数组,让你找到一个最短的连续子序列,使得子序列的和>=m (m<1e9) 题解: 1 显然我们我们可以二分答案,然后利用前缀和判断 ...
- Gym 101257G:24(尺取)
http://codeforces.com/gym/101257/problem/GGym 101257G 题意:给出n个人,和一个数s,接下来给出每个人当前的分数和输掉的概率.当一个人输了之后就会掉 ...
- Codeforces - 1191E - Tokitsukaze and Duel - 博弈论 - 尺取
https://codeforc.es/contest/1191/problem/E 参考自:http://www.mamicode.com/info-detail-2726030.html 和官方题 ...
随机推荐
- Springmvc+Spring+Mybatis整合开发(架构搭建)
Springmvc+Spring+Mybatis整合开发(架构搭建) 0.项目结构 Springmvc:web层 Spring:对象的容器 Mybatis:数据库持久化操作 1.导入所有需要的jar包 ...
- 企业SVN版本管理与代码上线方案
1.SVN服务实战 1) 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统.Sv ...
- C 二维数组,以及自定义二维数组
C 二维数组,以及自定义二维数组 我们通常情况下是这样定义一个二维数组的: int a[10][15]; 我们分别查看一下a,a[0],*a 都是一样的值吧 我们可以这么理解: a是一个数组的数组 a ...
- Jetson tx2 串口通信
主要参考了这篇博客:https://blog.csdn.net/zomb1e0117/article/details/85157014 其中需要注意的是最后的时候cutecom端口需要把设备改为:/d ...
- HyperLedger Fabric 1.4 多机多节点部署(10.3)
多机多节点指在多台电脑上部署多个组织和节点,本案例部署一个排序(orderer)服务,两个组织(org1,org2)和四个节点(peer),每个组织包括两个节点,需要五台计算机,计算机配置如下: 多机 ...
- shell之lvm
#!/bin/bash #this script for LVM echo "Initial a disk..." echo -e "\033[31mWarning: ...
- 汇编中resb这样的指令是什么意思?
转载下来,方便以后查看 原作网址:http://blog.csdn.net/m1j2t3/article/details/5681657 汇编中resb这样的指令是什么意思? 还有我在汇编程序中看到这 ...
- Java基础—ArrayList源码浅析
注:以下源码均为JDK8的源码 一. 核心属性 基本属性如下: 核心的属性其实是红框中的两个: //从注释也容易看出,一个是集合元素,一个是集合长度(注意是逻辑长度,即元素的个数,而非数组长度) 其中 ...
- 南京Uber优步司机奖励政策(1月4日~1月10日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- ORB-SLAM(八)ORBmatcher 特征匹配
该类负责特征点与特征点之间,地图点与特征点之间通过投影关系.词袋模型或者Sim3位姿匹配.用来辅助完成单目初始化,三角化恢复新的地图点,tracking,relocalization以及loop cl ...