http://acm.hdu.edu.cn/showproblem.php?pid=4310

解题报告正解是状压dp,当时做反正就贪心贪过去了。。。运气真好。。。

View Code
#include <iostream>
#include <algorithm>
using namespace std ;
typedef struct L
{
    int dps,hp ;
    double ab ;
}L ;
L kk[1001] ;
bool cmp(L a,L b)
{
    return a.ab>b.ab ;
}
int main()
{
    int n ;
    while(~scanf("%d",&n))
    {
        int sum=0 ;
        for(int i=0;i<n;i++)
        {
            scanf("%d%d",&kk[i].dps,&kk[i].hp) ;
            kk[i].ab=kk[i].dps*1.0/kk[i].hp ;
            sum+=kk[i].dps ;
        }
        sort(kk,kk+n,cmp) ;
        int ans=0 ;
        for(int i=0;i<n;i++)
        {
            ans+=sum*kk[i].hp ;
            sum-=kk[i].dps ;
        }
        printf("%d\n",ans) ;
    }
    return 0 ;
}

 

 

 

 

相关文章:

  • 2022-12-23
  • 2021-08-07
  • 2022-02-26
  • 2022-12-23
  • 2022-12-23
  • 2021-09-30
  • 2021-07-02
  • 2021-11-22
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-11
  • 2021-08-25
  • 2021-06-28
  • 2021-08-02
相关资源
相似解决方案