POJ 3069 Saruman's Army
来源:互联网 发布:影集制作软件下载 编辑:程序博客网 时间:2024/06/01 07:45
贪心策略:每一次做标号的点应该是距离最左边的点最远且距离不超过R的点,标记好这个点后,下一段的最左边的点应该是第一个距离标记好的点距离大于R的点。
#include <stdio.h>#include <algorithm>using namespace std;int arr[1010];//升序比较函数int cmp(const void *a, const void *b){int *pa = (int*)a;int *pb = (int*)b;return *pa-*pb;}void solve(int n, int r){int start_i, i, cnt, choose_i;//快排一次qsort(arr, n, sizeof(int), cmp);start_i = 0;cnt = 0;while(1){for(i=start_i; i<n; i++){if(arr[i]-arr[start_i] > r)break;}if(i < n){cnt++;choose_i = i-1;//找下一个最左边的元素for(i=choose_i+1; i<n; i++){if(arr[i]-arr[choose_i] > r)break;}if(i < n){start_i = i;continue;}else{break;}}else{cnt++;break;}}printf("%d\n", cnt);}int main(void){int r, n, i;//freopen("input.dat", "r", stdin);while(scanf("%d %d", &r, &n), !(-1==r&&-1==n)){for(i=0; i<n; i++) scanf("%d", arr+i);solve(n, r);}return 0;}
0 0
- poj 3069 Saruman's Army
- POJ 3069 - Saruman's Army
- POJ-3069-Saruman's Army
- POJ 3069 Saruman's Army
- POJ 3069 Saruman's Army
- POJ-3069 Saruman's Army
- POJ-3069-Saruman's Army
- poj 3069 Saruman's Army
- POJ-3069-Saruman's Army
- POJ 3069 Saruman‘s Army
- POJ 3069 Saruman's Army
- POJ 3069 Saruman's Army
- poj 3069 Saruman's Army
- POJ Saruman's Army 3069
- POJ 3069 Saruman's Army
- POJ-3069 Saruman's Army
- POJ 3069 Saruman's Army
- POJ 3069 Saruman's Army
- 数据库基础知识(150604)
- ASP.NET多文件批量打包下载
- C/C++中sizeof与strlen的区别
- SQL Server AlwaysOn架构及原理
- 一些令人难以理解的“bug”~~有时候一些css属性无法执行~~
- POJ 3069 Saruman's Army
- DialogFragment详解
- IIS无法浏览显示图片模式为CMYK的图片
- 设计模式(五):单例、多例模式
- 树ztree
- 构建Android缓存模块】(二)Memory Cache & File Cache
- 无外网主机漏洞怎么破
- maven 环境变量
- 第14周-输入输出流,文本文件-项目0-课后实践·程序阅读3