CODE[VS] 1006 等差数列
来源:互联网 发布:手机有网络不能看视频 编辑:程序博客网 时间:2024/06/09 21:29
题目:http://codevs.cn/problem/1006/
题解:
/* 1006 等差数列 */#include <stdio.h>#define DEBUG#define MAXSIZE 100int n; /* 数据大小 */ int array[MAXSIZE]; /* 所有数值 */int maxcount; /* 最大计数 */ int darray[MAXSIZE]; /* 差值数组 */ /* 交换数组位置 */void swap(int a, int b){ int tmp; tmp = array[a]; array[a] = array[b]; array[b] = tmp;} /* 按值顺序排列数组 */void sort(int s){ int i, j; for(i = 0; i < s; i++){ for(j = i + 1; j < s; j++){ if(array[i] > array[j]){ swap(i, j); } } }} /* 判断数值是否存在于样本中, 存在返回位置,否则返回0 */int in_array(int start, int x){ int i; for(i = start; i < n; i++){ if(x < array[i]){ return 0; } if(x == array[i]){ return i; } } return 0;} /* 依次遍历数组 */void get_darray(int start){ int i, di; int count; int an; int fi; di = 0; /* 获取所有可能的差值 */ for(i = start + 1; i < n; i++){ if(array[i] > array[start]){ darray[di] = array[i] - array[start]; di++; } } /* 遍历样本,获取最长的等差数列 */ for(i = 0; i < di; i++){ fi = start + 1; count = 1; for(an = array[start] + darray[i]; an <= array[n - 1]; an = an + darray[i]){ if((fi = in_array(fi, an)) > 0){ count = count + 1; } else{ break; } } maxcount = (count > maxcount) ? count : maxcount; }} /* 主函数入口 */ int main(int argc, char *argv[]) { int i; #ifdef DEBUG FILE *fp; if(NULL == (fp = fopen("data.txt", "r"))){ return 1; }#endif /* 获取数据样本大小 */#ifdef DEBUG fscanf(fp, "%d", &n);#else scanf("%d", &n);#endif /* 获取数据样本 */ for(i = 0; i < n; i++){#ifdef DEBUG fscanf(fp, "%d", &array[i]);#else scanf("%d", &array[i]);#endif } /* 排序数据样本 */ sort(n); /* 设置最长等差数列初值 */ maxcount = 1; /* 依次获取所有可能的等差数列 */ for(i = 0; i < n - 1; i++) get_darray(i); printf("%d", maxcount);#ifdef DEBUG fclose(fp);#endif return 0;}
阅读全文
0 0
- Code[vs]1006 等差数列
- CODE[VS] 1006 等差数列
- CODE[VS] 1006 等差数列
- 1006等差数列
- 1006 等差数列
- VS Code
- VS Code
- VS Code
- VS Code
- VS Code
- vs code
- VS Code
- wikioi 1006 等差数列
- Codevs 1006 等差数列
- 【codevs 1006】等差数列
- 等差数列
- 等差数列
- 等差数列
- 归并排序
- GPSR (Geographic and Energy-Aware Routing)路由协议
- SDUT 团战可以输、提莫必须死(BFS)
- 自定义View时,在主布局中引用却没有显示
- 深入理解Java虚拟机 第2章
- CODE[VS] 1006 等差数列
- Android Weak Handler:可以避免内存泄漏的Handler库
- Qcom wled 方式背光控制
- 中心化/标准化/scale()函数
- 主成分分析(PCA)
- Java HashMap的工作原理
- zcmu-1963
- Laravel 5.1中 Redis 的安装配置及基本使用教程
- 升级PHP CI框架到3.1,搭建phpunit测试框架