usaco Arithmetic Progressions
2011-06-05 22:06
190 查看
等差数列
译 by tim green
一个等差数列是一个能表示成a, a+b, a+2b,..., a+nb (n=0,1,2,3,...)
在这个问题中a是一个非负的整数,b是正整数。
写一个程序来找出在双平方数集合S中长度为n的等差数列。
双平方数集合是所有能表示成p2+q2的数的集合。
PROGRAM NAME: ariprog
INPUT FORMAT
SAMPLE INPUT (file ariprog.in)
5
7
OUTPUT FORMAT
如果没有找到数列,输出`NONE'。
如果找到了,输出一行或多行, 每行由于二个整数组成:a,b
这些行应该先按b排序再按a排序。
将不会有只多于10,000个等差数列。
SAMPLE OUTPUT (file ariprog.out)
1 4
37 4
2 8
29 8
1 12
5 12
13 12
17 12
5 20
2 24
代码:
译 by tim green
一个等差数列是一个能表示成a, a+b, a+2b,..., a+nb (n=0,1,2,3,...)
在这个问题中a是一个非负的整数,b是正整数。
写一个程序来找出在双平方数集合S中长度为n的等差数列。
双平方数集合是所有能表示成p2+q2的数的集合。
PROGRAM NAME: ariprog
INPUT FORMAT
第一行: | N(3<= N<=25),要找的等差数列的长度。 |
第二行: | M(1<= M<=250),搜索双平方数的上界0 <= p,q <= M。 |
5
7
OUTPUT FORMAT
如果没有找到数列,输出`NONE'。
如果找到了,输出一行或多行, 每行由于二个整数组成:a,b
这些行应该先按b排序再按a排序。
将不会有只多于10,000个等差数列。
SAMPLE OUTPUT (file ariprog.out)
1 4
37 4
2 8
29 8
1 12
5 12
13 12
17 12
5 20
2 24
代码:
#include <iostream> #include <cstdio> #include <queue> using namespace std; bool s[125001] = {false}; struct squre { int a,b; }; queue<squre> q; int main(void) { int i,j; int n,m,a,b; squre t; scanf("%d %d",&n,&m); for(i=0; i<=m; i++) for(j=0; j<=m; j++) s[i*i+j*j] = 1; m = m*m*2; for(b=1; ; b++) { if(b*(n-1)>m) break; for(a=0; ; a++) { if((a+b*(n-1))>m) break; for(i=0; i<n; i++) if(!s[a+b*i]) break; if(i>=n) { t.a = a; t.b = b; q.push(t); } } } bool flag = false; if(!q.empty()) flag = true; while(!q.empty()) { t = q.front(); printf("%d %d/n",t.a,t.b); q.pop(); } if(!flag) printf("NONE/n"); return 0; }
相关文章推荐
- USACOTrainning.Arithmetic Progressions
- 【USACO 1.4】Arithmetic Progressions
- usaco Arithmetic Progressions(看了题解)
- USACO Arithmetic Progressions
- usaco Arithmetic Progressions
- USACO 1.4 Arithmetic Progressions
- usaco Arithmetic Progressions individual report
- USACO: Section 1.4 -- PROB Arithmetic Progressions
- 1.4.1 Arithmetic Progressions
- codeforces Educational Codeforces Round 16 D. Two Arithmetic Progressions 扩展欧几里得
- O - Dirichlet's Theorem on Arithmetic Progressions
- Dirichlet's Theorem on Arithmetic Progressions
- [Codeforces710D]Two Arithmetic Progressions(扩展中国剩余定理)
- CC Arithmetic Progressions (FFT + 分块处理)
- CodeChef COUNTARI Arithmetic Progressions(分块 + FFT)
- I - Dirichlet's Theorem on Arithmetic Progressions(1.5.5)
- POJ 3006(Dirichlet's Theorem on Arithmetic Progressions T) 素数判定入门 Java
- Dirichlet's Theorem on Arithmetic Progressions 筛取素数
- Dirichlet's Theorem on Arithmetic Progressions
- Dirichlet's Theorem on Arithmetic Progressions------[NWPU][2018寒假作业][通用版]一、热身 [Cloned]O题