本文主要是介绍CodeForces 1000~1500记录(第一周),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、1000
1、Array Fix
传送门
AC code
#include<bits/stdc++.h>
using namespace std;
int a[55];
int merger(int x,int y){int ge=x%10;int shi=x/10;if(ge<=y){if(shi<=ge){return shi;}}return false;
}
int main(){int t; cin>>t;while(t--){int n; cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}int f=0;for(int i=n;i>=2;i--){if(a[i-1]>a[i]){if(!merger(a[i-1],a[i])){f=1;break;}else{a[i-1]=merger(a[i-1],a[i]);}}}if(f) cout<<"NO"<<endl;else cout<<"YES"<<endl;}
}
从后向前遍历的原因
因为每一次拆分后的数据,会影响整个数组的增或减的性质,也就是,拆分后的数据,还需要再次判断使用。
这篇关于CodeForces 1000~1500记录(第一周)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!