POJ3069-贪心-Saruman's Army

来源:互联网 发布:淘宝卖家售后常见问题 编辑:程序博客网 时间:2024/05/22 09:06

https://vjudge.net/problem/POJ-3069
给定一些m个点,可以找某些点染色,染色后可以覆盖的距离为n,
问你最少染几个色,可以把所有的点都给覆盖掉。
贪心思路特别好想,每次都尽量往右。直接遍历就行。
但是我没想到代码怎么写,果然码力不行啊

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn=2000;int main(){   int m,n;    int a[maxn];    while(~scanf("%d%d",&m,&n)){         if(m==-1&&n==-1) break;         int ans=0;         for(int i=0;i<n;i++)             scanf("%d",&a[i]);             sort(a,a+n);             int i=0;           while(i<n){              int s=a[i++];              while(i<n&&a[i]<=s+m) i++;              int p=a[i-1];              while(i<n&&a[i]<=p+m)i++;             ans++;           }           printf("%d\n",ans);    }    return 0;}
原创粉丝点击