竞赛讨论区 > B题求助
头像
484A51
发布于 2022-02-12 18:11
+ 关注

B题求助

求助:B题我都快WA没了。

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5+10;
const int M=998244353;
int a[N];
signed main()
{
    int t;
    a[0]=-1;
    cin>>t;
    while(t--){
        int ans=1,n,as=1;
        cin>>n;
        for(int i=1;i<=n;i++){
            cin>>a[i];
            if(a[i]==a[i-1]) as=((as%M)*2)%M;
            if(a[i-1]==a[i-2]&&a[i]!=a[i-1]) as=((as%M*2)%M-1+M)%M,ans*=as,as=1;
        }
        if(a[n]==a[n-1]) as=((as%M*2)%M-1+M)%M,ans*=as;//连续的相等数字
        for(int i=2;i<n;i++){
            if((a[i]>a[i-1]&&a[i]<a[i+1])||(a[i]<a[i-1]&&a[i]>a[i+1])) ans=((ans%M)*2)%M;//单调上升或下降的数字
        }
        cout<<ans<<"\n";
    }
    return 0;
}

全部评论

(3) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐