博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 374D - Inna and Sequence
阅读量:6690 次
发布时间:2019-06-25

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

思路:

树状数组+二分

因为被删的点最多N=1e6个,所以复杂度N*logN*logN

前段时间做过一道,这类题基本套路二分找没删除前的位置

代码:

#include
using namespace std;#define ll long long #define pb push_back#define mem(a,b) memset(a,b,sizeof(a))const int N=1e6+5;int n;int bit[N];int a[N];int ans[N];bool vis[N];vector
v;void add(int x,int a){ while(x<=1e6)bit[x]+=a,x+=x&-x;}int sum(int x){ int ans=0; while(x)ans+=bit[x],x-=x&-x; return ans;}int srch(int t){ int l=1,r=1e6,mid=(l+r)>>1; while(l
=t)r=mid; else l=mid+1; mid=(l+r)>>1; } return mid;}int main(){ ios::sync_with_stdio(false); cin.tie(0); for(int i=1;i<=1e6;i++)add(i,1); int cnt=0,t,m; cin>>n>>m; for(int i=0;i
>a[i]; for(int i=0;i
>t; if(t==-1){ v.clear(); for(int j=0;j
cnt)break; v.pb(l); } for(int j=0;j

 

转载于:https://www.cnblogs.com/widsom/p/8423154.html

你可能感兴趣的文章
oracle 10g中开启flashback功能
查看>>
分布式系统---3 MIT著名教授Nancy Lynch介绍
查看>>
Mysql分页查询丢失数据
查看>>
关于日期处理的工具类
查看>>
java注解 声明
查看>>
【编译打包】httpsqs-1.7-2.el6.src.rpm
查看>>
产品聚焦和市场细分
查看>>
linux下IPTABLES的一些配置
查看>>
Python虚拟环境:Vitualenv
查看>>
反思~~~~~~思绪有点乱
查看>>
jdk提供的并发容器
查看>>
Windows 8企业部署系列之(二)
查看>>
OpenStack neutron floatingips 与 iptables 深入分析
查看>>
linux终端乱码解决方法
查看>>
Mybatis批量更新和插入数据
查看>>
ubuntu16.04安装php5
查看>>
lamp整合三连发(1)
查看>>
C#前台线程和后台线程
查看>>
spring学习笔记一
查看>>
参加51CTO学院软考培训,我通过啦
查看>>