https://www.luogu.org/problem/show?pid=1455

题目描述

明天就是母亲节了,电脑组的小朋友们在忙碌的课业之余挖空心思想着该送什么礼物来表达自己的心意呢?听说在某个网站上有卖云朵的,小朋友们决定一同前往去看看这种神奇的商品,这个店里有n朵云,云朵已经被老板编号为1,2,3,……,n,并且每朵云都有一个价值,但是商店的老板是个很奇怪的人,他会告诉你一些云朵要搭配起来买才卖,也就是说买一朵云则与这朵云有搭配的云都要买,电脑组的你觉得这礼物实在是太新奇了,但是你的钱是有限的,所以你肯定是想用现有的钱买到尽量多价值的云。

输入输出格式

输入格式:

第1行n,m,w,表示n朵云,m个搭配和你现有的钱的数目

第2行至n+1行,每行ci,di表示i朵云的价钱和价值

第n+2至n+1+m ,每行ui,vi表示买ui就必须买vi,同理,如果买vi就必须买ui

输出格式:

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

输入输出样例

输入样例#1:

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

1

说明

30%的数据满足:n<=100

50%的数据满足:n<=1000;m<=100;w<=1000;

100%的数据满足:n<=10000;0<=m<=5000;w<=10000.

初衷是练Tarjan的,结果~~~

 #include <algorithm>
#include <cstdio> using namespace std; const int N(1e5+);
int n,m,money;
int u,v,f[N],fa[N];
struct Type
{
int val,use;
} thing[N]; int find(int x)
{
return fa[x]==x?x:fa[x]=find(fa[x]);
} void combine(int x,int y)
{
int fx=find(x), fy=find(y);
if(fx!=fy)
{
fa[fy]=fx;
thing[fx].use+=thing[fy].use;
thing[fx].val+=thing[fy].val;
thing[fy].use=; thing[fy].val=;
}
} int main()
{
scanf("%d%d%d",&n,&m,&money);
for(int i=;i<=n;i++) fa[i]=i;
for(int i=;i<=n;i++)
scanf("%d%d",&thing[i].use,&thing[i].val);
for(;m;m--)
{
scanf("%d%d",&u,&v);
combine(u,v);
}
for(int i=;i<=n;i++)
if(thing[i].use||thing[i].val)
for(int j=money;j>=thing[i].use;j--)
f[j]=max(f[j],f[j-thing[i].use]+thing[i].val);
printf("%d",f[money]);
return ;
}

最新文章

  1. php程序 注册机制
  2. js 练习
  3. [deviceone开发]-仿微信应用(一):框架搭建
  4. Python 开发轻量级爬虫04
  5. placeholder在IE8中兼容性问题解决
  6. 8款功能强大的最新HTML5特效实例
  7. [改善Java代码]避免对象的浅拷贝
  8. js获取当前url参数
  9. 弹飞DZY(思维,打表,还没过全,先放着)
  10. 4D(DRG、DLG、DOM、DEM)数据 概念
  11. php表单提交--文件
  12. 【2017集美大学1412软工实践_助教博客】团队作业8——第二次项目冲刺(Beta阶段)
  13. 数据流(任务并行库 TPL)
  14. 【.NET Core项目实战-统一认证平台】第十一章 授权篇-密码授权模式
  15. hadoop MapReduce
  16. layui 提交表格不验证
  17. Asp.Net 合并图片(二维码和其他图片合并)
  18. linux 设备驱动分类
  19. Python -- Json 数据编码及解析
  20. SQL server T-SQL存储过程

热门文章

  1. 模板 NTT 快速数论变换
  2. qt quick中qml编程语言
  3. 紫书 例题7-14 UVa 1602(搜索+STL+打表)
  4. spring-boot-maven-plugin 插件的作用(转)
  5. HDU 2512
  6. Android多媒体学习六:利用Service实现背景音乐的播放
  7. c++友元实现操作符重载
  8. Android TextView 横向滚动(跑马灯效果)
  9. EditText电话号码格式化输入、删除案例
  10. 对Java、C#转学swift的提醒:学习swift首先要突破心理障碍。