FJNU 1200 PY 思维题
来源:互联网 发布:Apache cxf wsdl 编辑:程序博客网 时间:2024/06/05 08:24
点击打开链接
题意:求f(i,j)=ai+aj+abs(i-j)的最大值,i,j<=1e5
=(a[i]+i)+(a[j]-j) (i>j)
枚举下标大的a[i]后,在1~i-1中找到最大的(a[j]-j)即可
pos[i]和a[i]配对的最大a[j]-j的下标
=(a[i]+i)+(a[j]-j) (i>j)
枚举下标大的a[i]后,在1~i-1中找到最大的(a[j]-j)即可
pos[i]和a[i]配对的最大a[j]-j的下标
#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <vector> using namespace std;typedef long long ll;typedef vector<int> vec;typedef vector<vec> mat;const int N=1e5+20;const ll mod=400;int a[N],pos[N];int main(){int t;cin>>t;while(t--){int n,p=0;cin>>n;for(int i=1;i<=n;i++)scanf("%d",&a[i]);ll ans=a[1]+a[2]+1;pos[2]=1;for(int i=3;i<=n;i++){ll t1=a[i]+a[i-1]+1;//i-1ll t2=a[i]+a[pos[i-1]]+(i-pos[i-1]);//i-1之前 if(t1>t2){pos[i]=i-1;}else{pos[i]=pos[i-1];}if(max(t1,t2)>ans)ans=max(t1,t2);}cout<<ans<<endl;}return 0;}
0 0
- FJNU 1200 PY 思维题
- FJNU
- FJNU校赛I题(dfs)
- FJNU第二十届低年级程序设计竞赛(正式赛)-1011 Problem-G-PY
- 2016Y FJNU 2016-2017学年第二十届低年级程序设计竞赛(正式赛) Problem G: PY
- FJNU校赛B题(dfs + bfs)
- py
- py
- py
- py
- py
- py
- py
- Py
- FJNU字符串
- FJNU字符串
- fjnu 1772
- 思维题
- 小知识点,笔记
- hexdump命令
- 线段树
- SDR技术原理解析 USRP收发原理
- 编程实现对输入的字符串进行逆序
- FJNU 1200 PY 思维题
- 【APIO2014】UOJ103 Palindromes【解法一】
- 作业2:计数器数码管显示
- Java 创建文件夹及文件
- 商城开发计划(1)
- 迷宫问题
- Linux下/proc目录简介
- 判断屏幕是在什么模式下
- 微信支付之统一下单