bzoj5194: [Usaco2018 Feb]Snow Boots
Posted AKCqhzdy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj5194: [Usaco2018 Feb]Snow Boots相关的知识,希望对你有一定的参考价值。
还真是。。
就是
的t3嘛。。。
#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> using namespace std; struct node { int a,id; }p[110000]; bool cmp1(node n1,node n2){return n1.a>n2.a;} struct query { int s,d,id; }q[110000]; bool cmp2(query q1,query q2){return q1.s>q2.s;} int pre[110000],nxt[110000]; bool as[110000]; int main() { int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&p[i].a), p[i].id=i; for(int i=1;i<=m;i++) scanf("%d%d",&q[i].s,&q[i].d), q[i].id=i; sort(p+1,p+n+1,cmp1); sort(q+1,q+m+1,cmp2); for(int i=1;i<=n;i++)pre[i]=i-1,nxt[i]=i+1; int tp=1,mmax=1; for(int i=1;i<=m;i++) { for(int j=tp;j<=n;j++) { if(p[j].a<=q[i].s){tp=j;break;} nxt[pre[p[j].id]]=nxt[p[j].id]; pre[nxt[p[j].id]]=pre[p[j].id]; mmax=max(mmax,nxt[p[j].id]-pre[p[j].id]); } if(mmax<=q[i].d)as[q[i].id]=true; else as[q[i].id]=false; } for(int i=1;i<=m;i++) if(as[i]==true)printf("1\n"); else printf("0\n"); return 0; }
以上是关于bzoj5194: [Usaco2018 Feb]Snow Boots的主要内容,如果未能解决你的问题,请参考以下文章
BZOJ 3942: [Usaco2015 Feb]Censoring
[BZOJ2591][Usaco 2012 Feb]Nearby Cows
bzoj3940 [Usaco2015 Feb]Censoring
BZOJ 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚