博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
9.22
阅读量:6432 次
发布时间:2019-06-23

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

100+30+70=200

T1水题,单调队列

#include
#include
#include
#include
#include
#define N 2005using namespace std;int n,m,ans,a[N],f[N][N],l[N],r[N],q[N];int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++)scanf("%d",&a[j]); for(int j=m;j>=1;j--)f[i][j]=a[j]?f[i][j+1]+1:0; } for(int i=1,j,top;i<=m;i++){ for(j=1,top=0;j<=n;j++){ while(top>0&&f[q[top]][i]>=f[j][i])top--; l[j]=q[top]; q[++top]=j; } for(j=n,top=0,q[0]=n+1;j>=1;j--){ while(top>0&&f[q[top]][i]>=f[j][i])top--; r[j]=q[top]; q[++top]=j; } for(j=1;j<=n;j++) ans=max(ans,min(r[j]-l[j]-1,f[j][i])); } printf("%d\n",ans); return 0;}

T2标程,数据都是错的,其实A了

#include
#include
#include
#include
#include
#define LL long longusing namespace std;struct data{ LL x,y; bool operator < (const data &a)const{ if(x==a.x)return y
=1;i--){ f[i]=1; for(int j=n;j>i;j--)if(c[j]

T3,莫队+O3+快读卡过。。

正解只按左端点排序,又是根号算法。。。

#pragma GCC optimize ("O3")#include
#include
#include
#include
#include
#define N 1000050using namespace std;int be[N],n,m,nn,a[N],f[N];struct QQ{ int l,r,id;}qu[N];bool cmp1(QQ a,QQ b){ if(be[a.l]!=be[b.l])return be[a.l]
qu[i].r){ --num[a[r]]; if(num[a[r]]==a[r])++sum; if(num[a[r]]==a[r]-1)--sum; --r; } while(l
qu[i].l){ --l;++num[a[l]]; if(num[a[l]]==a[l])++sum; if(num[a[l]]==a[l]+1)--sum; } f[qu[i].id]=sum; }}int read(){ int a=0;char ch=getchar(); while(ch<'0'||ch>'9')ch=getchar(); while(ch>='0'&&ch<='9'){a=a*10+(ch^48);ch=getchar();} return a;}int main(){ //freopen("test.in","r",stdin); //freopen("my.out","w",stdout); n=read(); m=read(); //nn=(int)sqrt(n); nn=2000; for(int i=1;i<=n;i++){ a[i]=read(); be[i]=(i-1)/nn+1; } for(int i=1;i<=m;i++){ qu[i].l=read();qu[i].r=read(); qu[i].id=i; } sort(qu+1,qu+m+1,cmp1); work(); for(int i=1;i<=m;i++) printf("%d\n",f[i]); return 0;}

转载于:https://www.cnblogs.com/Ren-Ivan/p/7746663.html

你可能感兴趣的文章
easyui messager alert 三秒后自动关闭提示
查看>>
core data 基础操作
查看>>
ORM框架Hibernate (四) 一对一单向、双向关联映射
查看>>
20140616 科技脉搏 -最大颠覆来自创业公司与边缘产业
查看>>
offsetLeft, offsetTop以及postion().left , postion().top有神马区别
查看>>
数据库中触发器before与after认识
查看>>
手动露天广场和立方体
查看>>
随机选择
查看>>
【Java并发编程三】闭锁
查看>>
分布式事务中遇到的 “与基础事务管理器的通信失败”的解决方法
查看>>
让你的Git水平更上一层楼的10个小贴士
查看>>
c++ string 之 find_first_not_of 源码
查看>>
mybatis中的#和$的区别
查看>>
ubuntu下搭建NDK环境
查看>>
MessageDigest简单介绍
查看>>
webpack window 使用sass来编译css样式
查看>>
D3 & Data Visualization in Ext JS
查看>>
java通过UUID生成16位唯一订单号
查看>>
001-web基本程序搭建
查看>>
函数指针和指针函数
查看>>