codeforces 722C. Destroying Array
来源:互联网 发布:linux怎么安装字体 编辑:程序博客网 时间:2024/05/19 08:43
题目链接:传送门
线段树的维护和更新
这是网上一份代码,学习了
#include <bits/stdc++.h>using namespace std;#define N 100100#define mod 1000000007#define inf 2000000000000000llstruct node{ long long int l,r,sum;}t[N];bool flag[N];int a[N],b[N];long long int c[N];int main(){ int i,j,n,m; cin>>n; for(i=1;i<=n;i++){ cin>>a[i]; t[i].l=i; t[i].r=i; t[i].sum=a[i]; } int x; for(i=1;i<=n;i++) cin>>b[i]; long long int Max=0; for(i=n;i>0;i--){ x=b[i]; flag[x]=1; if(flag[x-1]){ t[x].l=t[x-1].l; t[t[x].l].sum=t[t[x-1].l].sum+t[t[x].r].sum; t[x].sum=t[t[x].l].sum; if(flag[x+1]) t[t[x].l].r=t[x+1].r; else t[t[x].l].r=t[x].r; } if(flag[x+1]){ t[x].r=t[x+1].r; t[t[x].r].l=t[x].l; t[t[x].r].sum=t[t[x].r].sum+t[t[x].l].sum; t[t[x].l].sum=t[t[x].r].sum; if(flag[x-1]) t[t[x].r].l=t[x].l; } Max=max(Max,t[t[x].l].sum); Max=max(Max,t[t[x].r].sum); c[i]=Max; } for(i=2;i<=n;i++) cout<<c[i]<<endl; cout<<"0"<<endl; return 0;}
0 0
- codeforces 722C Destroying Array
- codeforces(722c)-Destroying Array
- Codeforces 722C. Destroying Array
- codeforces 722C. Destroying Array
- 【37.38%】【codeforces 722C】Destroying Array
- codeforces 722C Destroying Array 【线段树好题】
- codeforces 722C. Destroying Array map+multiset
- Codeforces 722C - Destroying Array By Assassin
- CodeForces - 722C Destroying Array (set)
- Codeforces #722C: Destroying Array 题解
- codeforces 722C Destroying Array 并查集带权
- codeforces-772C-Destroying Array
- Codeforces Round 722C:Destroying Array(离线)
- codeforces 722C Destroying Array ( 并查集 / Multiset )
- codeforces 722C. Destroying Array(并查集||set)
- CodeForces 722C Destroying Array(数组删除区间最大值)
- CodeForces 722C. Destroying Array(逆向思维)
- 【Codeforces 722 C Destroying Array】+ 并查集
- Deep&Wide Learning论文阅读笔记
- MongoDB提取指定的切片集
- 晨读美文推荐【英文悦读】-《a day so happy》
- 王小草【机器学习】笔记--无监督算法之聚类
- Android实训案例(一)——计算器的运算逻辑
- codeforces 722C. Destroying Array
- 程序崩溃时生成DUMP文件
- 程序员应该懂的九件事
- 51nod-1655 染色问题
- java 中的 空值
- 学习笔记之Spring入门HelloWorld
- 常用的Git命令
- php 导入csv文件
- Day Day Up