CodeForces 451B 模拟
2014-07-27 23:58
405 查看
泪流满面。。
这题思路本来很简单,开始看错了题,后来又被我想复杂了,结果写代码的时候越写越晕不知道在干啥。。
终于过了样例后一直RE。。
题意就是一串数字,翻转其中一段一次能不能得到有序序列?
只需先从左到右遍历,找比前一个数小的下标,然后从右往左遍历,找比后一个数小的下标,最后将这段区间逆序,判断整个序列是否单调递增
这题思路本来很简单,开始看错了题,后来又被我想复杂了,结果写代码的时候越写越晕不知道在干啥。。
终于过了样例后一直RE。。
题意就是一串数字,翻转其中一段一次能不能得到有序序列?
只需先从左到右遍历,找比前一个数小的下标,然后从右往左遍历,找比后一个数小的下标,最后将这段区间逆序,判断整个序列是否单调递增
#include<iostream> #include<algorithm> #define maxn 100010 using namespace std; int a[maxn]; int main() { int n,x=1,y=1; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<n;i++){ if(a[i]>a[i+1]){ x=i;break; } } for(int i=n;i>=1;i--){ if(a[i]<a[i-1]){ y=i; break; } } reverse(a+x,a+y+1); int flag=0; for(int i=1;i<n;i++){ if(a[i]>a[i+1]){ flag=1; break; } } if(flag) cout<<"no"<<endl; else cout<<"yes"<<endl<<x<<" "<<y<<endl; return 0; }
相关文章推荐
- Codeforces 344D Alternating Current【模拟】
- codeforces 691A 模拟
- Codeforces 461C Appleman and a Sheet of Paper(模拟)
- Codeforces 581D Three Logos 模拟 枚举
- Codeforces 230C Shifts(模拟)
- Codeforces 676D Theseus and labyrinth 模拟+bfs
- codeforces 651A A. Joysticks (模拟)
- Codeforces 821C Okabe and Boxes 思维模拟
- Codeforces 792C Divide by Three By Assassin [模拟]
- 模拟· CodeForces - 748B · Santa Claus and Keyboard Check
- CodeForces 234G 二分模拟
- CodeForces - 651A Joysticks (找规律&模拟)水
- CodeForces 691C Exponential notation(模拟)
- codeforces 900B. Position in Fraction(暴力+模拟)
- Codeforces 797C Minimal String 贪心+模拟
- CodeForces 173C Spiral Maximum (想法、模拟)
- codeforces 719C (复杂模拟-四舍五入-贪心)
- CodeForces 689A Mike and Cellphone (模拟+水题)
- Codeforces 864C Round#436 C :果然还是模拟最难
- CodeForces 388A Fox and Box Accumulation (模拟)