1 条题解
-
3
题目链接
来源 CZOJ。
题目思路
考虑贪心,对于每个为 的位置只设置比前面高 ,尽可能的让后面的位置选的高度数量更多。
完整代码
#include<bits/stdc++.h> using namespace std; int n; int ans[100020]; int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>ans[i]; if(ans[i]==0)ans[i]=ans[i-1]+1; } for(int i=1;i<=n;i++) { if(ans[i]<=ans[i-1]||ans[i]>1000000000||ans[i]<=0) { puts("NO"); return 0; } } puts("YES"); for(int i=1;i<=n;i++) { cout<<ans[i]<<" "; } cout<<endl; return 0; }
- 1
信息
- ID
- 674
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 1
- 标签
- 递交数
- 170
- 已通过
- 69
- 上传者