zoukankan      html  css  js  c++  java
  • 【USACO 1.4】Arithmetic Progressions

    /*
    TASK: ariprog
    LANG:C++
    URL:http://train.usaco.org/usacoprob2?a=PA9lOcZrdWq&S=ariprog
    SOLVE:平方和最大为m*m*2,因此bq数组标记数i是否为平方和数,num数组存第i个平方和数
    枚举公差q,从1到num[tol]/(n-1),枚举起点p,从num[1]到num[tol-1]
    判断数p+i*q是否为平方和数
    */
    #include <iostream>
    #include <algorithm>
    #include <cstdio>
    #include <cstring>
    #define ll long long
    using namespace std;
    bool bq[200000];
    int n,m,tol,found;
    int p,q;
    int num[200000];
    int main() {
        freopen("ariprog.in","r",stdin);
        freopen("ariprog.out","w",stdout);
        scanf("%d%d",&n,&m);
        int cnt=0;
        for(int i=0;i<=m;i++)
            for(int j=i;j<=m;j++)
                bq[i*i+j*j]=1;
        for(int i=0;i<=m*m*2;i++)
            if(bq[i])num[++tol]=i;
        //printf("%d %d
    ",tol,num[tol]);
        int up=num[tol]/(n-1);
    //    printf("%d
    ",up);
        for(q=1;q<=up;q++){
            for(int i=1;i<tol;i++){
                p=num[i];
                int ok=1;
                for(int j=1;j<n&&ok;j++)
                    if(bq[p+j*q]==0)ok=0;
                if(ok){
                    printf("%d %d
    ",p,q);
                    found=1;
                }
            }
        }
        if(!found)puts("NONE");
        return 0;
    }
  • 相关阅读:
    js作用域
    正则表达式方法
    for-in
    关于this
    由indexOf引发的一系列探究和思考
    Html第一个程序
    转:1.ASP.Net MVC开发基础学习笔记;2.HtmlHelper与扩展方法
    转:单例模式
    转:ORM框架EF(Entity framework)实体框架
    C#lambda表达式
  • 原文地址:https://www.cnblogs.com/flipped/p/5916289.html
Copyright © 2011-2022 走看看