#707 B;思路:差分,输入一个ai那么就用差分的方式快速把上面ai层加上1;最后判断哪一个是0是的输出0,否则输出1;#include<stdio.h>#include<string.h>int ai[100010];int bi[100010];int ci[100010];int main(){ int t; scanf("%d",&t); while(t--) { int n; memset(bi,0,sizeof(bi)); scanf("%d",&n); for(int i=1;i<=n;i++) { int x; scanf("%d",&x); if(x>=i) { bi[1]++; bi[i+1]--; } else { bi[i-x+1]++; bi[i+1]--; } } ci[0]=0; for(int i=1;i<=n;i++) { ci[i]=ci[i-1]+bi[i]; } for(int i=1;i<=n;i++) { if(ci[i]==0)printf("0 "); else printf("1 "); } printf("\n"); } return 0;}