3 条题解

  • 9
    @ 2023-6-2 1:32:16
    #include<iostream>
    #include<algorithm>
    using namespace std;
    struct data{
        int a,b;
    };
    data ans[10010];
    int n,m,cnt;
    bool book[250*250*2+10];
    bool cmp(data x,data y){
        if(x.b<y.b)return true;
        if(x.b==y.b&&x.a<y.a)return true;
        return false;
    }
    int main(){
        cin>>n>>m;
        for(int i=0;i<=m;i++)
        for(int j=0;j<=m;j++)
        book[i*i+j*j]=true;
        int maxm=m*m*2; 
        for(int i=0;i<=maxm;i++)
        if(book[i])
        for(int j=i+1;j<=maxm;j++)
        if(book[j]){
            int d=j-i;
            int maxi=i+d*(n-1);
            if(maxi>maxm)break;
            bool f=true;
            for(int j=i+d;j<=maxi;j+=d)
            if(!book[j]){
                f=false;
                break;
            }
            if(f){
                cnt++;
                ans[cnt].a=i;
                ans[cnt].b=d;
            }
        }
        if(cnt==0){
        	cout<<"NONE";
        	return 0;
        } 
        sort(ans+1,ans+cnt+1,cmp);
        for(int i=1;i<=cnt;i++)
        cout<<ans[i].a<<' '<<ans[i].b<<endl;
        return 0;
    }
    
    • 1
      @ 2024-4-3 22:57:45

      代码

      #include<iostream>
      #include<algorithm>
      /*3.*/ using namespace std;
      /*4.*/ struct data{
      /*5.*/ int a,b;
      /*6.*/ };
      data ans[10010];
      /*8.*/ int n,m,cnt;
      /*9.*/ bool book[250*250*2+10];
      /*10.*/bool cmp(data x,data y){
      /*11.*/if(x.b<y.b)return true;
      /*12.*/if(x.b==y.b&&x.a<y.a)return /*13.*/true;
      /*14.*/return false;
      /*15.*/}
      /*16.*/int main(){
      /*17.*/cin>>n>>m;
      /*18.*/for(int i=0;i<=m;i++)
      /*19.*/for(int j=0;j<=m;j++)
      /*20.*/book[i*i+j*j]=true;
      /*21.*/int maxm=m*m*2;
      /*22.*/for(int i=0;i<=maxm;i++)
      /*23.*/if(book[i])
      /*24.*/for(int j=i+1;j<=maxm;j++)
      /*25.*/if(book[j]){
      /*26.*/int d=j-i;
      /*27.*/int maxi=i+d*(n-1);
      /*28.*/if(maxi>maxm)break;
      /*29.*/bool f=true;
      /*30.*/for(int j=i+d;j<=maxi;j+=d)
      /*31.*/if(!book[j]){
      /*32.*/f=false;
      /*33.*/break;
      /*34.*/}
      /*35.*/if(f){
      /*36.*/cnt++;
      /*37.*/ans[cnt].a=i;
      /*38.*/ans[cnt].b=d;
      /*39.*/}
      /*40.*/if(cnt==0){
      /*41.*/cout<<"NONE";
      /*42.*/return 0;
      /*43.*/}
      /*44.*/sort(ans+1,ans+cnt+1,cmp);
      /*45.*/for(int i=1;i<=cnt;i++)
      /*46.*/cout<<ans[i].a<<' '<<ans[i].b<<endl;
      /*47.*/return 0;
      /*48.*/}
      

      大佬们,写的累不累?

      • 0
        @ 2024-4-4 19:10:11
        #include<iostream>
        #include<algorithm>
        using namespace std;
        struct data{
            int a,b;
        };
        data ans[10010];
        int n,m,cnt;
        bool book[250*250*2+10];
        bool cmp(data x,data y){
            if(x.b<y.b)return true;
            if(x.b==y.b&&x.a<y.a)return true;
            return false;
        }
        int main(){
            cin>>n>>m;
            for(int i=0;i<=m;i++)
            for(int j=0;j<=m;j++)
            book[i*i+j*j]=true;
            int maxm=m*m*2; 
            for(int i=0;i<=maxm;i++)
            if(book[i])
            for(int j=i+1;j<=maxm;j++)
            if(book[j]){
                int d=j-i;
                int maxi=i+d*(n-1);
                if(maxi>maxm)break;
                bool f=true;
                for(int j=i+d;j<=maxi;j+=d)
                if(!book[j]){
                    f=false;
                    break;
                }
                if(f){
                    cnt++;
                    ans[cnt].a=i;
                    ans[cnt].b=d;
                }
            }
            if(cnt==0){
            	cout<<"NONE";
            	return 0;
            } 
            sort(ans+1,ans+cnt+1,cmp);
            for(int i=1;i<=cnt;i++)
            cout<<ans[i].a<<' '<<ans[i].b<<endl;
            return 0;
        }
        
        • 1

        [USACO1.4]等差数列 Arithmetic Progressions

        信息

        ID
        1861
        时间
        1000ms
        内存
        256MiB
        难度
        2
        标签
        递交数
        188
        已通过
        111
        上传者