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

相关文章

使用Java填充Word模板的操作指南

《使用Java填充Word模板的操作指南》本文介绍了Java填充Word模板的实现方法,包括文本、列表和复选框的填充,首先通过Word域功能设置模板变量,然后使用poi-tl、aspose-words... 目录前言一、设置word模板普通字段列表字段复选框二、代码1. 引入POM2. 模板放入项目3.代码

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

C++读写word文档(.docx)DuckX库的使用详解

《C++读写word文档(.docx)DuckX库的使用详解》DuckX是C++库,用于创建/编辑.docx文件,支持读取文档、添加段落/片段、编辑表格,解决中文乱码需更改编码方案,进阶功能含文本替换... 目录一、基本用法1. 读取文档3. 添加段落4. 添加片段3. 编辑表格二、进阶用法1. 文本替换2

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的

Python实现自动化删除Word文档超链接的实用技巧

《Python实现自动化删除Word文档超链接的实用技巧》在日常工作中,我们经常需要处理各种Word文档,本文将深入探讨如何利用Python,特别是借助一个功能强大的库,高效移除Word文档中的超链接... 目录为什么需要移除Word文档超链接准备工作:环境搭建与库安装核心实现:使用python移除超链接的

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方