陆历川

导航

HDU6011

巨香蕉牛奶猪皮怪的坑人,刚开始想错了,我先建了一个结构体储存每个字母的价值和数量,然后全部情况列出来进行计算,就是一次挪动一个字符看总之的变化,但是我原来错在了每次挪动的是全部相同的那一个字符,后来只好把字符存在了另一个数组,想想都愚

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<sstream>
#include<set>
#include<algorithm>
#include<queue>
#include<stack>
#include<vector>
#include<ctime>
#include<fstream>
#include<iomanip>
#include<map>
using namespace std;
/*struct myclass{
    string name;
    int value;

};*/
struct mynote
{
    int val;
    int num;
};
int cmp(mynote a,mynote b)
{
    return a.val<b.val;
}
int value[26*100+10];
int main()
{
   int T;
   cin>>T;
   while(T--)
   {
      int n;
      cin>>n;
      mynote note[50];
      int total_num=0;
      for(int i=0;i<n;i++)
      {
          cin>>note[i].val>>note[i].num;
          total_num+=note[i].num;
      }
      int coun=0;
      sort(note,note+n,cmp);
      for(int i=0;i<n;i++)
      {
          for(int j=0;j<note[i].num;j++)
          {
              value[coun++]=note[i].val;
          }
      }
      long long total=0;
      for(int q=0;q<total_num;q++)
      {
          int temp=1;
          long long sum=0;
          for(int i=q;i<total_num;i++)
         {


                 sum+=temp*value[i];
                 temp++;


         }
         if(sum>total)
         {
             total=sum;
         }
      }
      cout<<total<<endl;
   }
    return 0;
}

 

posted on 2017-03-07 16:35  陆历川  阅读(118)  评论(0编辑  收藏  举报