• hdu 6011


    题意:Lotus有nn种字母,给出每种字母的价值以及每种字母的个数限制,她想构造一个任意长度的串。定义串的价值为:第1位字母的价值*1+第2位字母的价值*2+第3位字母的价值*3……求Lotus能构造出的串的最大价值。(可以构造空串,因此答案肯定≥0)

    思路:一开始想着以价值排序,小于0的不要,然而如果添加负数,那么有可能正数往后移,sum值反而更大

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 struct node{
     5     int x,y;
     6 }a[30];
     7 
     8 bool cmp(node p,node q){
     9     return p.x>=q.x;
    10 }
    11 int main(){
    12     int t;
    13     scanf("%d",&t);
    14     while(t--){
    15         int n;
    16         scanf("%d",&n);
    17         for(int i=1;i<=n;i++) scanf("%d%d",&a[i].x,&a[i].y);
    18         ll xx=0,sum=0;
    19         sort(a+1,a+1+n,cmp);
    20         for(int i=1;i<=n;i++){
    21             if(a[i].x>=0){
    22                 while(a[i].y){
    23                     xx+=a[i].x;
    24                     sum+=xx;
    25                     a[i].y--;
    26                 }
    27             }
    28             else {
    29                 while(a[i].y){
    30                     xx+=a[i].x;
    31                     if(xx<0) break;
    32                     sum+=xx;a[i].y--;
    33                 }
    34             }
    35         }
    36         cout<<sum<<endl;
    37     }
    38     return 0;
    39 }

    nn种字母,给出每种字母的价值以及每种字母的个数限制,她想构造一个任意长度的串。 定义串的价值为:第1位字母的价值*1+第2位字母的价值*2+第3位字母的价值*3…… 求Lotus能构造出的串的最大价值。(可以构造空串,因此答案肯定geq 00)

  • 相关阅读:
    Android Interactive Animation
    Android 笔记
    java 从零开始 第三天
    RGB颜色查询对照表
    Android TextView文字过多时通过滚动条显示多余内容
    Android系统字体规范
    Android 动画之TranslateAnimation应用详解
    Python--day69--ORM的F查询和Q查询
    Python--day69--ORM聚合查询和分组查询
    Python--day69--ORM正反向查找(外键)
  • 原文地址:https://www.cnblogs.com/hhxj/p/6953643.html
Copyright © 2020-2023  润新知