AcWing算法提高课-4.1.2搭配购买

算法提高课整理

CSDN个人主页:更好的阅读体验

Start

原题链接
题目描述

Joe觉得云朵很美,决定去山上的商店买一些云朵。

商店里有 n n n 朵云,云朵被编号为 1 , 2 , … , n 1,2,…,n 1,2,,n,并且每朵云都有一个价值。

但是商店老板跟他说,一些云朵要搭配来买才好,所以买一朵云则与这朵云有搭配的云都要买。

但是Joe的钱有限,所以他希望买的价值越多越好。

输入格式

1 1 1 行包含三个整数 n , m , w n,m,w n,m,w,表示有 n n n 朵云, m m m 个搭配,Joe有 w w w 的钱。

2 ∼ n + 1 2 \sim n+1 2n+1行,每行两个整数 c i , d i c_i,d_i ci,di 表示 i i i 朵云的价钱和价值。

n + 2 ∼ n + 1 + m n+2 \sim n+1+m n+2n+1+m 行,每行两个整数 u i , v i u_i,v_i ui,vi,表示买 u i u_i ui 就必须买 v i v_i vi,同理,如果买 v i v_i vi 就必须买 u i u_i ui

输出格式

一行,表示可以获得的最大价值。

数据范围

1 ≤ n ≤ 10000 1 \le n \le 10000 1n10000,
0 ≤ m ≤ 5000 0 \le m \le 5000 0m5000,
1 ≤ w ≤ 10000 1 \le w \le 10000 1w10000,
1 ≤ c i ≤ 5000 1 \le c_i \le 5000 1ci5000,
1 ≤ d i ≤ 100 1 \le d_i \le 100 1di100,
1 ≤ u i , v i ≤ n 1 \le u_i,v_i \le n 1ui,vin

输入样例:
5 3 10
3 10
3 10
3 10
5 100
10 1
1 3
3 2
4 2
输出样例:
1

思路

一个比较板子的有依赖背包。

考虑使用并查集进行缩点,然后对于所有连通块跑 0-1 背包。

AC Code

C + + \text{C}++ C++

#include <iostream>
#pragma GCC optimize(2)

using namespace std;

const int N = 10010;

int n, m, k;
int f[N], p[N];
int v[N], w[N];

int find(int x)
{
    if (x != p[x]) p[x] = find(p[x]);
    return p[x];
}

int main()
{
    scanf("%d%d%d", &n, &k, &m);
    for (int i = 1; i <= n; i ++ )
        scanf("%d%d", &v[i], &w[i]);
    
    for (int i = 1; i <= n; i ++ )
        p[i] = i; // 并查集初始化
    
    int a, b;
    while (k -- )
    {
        scanf("%d%d", &a, &b);
        a = find(a), b = find(b);
        if (a != b)
        {
            v[b] += v[a], w[b] += w[a];
            v[a] = 0, w[a] = 0;
            p[a] = b; // 对于两个有依赖的物品缩点,并累加体积和重量
        }
    }
    
    for (int i = 1; i <= n; i ++ ) // 0-1背包
        for (int j = m; j >= v[i]; j -- )
            f[j] = max(f[j], f[j - v[i]] + w[i]);
    
    printf("%d\n", f[m]);
    
    return 0;
}

228aa7bed3e021faf24cf8560d3e47bb.gif

最后,如果觉得对您有帮助的话,点个赞再走吧!

  • 16
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: texstudio-4.1.2-win-qt5.exe 是一个用于Windows操作系统的Tex编辑器,它的名字是Tex Studio。它的版本号是4.1.2,这个版本是基于Qt5框架开发的。它可以帮助用户创建、编辑和编译Tex文档。 Tex Studio提供了丰富的功能和工具,使得Tex文档的编写变得更加简单和高效。它具有智能补全功能,可以自动补全Tex命令和关键词,节省了用户的时间和精力。此外,它还具有语法高亮显示功能,可以帮助用户更好地阅读和理解Tex代码。 另外,Tex Studio还集成了对BibTeX的支持,可以轻松管理文献引用。它还提供了强大的多文件支持,用户可以在一个项目中编写多个Tex文件,方便管理和组织文档。此外,它还提供了实时预览功能,用户可以随时查看文档的最新效果。 Tex Studio还支持用户自定义设置和宏定义,用户可以根据自己的需求进行个性化设置,提高编写效率。它还支持众多Tex发行版,包括MiKTeX和TeX Live等。 总的来说,texstudio-4.1.2-win-qt5.exe 是一个强大而易于使用的Tex编辑器,适用于Windows操作系统。它提供了丰富的功能和工具,使得Tex文档的编写变得更加轻松和高效。无论是学术界的研究人员还是学生,都可以从中受益。 ### 回答2: texstudio-4.1.2-win-qt5.exe是一个TeX编辑器软件的安装文件。TeX是一种用于排版科技文档的语言和程序系统。TeX Studio是一个基于TeX的集成开发环境,提供了方便的编写、编辑和查看TeX文档的功能。 texstudio-4.1.2-win-qt5.exe的含义是指该软件的版本为4.1.2,针对Windows操作系统,并采用了Qt5作为界面开发工具包。 TeX Studio具有丰富的功能,例如语法高亮显示、智能代码补全、自动补全引用和标签等等。它还支持多文件编辑、语法检查、编译和预览等功能。用户可以方便地编写、编辑和排版各种类型的科技文档,如论文、报告、书籍等。 通过texstudio-4.1.2-win-qt5.exe安装文件可以将TeX Studio软件安装到Windows操作系统中。用户只需双击该文件,按照安装向导的步骤进行安装即可。安装完成后,用户可以在开始菜单中找到TeX Studio的快捷方式,并通过它启动软件。 总之,texstudio-4.1.2-win-qt5.exe是TeX Studio软件的安装文件,通过它可以在Windows操作系统中安装和使用该软件,方便进行TeX文档的编写和排版。 ### 回答3: texstudio-4.1.2-win-qt5.exe是TexStudio软件的安装文件。TexStudio是一款功能强大的LaTeX编辑器,适用于Windows操作系统。该软件具有直观的用户界面和丰富的编辑功能,可以用于创建、编辑和编译LaTeX文档。 通过安装texstudio-4.1.2-win-qt5.exe,用户可以在Windows系统上使用TexStudio软件。安装过程非常简单,只需点击exe文件并按照安装向导的指示进行操作即可。安装完成后,用户可以启动TexStudio并开始使用。 TexStudio软件提供了很多实用的功能,如语法高亮、智能代码补全、拼写检查等,这些功能可以帮助用户提高工作效率和文档质量。此外,TexStudio还支持实时预览、一键编译、快捷键定义等功能,使用户能够更加方便地编辑和编译LaTeX文档。 texstudio-4.1.2-win-qt5.exe是TexStudio软件的升级版本,包含了新的功能和改进。用户通过安装这个文件,可以获得更好的使用体验和更高的工作效率。 总之,texstudio-4.1.2-win-qt5.exe是TexStudio软件的安装文件,通过安装这个文件,用户可以在Windows系统上获得TeXStudio软件的最新版本,享受到丰富的编辑和编译LaTeX文档的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星河依旧长明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值