hdu 6011 Lotus and Characters

BC的A题 不过被疯狂hack

因为有的人一开始认为只需要计算所有正权值 包括我也是

不过写一下就知道了 就算有负权 仍然可能对ans有贡献

比赛时候的代码可能是改的太匆忙了 到底还是被hack了……

还好B题留到最后了了 要不BC就血崩了……

 1 #include<bits/stdc++.h>
 2 #define cl(a,b) memset(a,b,sizeof(a))
 3 #define debug(x) cerr<<#x<<"=="<<(x)<<endl
 4 using namespace std;
 5 typedef long long ll;
 6
 7 const int maxn=3e3+10;
 8
 9 int letter[maxn];
10
11 int main()
12 {
13     int T;
14     scanf("%d",&T);
15     while(T--)
16     {
17         cl(letter,0);
18         int n,cnt=0;
19         scanf("%d",&n);
20         for(int i=0;i<n;i++)
21         {
22             int x,val;
23             scanf("%d%d",&x,&val);
24             while(val--) letter[cnt++]=x;
25         }
26         sort(letter,letter+cnt);
27         int ans=0,num=cnt;
28         while(cnt--)
29         {
30             int last=ans;
31             for(int i=cnt+1;i<num;i++)
32                 ans+=letter[i];
33             if(ans+letter[cnt]<last)
34             { //计算每个权值对ans是否有贡献
35                 ans=last;
36                 break; //没有贡献的话ans就是上一次的ans
37             }
38             else ans+=letter[cnt]; //有贡献继续计算
39         }
40         if(ans<0) printf("0\n");
41         else printf("%d\n",ans);
42     }
43     return 0;
44 }
45 /*
46
47 2
48 2
49 5 1
50 6 2
51 3
52 -5 3
53 2 1
54 1 1
55
56 */
时间: 2024-12-19 17:11:40

hdu 6011 Lotus and Characters的相关文章

Best Coder Lotus and Characters

 Lotus and Characters  Time Limit: 2000/1000 MS (Java/Others)   Memory Limit: 262144/131072 K (Java/Others)问题描述Lotus有nn种字母,给出每种字母的价值以及每种字母的个数限制,她想构造一个任意长度的串.定义串的价值为:第1位字母的价值*1+第2位字母的价值*2+第3位字母的价值*3……求Lotus能构造出的串的最大价值.(可以构造空串,因此答案肯定\geq 0≥0)输入描述第一行是数据

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;

HDU 6012 Lotus and Horticulture

Lotus and Horticulture 题意:花有一个最适的温度范围 l 和 r ,如果等于这个范围其价值为a, 高于为b,等于为c,求最大的价值 思路:如果一一枚举肯定超时,所有把每个区间的端点都存在一个结构体里,-1为左, 1为右,再从小到大排序,假设起点从负无穷小开始(sum = 所有的c),一一遍历每个端点,求出最大值. #include <iostream> #include <queue> #include <cstdio> #include <

Lotus and Horticulture HDU - 6012

1 #include <iostream> 2 using namespace std; 3 #include<string.h> 4 #include<set> 5 #include<stdio.h> 6 #include<math.h> 7 #include<queue> 8 #include<map> 9 #include<algorithm> 10 #include<queue> 11 #d

HDU 1075 What Are You Talking About (Trie树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1075 map可以过...我上的字典树,小bug有点尴尬,题目没有明确给出数据范围也是无奈. 贡献了几次RE 一次WA.尴尬.discuss里面有个说注意前缀的到是给了点tip.总体来说不错 代码: 1 #define _CRT_SECURE_NO_WARNINGS 2 #include <functional> 3 #include <algorithm> 4 #include <

hdu 4185 Oil Skimming(二分匹配)

Oil Skimming Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 883    Accepted Submission(s): 374 Problem Description Thanks to a certain "green" resources company, there is a new profitable

[ACM] hdu 1242 Rescue (BFS+优先队列)

Rescue Problem Description Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison. Angel's friends want to save Angel. Their task is:

hdu 4787 GRE Words Revenge 在线AC自动机

hdu 4787 GRE Words Revenge Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 327680/327680 K (Java/Others)Total Submission(s): 2505    Accepted Submission(s): 614 Problem Description Now Coach Pang is preparing for the Graduate Record Examina

HDU 1113 Word Amalgamation (map 容器 + string容器)

http://acm.hdu.edu.cn/showproblem.php?pid=1113 Problem Description In millions of newspapers across the United States there is a word game called Jumble. The object of this game is to solve a riddle, but in order to find the letters that appear in th