zoukankan      html  css  js  c++  java
  • hdu 4442 37届金华赛区 A题

    题意:给出一些队伍,每个队伍有初始等待时间和每秒增加的时间,求最短时间

    假设有两个队初始时间和每秒增加时间为a1,b1和a2,b2

    若第选择第一个的时间小于第二个,则

    a1+a2+a1*b2<a2+a1+a2*b1

    化简得a1*b2<a2*b1,注意不要除过去,否则会有除以零报错

    卧槽,MOD写错了,wa了半天

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<cmath>
     6 #include<queue>
     7 #include<map>
     8 using namespace std;
     9 #define MOD (365*60*60*24)
    10 const double eps=1e-5;
    11 #define cl(a) memset(a,0,sizeof(a))
    12 #define ts printf("*****
    ");
    13 const int MAXN=100015;
    14 int n,m,tt;
    15 struct node
    16 {
    17     int s,v;
    18     void in()
    19     {
    20         scanf("%d%d",&s,&v);
    21     }
    22 }A[MAXN];
    23 bool cmp(node a,node b)
    24 {
    25     return (long long)a.s*b.v<(long long)b.s*a.v;
    26 }
    27 int main()
    28 {
    29     int i,j,k;
    30     #ifndef ONLINE_JUDGE
    31     freopen("1.in","r",stdin);
    32     #endif
    33     while(scanf("%d",&n)!=EOF)
    34     {
    35         if(n==0)    break;
    36         for(i=0;i<n;i++)    A[i].in();
    37         sort(A,A+n,cmp);
    38         long long sum=0;
    39         long long t=0;
    40         for(i=0;i<n;i++)
    41         {
    42             sum+=(A[i].s+t*A[i].v)%MOD;
    43             sum%=MOD;
    44             t+=(A[i].s+t*A[i].v)%MOD;
    45             t%=MOD;
    46         }
    47         printf("%I64d
    ",sum);
    48     }
    49 }
  • 相关阅读:
    显而易见的python
    GitHub 使用教程图文详解
    linux下搭建hexo环境
    linux 删除软链接
    Django2.1入门教程
    windows下安装PyQt4
    python3 Flask安装
    学习之源
    白话C++系列教程
    面试笔试试题精选
  • 原文地址:https://www.cnblogs.com/cnblogs321114287/p/4436968.html
Copyright © 2011-2022 走看看