Vijos / 题库 /1250 / 最勇敢的机器人

借鉴博客:http://www.cnblogs.com/chty/p/5830516.html

背景

Wind设计了很多机器人。但是它们都认为自己是最强的,于是,一场比赛开始了~

描述

机器人们都想知道谁是最勇敢的,于是它们比赛搬运一些物品。

它们到了一个仓库,里面有n个物品,每个物品都有一个价值Pi和重量Wi,但是有些物品放在一起会爆炸,并且爆炸具有传递性。(a和b会爆炸、b和c会爆炸则a和c会爆炸)
机器人们可不想因此损失自己好不容易从Wind那里敲诈来的装备,于是它们想知道在能力范围内,它们最多可以拿多少价值的物品。

你能帮助它们吗?

格式

输入格式

每组测试数据
第1行为n,Wmax,k(0<=n,Wmax,k<=1000)
接下来n行,为每个物品的Pi,Wi(0<=Pi<=1000,1<=Wi<=10,均为整数)
再接下来k行,每行2个数字a,b表示a和b会发生爆炸

输出格式

对每组数据输出1行
为最大可能价值

样例1

样例输入1

3 10 1
100 1
200 5
10 5
1 2

样例输出1

210

限制

每个测试点1s

提示

来源

Wind

解题思路:并查集维护分组+分组背包求解

好久没做过分组背包了,套路:枚举每一组,枚举质量,最后枚举每一组中的每一个

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<stack>
#include<queue>
#include<vector>
#include<algorithm> #define N 10101010
using namespace std; void in(int &x){
register char c=getchar();x=;int f=;
while(!isdigit(c)){if(c=='-') f=-;c=getchar();}
while(isdigit(c)){x=x*+c-'';c=getchar();}
x*=f;
} int n,w,k,W[N],v[N],fa[N],f[],ans,g[N];
vector<int>V[];
int find(int u){return fa[u]==u?u:find(fa[u]);}
bool vis[N]; int main()
{
in(n);in(w);in(k);
for(int i=;i<=n;i++) in(v[i]),in(W[i]),fa[i]=i;
for(int i=;i<=k;i++){
int u,v,fu,fv;
in(u);in(v);
fu=find(u);fv=find(v);
if(fu!=fv){
fa[fu]=fv;
}
}
for(int i=;i<=n;i++){
fa[i]=find(i);
if(fa[i]==i) g[++g[]]=i;
V[fa[i]].push_back(i);
}for(int i=;i<=g[];i++){
for(int k=w;k>=;k--){
for(int j=;j<V[g[i]].size();j++){
int q=V[g[i]][j];
if(k>=W[q]) f[k]=max(f[k],f[k-W[q]]+v[q]);//防止数组越界
}
}
}printf("%d\n",f[w]);
return ;
}

最新文章

  1. 50. 树的子结构[subtree structure in tree]
  2. 【leetcode】Reverse Linked List(easy)
  3. Linux网络常用指令
  4. Android--启动系统的剪切图像功能并返回结果
  5. 【图论】【宽搜】【染色】NCPC 2014 A Ades
  6. iOS面试题整理(一)
  7. Java中字符串内存位置浅析
  8. Unity性能优化
  9. VS2013无法链接到TFS (转)
  10. 移植FreeModbus+ModbusMaster+STM32至RT-Thread(3、4阶段)
  11. 用Python做2048游戏 网易云课堂配套实验课。通过GUI来体验编程的乐趣。
  12. python处理时间--- datetime模块
  13. 谈谈自己的理解:python中闭包,闭包的实质
  14. Jsの练习-将 数组中值为0 的去掉,不为0的存入一个新的数组
  15. K8s核心概念详解
  16. stingray中使用angularjs
  17. spring源码学习(一):eclipse导入spring源码
  18. 解决 SharePoint 2010 拒绝访问爬网内容源错误的小技巧(禁用环回请求的两种方式)
  19. 图形解析理解 css3 之倾斜属性skew()
  20. 【ssm整合打印sql语句】

热门文章

  1. 线段树专题 POJ3468 A Simple Problem with Integers
  2. ios7 真机调试 设置 bitcode
  3. AUTOTRACE
  4. 更改App.config里的值并保存
  5. BZOJ 2338 HNOI2011 数矩形 计算几何
  6. 手把手教你把Vim改装成一个IDE编程环境(图文)【转】
  7. ref 和out的区别
  8. 45. ExtJS ComboBox 下拉列表详细用法
  9. jeesite自定义主题
  10. E20170627-hm