代码求调
查看原帖
代码求调
525141
_shine_楼主2024/4/13 15:34

rt。

#include <bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define lx first
#define ly second
const int maxn=2e5+10;
int T,n,a[maxn];
int b[100][100],cntb[100];
int k[]={0,0,0,1,0,0,1,1,0,1};
void init(){
    for(int i=1;i<=9;++i){
        int firstly=(i+i)%10;b[i][1]=firstly,cntb[i]=1;
        for(int j=(firstly*2)%10,k=2;j!=firstly;k++,j=(j*2)%10)b[i][k]=j,cntb[i]=k;
    }
}
bool check(){bool flag1=0,flag2=0;for(int i=1;i<=n;++i)if(a[i]%10==5 || a[i]%10==0)flag1=true;else flag2=true;if(flag1==true && flag2==true)return true;return false;}
bool check1(){for(int i=1;i<=n;++i)if(a[i]%10==5 || a[i]%10==0)return true;return false;}
signed main(){
    scanf("%d",&T);
    init();
    while(T--){
        scanf("%d",&n);for(int i=1;i<=n;++i)scanf("%d",a+i);
        sort(a+1,a+n+1);
        if(check()==true){puts("No");}
        else if(check1()==true){if(a[n]-a[1]>5)puts("No");else puts("Yes");}
        else{bool check_look=0;
            if(a[1]%10==3 || a[1]%10==6 || a[1]%10==7 || a[1]%10==9){for(int i=1;i<=9;++i)k[i]^=1;check_look=1;}int ans=0;
            for(int i=2;i<=n;++i){if((abs(a[i]/10-a[1]/10)-k[a[i]%10])%2!=0){/*cout << i << " " << abs(a[i]/10-a[1]/10)-k[a[i]%10] << endl;*/ans=true;break;}}
            if(ans==true){puts("No");}
            else puts("Yes");
            if(check_look==1)for(int i=1;i<=9;++i)k[i]^=1;
        }
    }
    return 0;
}
2024/4/13 15:34
加载中...