博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2013 长沙网络赛J题
阅读量:4673 次
发布时间:2019-06-09

本文共 1766 字,大约阅读时间需要 5 分钟。

 

思路:这题对于其他能退出所有值的情况比较好像,唯一不能确定的是XXOXXOXXOXX这个形式的序列,其中XX表示未知,O表示已知。

我们令num[1]=0,那么num[4]=sum[3]-sum[2]+num[1];

可以递推,num[i]=sum[i-1]-sum[i-2]+num[i-3],(i%3==1)。

这样求出来的每个num值就是相对于num[1]的值。

假使某个num[i]<0,表示第i个数相对于num[1]为负数,题目要求每个数都大于等于0,所以num[1]>=(-num[i])。

所以num[1]>=max(-num[i]).

同理可以求出所有相对于num[2]的值。

 

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define pb push_back#define mp make_pair#define Maxn 100010#define Maxm 200010#define LL __int64#define Abs(x) ((x)>0?(x):(-x))#define lson(x) (x<<1)#define rson(x) (x<<1|1)#define inf 100000#define lowbit(x) (x&(-x))#define clr(x,y) memset(x,y,sizeof(x))#define Mod 1000000007using namespace std;int num[Maxn],sum[Maxn],val[Maxn];int main(){ int n,m,i,j,x1,x2,x; while(scanf("%d",&n)!=EOF){ for(i=1;i<=n;i++) scanf("%d",num+i); for(i=1;i<=n;i++) scanf("%d",sum+i); num[3]=sum[2]-sum[1]; for(i=4;i<=n;i++) if(num[i-3]>=0){ num[i]=sum[i-1]-sum[i-2]+num[i-3]; } num[n-2]=sum[n-1]-sum[n]; for(i=n-3;i>=1;i--) if(num[i+3]>=0){ num[i]=sum[i+1]-sum[i+2]+num[i+3]; } if(num[1]>=0) num[2]=sum[1]-num[1]; if(num[2]>=0) num[1]=sum[1]-num[2]; for(i=4;i<=n;i++) if(num[i-1]>=0&&num[i-2]>=0){ num[i]=sum[i-1]-num[i-1]-num[i-2]; } x1=x2=0; for(i=4;i<=n;i+=3) if(num[i]<0){ val[i]=val[i-3]-sum[i-2]+sum[i-1]; x1=max(x1,-val[i]); } for(i=5;i<=n;i+=3) if(num[i]<0){ val[i]=val[i-3]-sum[i-2]+sum[i-1]; x2=max(x2,-val[i]); } scanf("%d",&m); while(m--){ scanf("%d",&x); x++; if(num[x]>=0){ printf("%d\n",num[x]); continue; } if(x%3==1){ printf("%d\n",sum[1]-x2+val[x]); continue; } printf("%d\n",sum[1]-x1+val[x]); } } return 0;}

转载于:https://www.cnblogs.com/wangfang20/p/3335651.html

你可能感兴趣的文章
5.递归实现,把M元用最少的硬币来凑。不同面值的硬币,有10元,5元,2元,1元。...
查看>>
第6章—渲染web视图—使用Thymeleaf
查看>>
Android动态添加Fragment
查看>>
OGRE粒子系统简介
查看>>
C、C++语言中参数的压栈顺序
查看>>
用jquery实现简单的表单验证
查看>>
自然语言3——官网介绍
查看>>
lucene 搜索学习笔记 - OK
查看>>
Java的垃圾回收
查看>>
java中的与或运算
查看>>
Pycharm连接BitBucket
查看>>
ftp 批量上传文件命令
查看>>
nlog自定义文件名
查看>>
java环境变量配置
查看>>
Mysql中文乱码问题解决
查看>>
make clean指令出现问题
查看>>
巴中故里
查看>>
Docker(一):Docker入门
查看>>
异常检测(Anomaly detection): 异常检测算法(应用高斯分布)
查看>>
6、easyUI-拖放事件及应用
查看>>