zoukankan      html  css  js  c++  java
  • POJ3069:Saruman's Army

     题目链接:http://poj.org/problem?id=3069

    贪心

    使用两个标志,一个边界点,一个当前比较点即可不断重复更新所需的点个数

    挑战程序设计竞赛原文:

     

    代码:

     1 #include<cstdio>
     2 #include<cstdlib>
     3 #include<cmath>
     4 #include<memory.h>
     5 #include<algorithm>
     6 #define MAXN 1010
     7 #define INF 0x3f3f3f
     8 using namespace std;
     9 
    10 int n,r;
    11 int pos[1010];
    12 
    13 int main()
    14 {
    15     while(scanf("%d %d",&r,&n)&&(r>=0||n>=0))
    16     {
    17         memset(pos,0,(MAXN-1)*sizeof(int));
    18         for(int i=1;i<=n;i++)
    19         {
    20             scanf("%d",&pos[i]);
    21         }
    22         pos[n+1]=INF;
    23         sort(pos+1,pos+n+1);
    24         int ans=0;
    25         int initpos=pos[1];
    26         int boundpos=pos[1];
    27         for(int i=2;i<=n+1;i++)
    28         {
    29             if(pos[i]-boundpos<=r)
    30                 initpos=pos[i];
    31             else
    32             {
    33                 if(pos[i]-initpos<=r)
    34                     continue;
    35                 else
    36                 {
    37                     ans++;
    38                     boundpos=pos[i];
    39                     initpos=pos[i];
    40                 }
    41             }
    42         }
    43         printf("%d
    ",ans);
    44     }
    45     return 0;
    46 }
  • 相关阅读:
    Django与Ajax
    Django 常用字段和参数
    Django 模型层之多表操作
    Django 模型层之单表操作
    Django模板层
    Django 视图层
    Django 路由控制
    Django入门(下)
    Django入门(上)
    JavaScript常用类
  • 原文地址:https://www.cnblogs.com/bolderic/p/6662124.html
Copyright © 2011-2022 走看看