裸的   并查集  +  分组背包;

 #include<iostream>
#include<cstring>
#include<algorithm>
#include<stdio.h>
#include<cmath>
#include<vector>
using namespace std; vector<int>vv[];
vector<int>ss[];
int f[],N,M,W,wi[],pi[],dp[];
int find( int x ){
if( x != f[x] )return f[x] = find(f[x]);
return x;
}
void inint( ){
memset( dp,,sizeof(dp) );
for( int i = ; i <= N; i++ ) f[i] = i;
for( int i = ; i <= N; i++ )vv[i].clear();
for( int i = ; i <= N; i++ )ss[i].clear();
for( int j = ; j <= N; j++ )
scanf("%d%d",&pi[j],&wi[j]);
}
int main( )
{
while( scanf("%d%d%d",&N,&W,&M) != EOF )
{
inint( );
for( int i = ; i <= M; i++ )
{
int u,v; scanf("%d%d",&u,&v);
u = find( u ); v = find( v );
if( u != v )f[u] = v;
}
for( int i = ; i <= N; i++ )
vv[find(i)].push_back(i);
int k = ;
for( int i = ; i <= N; i++ )
{
int len = vv[i].size();
if( len == )continue; k++;
for( int j = ; j < len; j++ )
ss[k].push_back(vv[i][j]);
}
for( int i = ; i <= k; i++ ) // 这里是分组背包;
for( int j = W; j >= ; j-- )
for( int t = ; t < ss[i].size( ); t++ )
if( j >= wi[ss[i][t]] )
dp[j] = max( dp[j],dp[j - wi[ss[i][t]]] + pi[ss[i][t]] );
cout<<dp[W]<<endl;
}
return ;
}

csu 1326 The contest的更多相关文章

  1. CSU 1326: The contest(分组背包)

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1326 题意: n个题目,每个题目都有一个价值Pi和相对能力消耗Wi,但是有些题目因为太坑不能同时做 ...

  2. CSU 1326:The contest(并查集+分组背包)

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1326 题意:…… 思路:并查集建图处理出边,然后分组背包. 之前不会分组背包,比赛的时候也推不出来 ...

  3. 1326: The contest(并查集+分组背包)

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1326 殷犇有很多队员.他们都认为自己是最强的,于是,一场比赛开始了~ 于是安叔主办了一场比赛,比赛 ...

  4. CSU 1021 B(Contest #3)

    Description 从m个不同元素中取出n (n ≤ m)个元素的所有组合的个数,叫做从m个不同元素中取出n个元素的组合数.组合数的计算公式如下: C(m, n) = m!/((m - n)!n! ...

  5. CSU 1111 D(Contest #3)

              有三户人家共拥有一座花园,每户人家的太太均需帮忙整理花园.A 太太工作了5 天,B 太太则工作了4 天,才将花园整理完毕.C 太太因为正身怀六甲无法加入她们的行列,便出了90元.请 ...

  6. CSU 1160 A(Contest #3)

    Description 把十进制整数转换为十六进制,格式为0x开头,10~15由大写字母A~F表示. Input 每行一个整数x,0<= x <= 2^31. Output 每行输出对应的 ...

  7. csu 10月 月赛 I 题 The Contest

    Description 殷犇有很多队员.他们都认为自己是最强的,于是,一场比赛开始了~ 于是安叔主办了一场比赛,比赛有n个题目,每个题目都有一个价值Pi和相对能力消耗Wi,但是有些题目因为太坑不能同时 ...

  8. csu oj 1811: Tree Intersection (启发式合并)

    题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1811 给你一棵树,每个节点有一个颜色.问删除一条边形成两棵子树,两棵子树有多少种颜色是有 ...

  9. 关于ACM,关于CSU

    原文地址:http://tieba.baidu.com/p/2432943599 前言: 即将进入研二,ACM的事情也渐渐远去,记忆终将模糊,但那段奋斗永远让人热血沸腾.开个贴讲讲ACM与中南的故事, ...

随机推荐

  1. C# JSON字符串序列化与反序列化

    JSON与c#对象转换http://hi.baidu.com/donick/item/4d741338870c91fe97f88d33 C# JSON字符串序列化与反序列化 – http://www. ...

  2. C# 6 —— 属性

    记录一下 C# 6 有关属性的语法糖实现,C# 6 涉及到属性的新特性主要有 2 个:自动属性初始化.只读属性赋值与读取. 自动属性初始化(Auto-property initializers) C# ...

  3. postgresql数据库的yum安装方法

    实验环境>>>>>>>>>>>>>>>>>>操作系统:CentOS release 6.3 ...

  4. Gradle Goodness: Skip Building Project Dependencies

    If we use Gradle in a multi-module project we can define project dependencies between modules. Gradl ...

  5. 网络处理1-异步GET请求

    前言 云计算 近几年来,云计算是一个非常热门的技术名词,很多专家认为,云计算会改变互联网的技术基础,甚至会影响整个产业的格局.可能还很多人不了解什么是云计算,简单来说,就是把用户的数据(比如文档.照片 ...

  6. java中静态代理跟动态代理之间的区别

    文章转载于:http://www.cnblogs.com/xiaoluo501395377/p/3383130.html 在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另 ...

  7. -ffunction-sections -Wl,--gc-sections

    AVR/GCC设置不链接未调用的函数 http://blog.csdn.net/shevsten/article/details/7049688 在AVR Studio4/5的AVR/GCC默认设置下 ...

  8. Linux中crontab的坑爹环境变量问题

    手动在CentOS中执行sh脚本,调用java程序,一切正常: 将该sh加入crontab中定时调度之后,挂了,完全没有执行到的感觉啊!!! 查看crontab执行日志: cat /var/log/c ...

  9. JavaWeb项目开发案例精粹-第4章博客网站系统-003Dao层

    1. package com.sanqing.dao; import java.util.List; import com.sanqing.fenye.Page; import com.sanqing ...

  10. QWidget的六个刷新函数(居然有QWidget::erase函数,且并不产生绘制事件)

    Qt paintevent事件   一.主要理解一下几个方法和属性: 1.QWidget * QScrollView::viewport () const 2.void QWidget::paintE ...