zoukankan      html  css  js  c++  java
  • SUDT2177体检

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2177

    题目描述

      大家都知道,新生入学的前几周要体检,体检的那一天 HH 早起(九点半)来到了校医院,但是到了之后她发现排队等候体检的人太多了,而且人数在不断的增加。体检需要检查许多个项目,每个项目都需要排队,而且随着时间的推移,每个队列的人数都在慢慢增加。
    已知每个体检项目的队列都有两个属性(ai, bi):
    1、如果 HH 在 0 时刻站在了这个队列后,那么她需要 ai 秒就可以完成这个项目的体检;
    2、如果 HH 没在这个队列中,那么 HH 完成这个项目的时间每秒会在 ai 的基础上增加 bi 秒。
      作为一个测肺活量的时候怒吹了 1000+ 的大神,她希望能尽快体检完毕去吃饭,所以选择正确的体检顺序是非常非常重要的。

    输入

    输入包含多组测试数据,对于每组测试数据:
    输入的第一行为一个正整数 n(1 ≤ n ≤ 105),代表需要体检的项目数;
    接下来 n 行每行为两个正整数 a,b(0 ≤ a, b < 1000), 依次代表第1-n个队列的两个属性。
    注意:64-bit 整型请使用 long long 来定义,并且使用 %lld 或 cin、cout 来输入输出,请不要使用 __int64 和 %I64d。

    输出

    输出完成体检的最短时间,由于最后结果可能会很大,所以你只要输出结果对365×24×60×60取余后的结果即可。

    示例输入

    2
    3 1
    2 3
    5
    1 2
    2 3
    3 4
    4 5
    5 6

    示例输出

    7
    1419

    提示

    样例解释:
    第一组样例,最短时间:HH 先排在第二个队伍,用时 2 秒体检完成第二个项目,然后排在第一个队伍,用时 5 秒完成第一个项目,总用时 7 秒。
    第二组样例,最短时间:HH 按照给定的顺序, 用时 1 秒体检完成第一个项目,用时 5 秒完成第二个项目,用时 27 秒完成第三个项目,用时 169 秒完成第四个项目,用时 1217 秒完成第五个项目,总用时 1+5+27+169+1217=1419 秒。
     1 #include<stdio.h>
     2 #include<cstring>
     3 #include<algorithm>
     4 #include<iostream>
     5 using namespace std ;
     6 const int maxn = 100010;
     7 struct node
     8 {
     9     int a,b ;
    10     double c ;
    11     bool friend operator < (node x,node y)
    12     {
    13         return x.c < y.c;
    14     }
    15 }ss[maxn];
    16 int main()
    17 {
    18     int n ;
    19     while(cin>>n)
    20     {
    21         for (int i = 0; i <= n-1; i ++)
    22         {
    23             scanf("%d %d",&ss[i].a,&ss[i].b);
    24             ss[i].c = ss[i].a*1.0/ss[i].b;
    25         }
    26         sort(ss,ss+n);
    27         long long sum = ss[0].a;
    28         for (int i = 1; i <= n-1; i ++)
    29         {
    30             sum = (sum+sum*ss[i].b+ss[i].a)%(365*24*60*60);
    31         }//取余这个地方一定不能在输出那儿取余,因为longlong存不了那么大的...........
    32         printf("%lld
    ",sum);
    33     }
    34     return 0;
    35 }
    View Code

    这个题不是特别难,但是要注意,longlong是存不了太大的数据的

     
  • 相关阅读:
    【C语言】找出1000以内所有的素数
    【C语言】字符数组,碎碎念
    【C语言】将输入的10个数排序
    C语言 排序算法
    冒死透露!全球前25名最臭名昭着的黑客人物
    苹果系统新致命漏洞,黑客可以随意控制您的手机设备
    物流行业的5大安全风险
    黑客来势汹汹,数据科学能拯救社交媒体吗?
    Facebook超过1亿用户数据泄露,疑与中国黑客组织有关?
    太可怕了!黑客可以通过监控智能手机传感器窃取您的密码
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3233416.html
Copyright © 2011-2022 走看看