Divide and conquer:Aggressive Cows(POJ 2456)

                

                侵略性的牛

  题目大意:C头牛最大化他们的最短距离

  常规题,二分法即可

  

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <functional>
 4 
 5 using namespace std;
 6 
 7 static int pos[100000];
 8 
 9 bool judge(const int, const int,const int);
10 void solve(const int, const int);
11 
12 int main(void)
13 {
14     int n, c;
15     while (~scanf("%d%d", &n, &c))
16     {
17         for (int i = 0; i < n; i++)
18             scanf("%d", &pos[i]);
19         sort(pos, pos + n);
20         solve(n, c);
21     }
22     return 0;
23 }
24 
25 void solve(const int n, const int c)
26 {
27     int lb = 0, rb = 1000000001, mid;
28 
29     while (rb - lb > 1)
30     {
31         mid = (rb + lb) / 2;
32         if (judge(mid, c, n)) lb = mid;
33         else rb = mid;
34     }
35     printf("%d\n", lb);
36 }
37 
38 bool judge(const int dist, const int cows_sum, const int n)
39 {
40     int last_pos = 0, cnt;
41     
42     for (int i = 1; i < cows_sum; i++)
43     {
44         cnt = last_pos + 1;
45         while (cnt < n && pos[cnt] - pos[last_pos] < dist)
46             cnt++;
47         if (cnt == n)
48             return false;
49         last_pos = cnt;
50     }
51     return true;
52 }

 

转载于:https://www.cnblogs.com/Philip-Tell-Truth/p/5128990.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"divide and grow: capturing huge diversity in crowd images with incrementally" 是一个标题,该标题是基于一种方法或者技术,用于在人群图像中捕捉巨大的多样性。该方法通过逐步分割和增长的方式来实现。 在传统的人群图像处理中,通常会面临到一个挑战,即人群中的个体数量巨大且多样性丰富。这使得对整个人群图像进行全局处理变得困难。 "divide and grow"方法通过将人群图像分割成更小的区域,并在每个区域中逐步增加分析的粒度来解决这个问题。 首先,该方法会将人群图像划分成多个重叠的子区域。然后,对每个子区域进行单独的分析,以捕捉到区域内的个体。这种分割使得处理的任务更加可管理,同时也可以提高对于人群中不同个体的检测能力。接下来,"divide and grow"方法会逐步增加分析的粒度,即进一步细分每个子区域,以更准确地捕捉到更多的个体。 通过这种逐步分割和增长的方式,"divide and grow"方法可以较好地捕捉到人群图像中的巨大多样性。这种方法可以帮助在人群中准确地检测和识别各种不同类型的个体,例如不同年龄、性别、服装等。 总之,"divide and grow: capturing huge diversity in crowd images with incrementally"是一种用于处理人群图像中巨大多样性的方法。通过逐步分割和增长的方式,该方法可以有效地捕捉到人群中各种不同类型的个体。这种方法可以在人群图像处理和识别中具有广泛的应用潜力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值