码迷,mamicode.com
首页 > 其他好文 > 详细

【2017.10.30】noip赛前集训 | T1 军训排队【模拟】

时间:2017-10-31 20:09:40      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:clu   freopen   nod   print   scanf   不能   operator   noi   main   

T1 军训排队

【题目描述】

今年招生招了 n 个班。每个班的小学弟小学妹,在操场上面向主席台站成了一列。各个班的新生 随便站成一列,因为他们不懂事,所以也没有间隔一个固定的距离也没有按照一定的顺序(保 证没有两个人在同一个位置)。你和你的好基友便坐在主席台上一边喝水一边看着他们。这 是一个带有升降功能的主席台,它的高度由你决定。当然,这个主席台的高度不能小于 0。 好基友:根据可靠消息,第 i 个班有 ai 个人。为什么我们看不全这么多人? 你:你读书读傻了吧。他们身高不一样,挡住了呗。 好基友:好哥们~这里是他们的体检表。第 i 个班有 ai 份,按照学号从 1 到 ai 整理好 了,上面有他们的身高体重三围。老师也上报了目前大家所在的位置。你能不能立刻告诉我 从我们现在的角度来看可以看见多少人? 为了解决好基友的问题,你需要写一个程序。

 

【数据范围】

对于 60%的数据, n≤ 5,ai≤ 1000,0≤ xj≤ 1W,0<hj≤1W,0<T≤ 10,0<A≤ 10;

对于 100%的数据, n ≤ 5,ai≤ 3000,0≤ xj≤ 10W,0<hj≤ 10W,0<T≤ 10,0<A≤ 10

 

【题解】

只要按照位置从近到远排个序,然后计算每个人的影子最远到哪里。

如果后一个人的影子没有被前一个人的影子挡住,就能够看见他。

反之则不能,此时我们只要取最长的那个影子然后继续比较即可。

#include <cstdio>
#include <algorithm>

const int MAXN = 3000 + 7;

int n, m, ans;
double a, b, i;
char ch;
                
struct Node {
    double high, from, next;
    bool operator < (Node d) {
        return from < d.from;
    }
} node[MAXN];

int main() {
    freopen("profit.in", "r", stdin);
    freopen("profit.out", "w", stdout);
    
    scanf("%d", &n);
    
    while (n--) {
        for (int i = 1; i <= n; i++) node[i].from = 0, node[i].high = 0, node[i].next = 0;
        
        scanf("%d", &m);
        for (int i = 1; i <= m; i++) scanf("%lf%lf", &node[i].from, &node[i].high);
        scanf("%lf%c%lf", &a, &ch, &b);
        
        for (int i = 1; i <= m; i++) node[i].next = node[i].from + node[i].high / a * b;
        
        std::sort(node + 1, node + m + 1);
        
        ans = 0;
        int last = node[1].next;
        for (int i = 2; i <= m; i++) {
            if (node[i].next <= last) continue;
            ans++;
            last = node[i].next;
        }
        
        printf("%d\n", ans + 1);
    }
    
    return 0;
}

 

【2017.10.30】noip赛前集训 | T1 军训排队【模拟】

标签:clu   freopen   nod   print   scanf   不能   operator   noi   main   

原文地址:http://www.cnblogs.com/ExileValley/p/7754861.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!