文章

166

粉丝

68

获赞

855

访问

61.6k

头像
使序列转化为非递减序列 题解:变化次数统计
P5231
发布于2025年3月10日 11:26
阅读数 282

#include <bits/stdc++.h>
using namespace std;

int main() {
	int n;
	while(cin>>n){
	    vector<int>a(n);
	    for(int i=0;i<n;i++)cin>>a[i];
	    int sum=0;
	    for(int i=1;i<n-1;i++){
	        if((a[i]<a[i-1])||(a[i]>a[i+1])){
	            sum++;
	            a[i]=(a[i-1]+a[i+1])/2;
	        }
	    }
	    if(sum==1){
	        if(a[0]<=a[1])cout<<1<<endl;
	        else cout<<0<<endl;
	    }
	    else cout<<0<<endl;
	}

}

我们只需要把不是的变成是的即可,但是这样的话,三个的情况就会因为没有下一个,无法真正变成递增而无法完成任务,那么我们加上一个额外的判断,保证初始也递增,就可以了

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发