涛涛的Party

涛涛的Party

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 25   Accepted Submission(s) : 12

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

涛神因为极强,并且特别帅,所以拥有很多美女的联系方式,每个美女都有自己的食量以及魅力值,大家都知道,物以类聚,人以群分,朋友的朋友就是自己的朋友,所以美女一般都是有自己的美女朋友圈,而且这些美女特别团结,如果她的朋友有没有被邀请的她就不会答应邀请。涛涛想办一个party,但是他只准备了w kg的食物,他想获得最大的美女魅力值,不知道怎么邀请美女,于是他去问你,你能告诉他,他能获得的美女魅力数是多少吗

Input

数据有多组,第一行输入n,m和w(1≤n≤1000,0≤m≤min(n*(n-1)/2,10^5),1≤w≤1000);第二行输入n个整型变量w1,w2,...,wn(1≤wi≤1000)代表美女i的食量;第三行输入n个整型变量b1,b2,...,bn(1≤bi≤106)代表美女i的魅力值;接下来的m行输入两个数x和y(1≤xi,yi≤n,xi≠yi),代表x和y是朋友

Output

输出涛涛能获得的最大魅力值

Sample Input

3 1 5
3 2 5
2 4 2
1 2
4 2 11
2 4 6 6
6 4 2 1
1 2
2 3

Sample Output

6
1

01背包问题和dfs加个邻接表;用直接代码了;
 1 #include <iostream> //1004
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <vector>
 5 #include <stack>
 6 #define M 1005
 7 using namespace std;
 8
 9 struct Node{
10     int a,b;
11 }node[M];
12 int dp[M];
13 vector<int> v[M];
14 stack<int> s1,s2;
15 Node eat[M];
16 int ap[M];
17
18 void dfs(int i){
19     ap[i]=1;
20     s1.push(node[i].a);
21     s2.push(node[i].b);
22     for(int k=0;k<v[i].size();k++){
23         if(ap[v[i][k]]!=1)
24             dfs(v[i][k]);
25     }
26 }
27 int main(){
28     int n,m,w;
29     while(scanf("%d%d%d",&n,&m,&w)!=EOF){
30         for(int i=1;i<=n;i++){
31             scanf("%d",&node[i].a);
32         }
33         for(int i=1;i<=n;i++){
34             scanf("%d",&node[i].b);
35         }
36         for(int i=0;i<m;i++){
37             int x,y;
38             scanf("%d%d",&x,&y);
39             v[x].push_back(y);
40             v[y].push_back(x);
41         }
42          int l=1;
43         memset(eat,0,sizeof(eat));
44         for(int i=1;i<=n;i++){
45             if(ap[i]==0){
46                 dfs(i);
47                 while(!s1.empty()){
48                     eat[l].a+=s1.top();
49                     eat[l].b+=s2.top();
50                     s1.pop();
51                     s2.pop();
52                 }
53                 l++;
54             }
55         }
56         for(int i=1;i<l;i++){
57             for(int j=w;j>=eat[i].a;j--){
58                 dp[j]=max(dp[j],dp[j-eat[i].a]+eat[i].b );
59             }
60         }
61         printf("%d\n",dp[w]);
62         for(int i=1;i<=n;i++)
63             v[i].clear();
64         memset(ap,0,sizeof(ap));
65         memset(dp,0,sizeof(dp));
66     }
67     return 0;
68 }
				
时间: 2024-10-13 21:20:30

涛涛的Party的相关文章

JXNU acm选拔赛 涛涛的Party

涛涛的Party Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 21   Accepted Submission(s) : 8 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 涛神因为极强,并且特别帅,所以拥有很多美女的联系方式,每个

小涛涛的计算器

笔者从学习编程之初,就想写一个自己的程序(小工具),不管它好用否.有没有人用,我都想做一个出来. 话不多说,这是一款简易的计算器,没有二进制.八进制这些的运算.也没有角度.科学计数法等内容,纯粹的 加减乘除 四则运算.能计算形如 A+B  ;  A+C  ;  A*B  ;  -A+B  的四则运算. 程序界面如下: 蓝色 输入\输出 区域我们使用ListBox ,将其命名为 PrintAnswer 0-9 的数字按钮 ,直接打印在屏幕上 Button b = (Button)sender; P

20160405互联网新闻&lt;来自涛涛大产品&gt;

1.滴滴或将收购腾讯地图,打造“滴滴地图”(滴滴与神州.uber之间的争斗,归根到底还是BAT的代理人之战)2.优信二手车否认合并传言 并谴责58同城仿冒优信网站(商战无所不用其极)3.京东旗下的拍拍二手宣布关闭(换了主子,仍旧避免不了关张大吉的命运)4.中科院上线自己的电商平台:主推科技产品(还是让专业的人干专业的事吧)[周边新闻]1.揭秘“互联网+殡葬”:比房地产公司活得还精彩(你活着的时候还能再大北京有块地方,等你死了,估计连北京都待不了了)2.阿里健康发布公告:正式接手天猫医药3.央视曝

涛涛的小马甲 Android之Handler机制

首先需要了解一个基本的概念ANR:Application not response 即应用程序无响应,也就是俗话说的死机. 出现Anr的原因是: 主线程需要做很多重要的事情,响应点击事件,更新UI如果在主线程里面阻塞过久的时间,应用程序会无响应. 为了避免应用程序出现anr,所有的耗时操作都应该放在子线程里执行.像访问网络的操作只能在子线程里面执行 解决的方法:主线程执行中---->包含一个Handler的对象,message queue 用来放置消息队列,Looper则不停 的查看messag

涛神的城堡

涛神的城堡 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 54   Accepted Submission(s) : 13 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 涛神有一个城堡给游客参观,涛神特别的强壮,涛神的强壮值是str

JXNU acm选拔赛 涛神的城堡

涛神的城堡 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 42   Accepted Submission(s) : 8 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 涛神有一个城堡给游客参观,涛神特别的强壮,涛神的强壮值是stro

bzoj 1270: [BeijingWc2008]雷涛的小猫 简单dp+滚动数组

1270: [BeijingWc2008]雷涛的小猫 Time Limit: 50 Sec  Memory Limit: 162 MB[Submit][Status][Discuss] Description   Input Output Sample Input Sample Output 8 HINT 思路:保存i+z的max值:上一行的dp值: #include<bits/stdc++.h> using namespace std; #define ll __int64 #define

【大盘点】2014.8-2016.5 涛舅舅定制开发游戏目录

从2014年8月到2015年9月,整整一年的时间里,有越来越多的客户找到我们,与我们一起来打造了一个个精美的.以用户体验为中心的微信H5游戏项目,从早到晚的沟通.设计.修改.测试.再修改.再测试.最终上线,每个游戏都是经历了这样的过程才能呈现在各位用户面前,我们开发的工作是辛苦的,而得到用户的点赞是倍感欣慰的,这就是我们的心. 下面就是我们的用心打造的一个个活生生的游戏,每一个游戏的背后都有一个故事...    2015年9月——2016年2月 客户定制H5游戏目录补充 “H5游戏定制开发”请联

BZOJ 1270: [BeijingWc2008]雷涛的小猫( dp )

简单的dp.. dp(i,j) = max(dp(x,y))+cnt[i][j], (x,y)->(i,j)是合法路径. 设f(i)= max(dp(x,y))(1≤x≤N, 1≤y≤i), g(i,j) = max(dp(i, k))(1≤k≤j) 那么dp(i,j) =  max(f(j+delta), g(i,j+1))+cnt[i][j]. 递推即可. 时间复杂度O(NH) ---------------------------------------------------------