HDOJ 3732 Ahui Writes Word

2024-05-05 12:58
文章标签 word hdoj writes 3732 ahui

本文主要是介绍HDOJ 3732 Ahui Writes Word,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



杭电OJ 3732;l链接:http://acm.hdu.edu.cn/showproblem.php?pid=3732

Ahui Writes Word

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1977    Accepted Submission(s): 731


Problem Description
We all know that English is very important, so Ahui strive for this in order to learn more English words. To know that word has its value and complexity of writing (the length of each word does not exceed 10 by only lowercase letters), Ahui wrote the complexity of the total is less than or equal to C.
Question: the maximum value Ahui can get.
Note: input words will not be the same.


Input
The first line of each test case are two integer N , C, representing the number of Ahui’s words and the total complexity of written words. (1 ≤ N ≤ 100000, 1 ≤ C ≤ 10000)
Each of the next N line are a string and two integer, representing the word, the value(Vi ) and the complexity(Ci ). (0 ≤ Vi , Ci ≤ 10)


Output
Output the maximum value in a single line for each test case.


Sample Input
  
5 20 go 5 8 think 3 7 big 7 4 read 2 6 write 3 5


Sample Output
  
15
Hint
Input data is huge,please use “scanf(“%s”,s)”
题目分析:
首先,我们可以明确一点,输入数据中的字符串是没有作用的。然后,还有一点要注意,这道题目乍看上去像是01背包(注意数据量N≤ 100000,C ≤ 10000,直接套用01背包显然会超时),但是实际上是多重背包(0 ≤ Vi , Ci ≤ 10, (Vi,Ci)的组合最多就是121个,但是N最大是100000,所以里面会出现很多重复的(Vi,Ci),也就是多重背包了)。
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define max(x,y) x>y?x:yint dp[10010], num[12][12], weight[100010], value[100010];int main()
{int n, c;while(~scanf("%d%d", &n, &c)){int valuea, price, count = 0;char s[20];memset(dp, 0, sizeof(dp));memset(num, 0, sizeof(num));memset(weight, 0, sizeof(weight));memset(value, 0, sizeof(value));for(int i = 1; i <= n; i++){scanf("%s%d%d", s, &valuea, &price);num[valuea][price]++;}for(int i = 0; i <= 10; i++){for(int k = 0; k <= 10; k++){int tmp = num[i][k];for(int j = 1; j <= tmp; j = j*2) // 二进制拆分         {            weight[count] = j * k;            value[count++] = j * i;             tmp -= j;        }if(tmp > 0)        {            weight[count] = tmp * k;             value[count++] = tmp * i;         } }}for(int i = 0; i < count; i++){for(int j = c; j >= weight[i]; j--){dp[j] = max(dp[j], dp[j-weight[i]]+value[i]);}    }printf("%d\n", dp[c]);}return 0;
}

这篇关于HDOJ 3732 Ahui Writes Word的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/961776

相关文章

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Java利用poi实现word表格转excel

《Java利用poi实现word表格转excel》这篇文章主要为大家详细介绍了Java如何利用poi实现word表格转excel,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、每行对象类需要针对不同的表格进行对应的创建。package org.example.wordToEx

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word

Python批量调整Word文档中的字体、段落间距及格式

《Python批量调整Word文档中的字体、段落间距及格式》这篇文章主要为大家详细介绍了如何使用Python的docx库来批量处理Word文档,包括设置首行缩进、字体、字号、行间距、段落对齐方式等,需... 目录关键代码一级标题设置  正文设置完整代码运行结果最近关于批处理格式的问题我查了很多资料,但是都没

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

Java使用POI-TL和JFreeChart动态生成Word报告

《Java使用POI-TL和JFreeChart动态生成Word报告》本文介绍了使用POI-TL和JFreeChart生成包含动态数据和图表的Word报告的方法,并分享了实际开发中的踩坑经验,通过代码... 目录前言一、需求背景二、方案分析三、 POI-TL + JFreeChart 实现3.1 Maven

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

基于Java实现模板填充Word

《基于Java实现模板填充Word》这篇文章主要为大家详细介绍了如何用Java实现按产品经理提供的Word模板填充数据,并以word或pdf形式导出,有需要的小伙伴可以参考一下... Java实现按模板填充wor编程d本文讲解的需求是:我们需要把数据库中的某些数据按照 产品经理提供的 word模板,把数据

C - Word Ladder题解

C - Word Ladder 题解 解题思路: 先输入两个字符串S 和t 然后在S和T中寻找有多少个字符不同的个数(也就是需要变换多少次) 开始替换时: tips: 字符串下标以0开始 我们定义两个变量a和b,用于记录当前遍历到的字符 首先是判断:如果这时a已经==b了,那么就跳过,不用管; 如果a大于b的话:那么我们就让s中的第i项替换成b,接着就直接输出S就行了。 这样