Description
小爱整天收到花。她有N个花瓶标号从0到N-1。如果她收到F朵花,她会选择一个花瓶A,尝试去放花进去那个花瓶。如果那个花瓶已经有花,她就顺序地找下一个,直到所有花都放完或者后面没有花瓶了。有时她会清理花瓶,把花瓶A到B(A<=B)之间的花全扔了。题解
暴力直接跑90分暴力+o3 500+ms正解是线段树,不过我这个蒟蒻肯定是不会打的
代码
#include#include using namespace std;int n,m,ans,k,x,y,last,c,v[50010];__attribute__((optimize("-O3")))int main(){ freopen("vase09.in","r",stdin); scanf("%d%d",&n,&m); for (int i=1;i<=m;i++) { scanf("%d%d%d",&k,&x,&y); if (k==1) { x++; k=x; c=y; last=0; while (y!=0&&k<=n) { if (v[k]==0&&c==y) { printf("%d ",k-1); v[k]=1; last=k; y--; } else if (v[k]==0) { v[k]=1; last=k; y--; } k++; } if (last!=0) printf("%d\n",last-1); else printf("Can not put any one.\n"); } else { x++;y++;ans=0; for (int i=x;i<=y;i++) { ans+=v[i]; v[i]=0; } printf("%d\n",ans); } } return 0;}