AcWing 3729. 改变数组元素
原题链接
中等
作者:
小陈同学
,
2023-02-13 21:58:25
,
所有人可见
,
阅读 134
算法1
(暴力枚举) $O(n^2)$
C++ 代码
#include<iostream>
#include<cstring>
using namespace std;
const int maxn=200100;
int a[maxn];
int v[maxn];
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
int temp=0;
memset(v,0,sizeof(v));
for(int i=1;i<=n;++i)cin>>a[i];
for(int i=n;i>=1;--i)//逆向考虑更好理解,也可正向
{
temp=max(temp,a[i]);//能影响到前面多少位变为1,初始化为0,不需要考虑0
if(temp>0)
{
v[i]=1;
temp--;
}
}
for(int i=1;i<=n;++i)
cout<<v[i]<<" ";
cout<<endl;
}
}