zoukankan      html  css  js  c++  java
  • HDU 3979 Monster (贪心排序)

    Monster

    Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 1383    Accepted Submission(s): 363


    Problem Description
    One day, v11 encounters a group of monsters in a foreast. In order to defend the homeland, V11 picks up his weapon and fights!

    All the monsters attack v11 at the same time. Every enemy has its HP, and attack value ATK. In this problem, v11 has his ATK and infinite HP. The damage (also means reduction for HP) is exactly the ATK the attacker has. For example, if v11's ATK is 13 and the monster's HP is 27, then after v11's attack, the monster's HP become 27 - 13 = 14 and vice versa.

    v11 and the monsters attack each other at the same time and they could only attack one time per second. When the monster's HP is less or equal to 0 , we think this monster was killed, and obviously it would not attack any more. For example, v11's ATK is 10 and a monster's HP is 5, v11 attacks and then the monster is killed! However, a monster whose HP is 15 will be killed after v11 attack for two times. v11 will never stop until all the monsters are killed ! He wants to minimum the HP reduction for the fight! Please note that if in some second, some monster will soon be killed , the monster's attack will works too.
     
    Input
    The first line is one integer T indicates the number of the test cases. (T <=100)

    Then for each case, The first line have two integers n (0<n<=10000), m (0<m<=100), indicates the number of the monsters and v11's ATK . The next n lines, each line has two integers hp (0<hp<=20), g(0<g<=1000) ,indicates the monster's HP and ATK.
     
    Output
    Output one line.

    First output “Case #idx: ”, here idx is the case number count from 1. Then output the minimum HP reduction for v11 if he arrange his attack order optimal .
     
    Sample Input
    2 3 1 1 10 1 20 1 40 1 10 7 3
     
    Sample Output
    Case #1: 110 Case #2: 3
     
    Author
    v11
     
    Source
     

    排序一下就解决了,注意用long long 就可以了。

     1 /* ***********************************************
     2 Author        :kuangbin
     3 Created Time  :2013-11-17 21:24:55
     4 File Name     :E:2013ACM比赛练习2013-11-17G.cpp
     5 ************************************************ */
     6 
     7 #include <stdio.h>
     8 #include <string.h>
     9 #include <iostream>
    10 #include <algorithm>
    11 #include <vector>
    12 #include <queue>
    13 #include <set>
    14 #include <map>
    15 #include <string>
    16 #include <math.h>
    17 #include <stdlib.h>
    18 #include <time.h>
    19 using namespace std;
    20 
    21 struct Node
    22 {
    23     int h,g;
    24 }node[10010];
    25 int n,m;
    26 bool cmp(Node a,Node b)
    27 {
    28     return a.h*b.g < b.h*a.g;
    29 }
    30 int main()
    31 {
    32     //freopen("in.txt","r",stdin);
    33     //freopen("out.txt","w",stdout);
    34     int T;
    35     int iCase = 0;
    36     scanf("%d",&T);
    37     while(T--)
    38     {
    39         iCase ++;
    40         scanf("%d%d",&n,&m);
    41         for(int i = 0;i < n;i++)
    42         {
    43             scanf("%d%d",&node[i].h,&node[i].g);
    44             node[i].h = (node[i].h + m - 1)/m;
    45         }
    46         sort(node,node+n,cmp);
    47         long long ans = 0;
    48         int cnt = 0;
    49         for(int i = 0;i < n;i++)
    50         {
    51             cnt += node[i].h;
    52             ans += (long long)cnt*node[i].g;
    53         }
    54         printf("Case #%d: %I64d
    ",iCase,ans);
    55     }
    56     return 0;
    57 }
  • 相关阅读:
    Qt4.7.4下单独编译QtWebkit
    CronHowto Community Ubuntu Documentation
    菜鸟学Python(9):给文件添加内容,得到文件信息
    yet another software souring company based on san franciso
    Get Started With Chickenfoot
    Berkeley DB(四) DB Environment
    搭建SSH框架链接Oracle数据库
    Linux下手动编译安装Apache2.x
    Errore HTTP 404.2 Not Found" IIS 7.5 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理
    关于二分法中取中间值时向下和向上取整的问题(由大白LA3971想到的)
  • 原文地址:https://www.cnblogs.com/kuangbin/p/3428467.html
Copyright © 2011-2022 走看看