为何RE on #9
查看原帖
为何RE on #9
1492018
noiiloveyou楼主2025/2/3 15:49

懒得动脑,直接按提示说的做,结果88 pts,最后一个测试点RE。

#include<bits/stdc++.h>
using namespace std;
bitset<100000100LL> vis;
long long a,b;
int ws(long long d){
    long long k=10;
    for(int i=1;;++i){
        if(d<k){
            return i;
        }
        else{
            k*=10;
        }
    }
}
void iss(long long d){
    if(!vis[d] && d>=a && d<=b){
        cout<<d<<endl;
    }
}
void fhw(int d){
    int d1,d2,d3,d4,d5;
    switch(d){
        case 1:
            for(int i=1;i<10;i+=2){
                iss(i);
            }
            break;
        case 2:
            for(int i=1;i<10;i+=2){
                iss(i*11);
            }
            break;
        case 3:
            for (d1 = 1; d1 <= 9; d1+=2) {
                for (d2 = 0; d2 <= 9; d2++) {
                    iss(d1*101+d2*10);
                }
            }
            break;
        case 4:
            for (d1 = 1; d1 <= 9; d1+=2) {
                for (d2 = 0; d2 <= 9; d2++) {
                    iss(d1*1001+d2*110);
                }
            }
            break;
        case 5:
            for (d1 = 1; d1 <= 9; d1+=2) {
                for (d2 = 0; d2 <= 9; d2++) {
                    for (d3 = 0; d3 <= 9; d3++) {
                        iss(10000*d1 + 1000*d2 +100*d3 + 10*d2 + d1);
                    }
                }
            }
            break;
        case 6:
            for (d1 = 1; d1 <= 9; d1+=2) {
                for (d2 = 0; d2 <= 9; d2++) {
                    for (d3 = 0; d3 <= 9; d3++) {
                        iss(d1*100001+d2*10010+d3*1100);
                    }
                }
            }
            break;
        case 7:
            for (d1 = 1; d1 <= 9; d1+=2) {
                for (d2 = 0; d2 <= 9; d2++) {
                    for (d3 = 0; d3 <= 9; d3++) {
                        for(d4=0;d4<10;++d4){
                            iss(d1*1000001+d2*100010+d3*10100+d4*1000);
                        }
                    }
                }
            }
            break;
        case 8:
            for (d1 = 1; d1 <= 9; d1+=2) {
                for (d2 = 0; d2 <= 9; d2++) {
                    for (d3 = 0; d3 <= 9; d3++) {
                        for(d4=0;d4<10;++d4){
                            iss(d1*10000001LL+d2*1000010LL+d3*100100+d4*11000);
                        }
                    }
                }
            }
            break;
        case 9:
            for (d1 = 1; d1 <= 9; d1+=2) {
                for (d2 = 0; d2 <= 9; d2++) {
                    for (d3 = 0; d3 <= 9; d3++) {
                        for(d4=0;d4<10;++d4){
                            for(d5=0;d5<10;++d5){
                                iss(d1*100000001LL+d2*10000010LL+d3*1000100LL+d4*101000+d5*10000);
                            }
                        }
                    }
                }
            }
            break;
    }
}
int main(){
    cin>>a>>b;
    vis[0]=vis[1]=1;
    for(int i=2;i*i<=b;++i){
        if(!vis[i]){
            for(int j=2;j*i<=b;++j){
                vis[i*j]=1;
            }
        }
    }
    for(int i=ws(a);i<=ws(b);++i){
        fhw(i);
    }
    return 0;
}
2025/2/3 15:49
加载中...