USACO TRAINING 1.4.4 Arithmetic Progressions(暴力+非递归)
2013-11-20 21:07
281 查看
题意:给你n,m ,问你在 m内两个平方数的和组成长度为n的等差数列的数列数有多少个
解题思路:暴力,递归太费时,所以要改成非递归的形式
解题代码:
View Code
解题思路:暴力,递归太费时,所以要改成非递归的形式
解题代码:
// Arithmetic Progressions.cpp : 定义控制台应用程序的入口点。 // //#include "stdafx.h" /* ID: dream.y1 PROG: ariprog LANG: C++ */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> int a[260]; int b[100000]; int hs[500000]; void dfs(int i, int j) { return; } int num = 0 ; struct node{ int x, y ; }ans[10003]; int cmp(const void *a ,const void *b) { if((*(node *)a).y == (*(node *)b).y) return (*(node *)a).x - (*(node *)b).x; else return (*(node *)a).y - (*(node *)b).y; } int main() { memset(hs,0,sizeof(hs)); int n ,m ; FILE *p = fopen("ariprog.in","r"); FILE *p1 = fopen("ariprog.out","w"); fscanf(p,"%d %d",&n,&m); for(int i = 1; i <= m;i ++) { a[i] = i * i ; hs[a[i]] = 1; } // printf("%d\n",a[250]); int k = 0 ; for(int i = 1;i <= m ;i ++) for(int j = i;j <= m ;j ++) { hs[a[i]+a[j]] = 1; } k = 0; hs[0] = 1; for(int i = 0 ;i <= 140000;i ++) { if(hs[i]) { b[++k] = i; } } //printf("**%d\n",k); for(int i = 1; i<= k;i ++) { for(int j =i+1; j <= k; j ++ ) { int ti = b[j] ; int temp = b[j] - b[i]; int step = 0 ; while(hs[ti]) { step ++; ti = ti + temp; } // printf("%d %d %d\n",b[i],temp,step); if(step >= n -1) { //printf("%d %d %d\n",b[i],temp,step); num ++; ans[num].x = b[i]; ans[num].y = temp; } } //printf("%d\n",b[i]); } qsort(ans+1,num,sizeof(node),cmp); for(int i = 1;i <= num; i++) fprintf(p1,"%d %d\n",ans[i].x,ans[i].y); if(num == 0 ) fprintf(p1,"NONE\n"); fclose(p); fclose(p1); return 0 ; }
View Code
相关文章推荐
- foxmail 定时发邮件
- UVA 10245 The Closest Pair Problem(传说中的分治法)
- zipimport.ZipImportError: can't decompress data; zlib not available
- 使用UltraISO制作rhel6.4U盘安装
- uva 10245 The Closest Pair Problem
- http://oklai.name/ 无法横向拉动 iscroll
- 基于postfix一步一步构建Mailserver,支持虚拟用户,支持WebMail
- Traits技术:类型的if-else-then(STL核心技术之一)
- Traits技术初探
- HDU-1401 Solitaire 搜索
- AIX6.1安装完操作系统之后的工作。
- Nagiso 监控服务器的RAID磁盘阵列状态
- rails 给类添加属性
- rails 给类添加属性
- .net jMail邮件发送(含抄送、密送、多发、日志记录)
- AIX 出现蓝屏
- 邮件系统之amavisd-new的简介、安装及配置
- traits技术理解
- leetcode: Container With Most Water
- 比较全面的Email正则表达式、对于特殊的邮箱Email也可以检查