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

涛神因为极强,并且特别帅,所以拥有很多美女的联系方式,每个美女都有自己的食量以及魅力值,大家都知道,物以类聚,人以群分,朋友的朋友就是自己的朋友,所以美女一般都是有自己的美女朋友圈,而且这些美女特别团结,如果她的朋友有没有被邀请的她就不会答应邀请。涛涛想办一个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


 1 #include<iostream>
 2 #include<stdio.h>
 3 #include<string.h>
 4 #include<algorithm>
 5 using namespace std;
 6 struct Node{
 7     int wei,mm,fa;
 8 }a[1005];
 9 int sum1[1005];
10 int sum2[1005];
11 int Find(int x)
12 {
13     if(x==a[x].fa) return x;
14     else{
15         a[x].fa=Find(a[x].fa);
16         return a[x].fa;
17     }
18 }
19 void join(int x,int y)
20 {
21     int fx=Find(x),fy=Find(y);
22     if(fx!=fy)
23     {
24         a[fy].fa=fx;
25     }
26 }
27 int main()
28 {
29     int n,m,w;
30     while(~scanf("%d%d%d",&n,&m,&w))
31     {
32         for(int i=1;i<=n;i++){
33             a[i].fa=i;
34             scanf("%d",&a[i].wei);
35         }
36         for(int i=1;i<=n;i++){
37             scanf("%d",&a[i].mm);
38         }
39         int xx,yy;
40         for(int i=0;i<m;i++)
41         {
42             scanf("%d%d",&xx,&yy);
43             join(xx,yy);
44         }
45         memset(sum1,0,sizeof(sum1));
46         memset(sum2,0,sizeof(sum2));
47         for(int i=1;i<=n;i++)//统计各个朋友圈的魅力值和耗的粮食
48         {
49             int ff=Find(i);
50             sum1[ff]+=a[i].mm;
51             sum2[ff]+=a[i].wei;
52         }
53         int dp[1005];
54         memset(dp,0,sizeof(dp));
55         for(int i=1;i<=n;i++)
56         {
57             for(int j=w;j>=sum2[i];j--)
58             {
59                 dp[j]=max(dp[j],dp[j-sum2[i]]+sum1[i]);
60             }
61         }
62         cout<<dp[w]<<endl;
63     }
64     return 0;
65 }



				
时间: 2024-11-04 13:39:30

JXNU acm选拔赛 涛涛的Party的相关文章

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

JXNU acm选拔赛 壮壮的数组

壮壮的数组 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 18   Accepted Submission(s) : 8 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description A,B,C为三个元素个数为n的数组,A={a1,a2,a3...

JXNU acm选拔赛 最小的数

最小的数 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 14   Accepted Submission(s) : 8 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 定义一种正整数集合K,集合中有N个数,集合中元素Ki(1<=i<

jxnu acm新生选拔赛

最小的数 Problem Description 定义一种正整数集合K,集合中有N个数,集合中元素Ki(1<=i<=N)是包含i个不同质因子的最小的数.因为Ki可能会很大,所以将集合中所有Ki对10^9+7取余. Input 本题只有唯一一组测试数据,第一行给出N,q,表示K的个数以及q次询问.1<=N<=1000,q<=10^5.接下来q行每行一个正整数(64位整数范围内),请判断其对10^9+7取余后,是否在集合K中. Output 对于每次询问,根据题意输出Yes或No

JXNU 新生选拔赛

1001 最小的数 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 28   Accepted Submission(s) : 4 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 定义一种正整数集合K,集合中有N个数,集合中元素Ki(1

涛涛的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 涛神因为极强,并且特别帅,所以拥有很多美女的联系方式,每

dada的GCD ( jxnu acm新生选拔赛)

1007 dada的GCD,输入格式描述有误,已修正 dada的GCD Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 36   Accepted Submission(s) : 8 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description C语

&lt;关于JSP技术&gt;运行机制及语法概述(附对本次同济校内ACM选拔赛决赛的吐槽)

(一)JSP运行的机制 JSP是一种建立在Servlet规范功能之上的动态网页技术,它们都是在通常的网页文件中嵌入脚本代码,用于产生动态内容,不过和ASP不同的是JSP文件中嵌入的是Java代码和JSP标记.其实JSP文件在用户第一次请求的时候会被编译成Servlet,然后再由这个Servlet处理用户的请求,所以JSP也可以看成是运行时的Servlet,模糊地将JSP和Servlet是同一个东西.但是他们之间的区别又有哪些呢? 1.Servlet是Java对于CGI的回应(Common Gat

2018年北京信息科技大学第十届程序设计竞赛暨ACM选拔赛-B-precise math function

题目描述 喜爱ACM的PBY同学遇到了一道数学难题,已知底数n,请你帮他准确的计算出结果a = nπ(n的π次方),结果保留小数点后x位. 输入描述: 第一行是一个整数t,表示测试实例的个数: 然后是t行输入数据,每行包含两个正整数n和x,表示底数和保留位数. (1 <= t <= 100,1 <= n <= 500,1 <= x <= 6) 输出描述: 对于每组输入数据,分别输出结果a,每个输出占一行. 示例1 输入 3 1 3 7 6 9 1 输出 1.000 45