哈理工第六届程序设计大赛 D 经商 (并查集+背包)

思路:题目还是比较裸的。。并茶几+01背包搞搞就可以了


#include<bits/stdc++.h>
using namespace std;
const int maxn = 10000+7;
#define LL long long
int fa[maxn];
void init(int n)
{
	for(int i = 0;i<=n;i++)fa[i]=i;
}
int Find(int x){return fa[x]==x?x:fa[x]=Find(fa[x]);}
void mix(int x,int y)
{
	int xx = Find(x);
	int yy = Find(y);
    if(xx!=yy)
	fa[xx]=yy;
}
LL dp[505];
LL a[maxn],b[maxn];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
		memset(dp,0,sizeof(dp));
        int n,m,c;
        scanf("%d%d%d",&n,&m,&c);
        init(n);
        for(int i=2;i<=n;i++)
            scanf("%lld%lld",&a[i],&b[i]);
        for(int i=0;i<m;i++)
        {
            int u,v;
            scanf("%d%d",&u,&v);
			mix(u,v);
        }
        for(int i=2;i<=n;i++)
        {
            if(Find(i)==Find(1))
            {
                for(int j=c;j>=0;j--)
                    if(j-a[i]>=0)
                        dp[j]=max(dp[j],dp[j-a[i]]+b[i]);
            }
        }
        printf("%lld\n",dp[c]);
    }
}
 



Problem D: 经商

Time Limit: 1 Sec  Memory Limit: 32 MB
Submit: 128  Solved: 49
[ Submit][ Status][ Web Board]

Description

 

小d是一个搞房地产的土豪。每个人经商都有每个人经商的手段,当然人际关系是需要放在首位的。

小d每一个月都需要列出来一个人际关系表,表示他们搞房地产的人的一个人际关系网,但是他的精力有限,对应他只能和能够接触到的人交际。比如1认识2,2认识3,那么1就可以接触3进行交际,当然1和2也可以交际。

小d还很精明,他知道他和谁交际的深获得的利益大,接下来他根据自己的想法又列出来一个利益表,表示他和这些人交际需要耗用多少精力,能够获得的利益值为多少。

小d想知道,他在精力范围内,能够获得的利益值到底是多少。

设定小d自己的编号为1.并且对应一个人的交际次数限定为1.

Input

 

本题包含多组输入,第一行输入一个数t,表示测试数据的组数

每组数据的第一行输入三个数,N,M,C,表示这个人际关系网一共有多少个人,关系网的关系数,以及小d的精力值

接下来N-1行,每行两个数ai,bi。这里第i行表示和编号为i+1的人认识需要花费ai的精力,能够获得的利益值为bi。

再接下来M行,每行两个数x,y,表示编号为x的人能够和编号为y的人接触

t<=50

2<=N<=10000

1<=M<=10*N

1<=ai,bi<=10

1<=C<=500

1<=x,y<=N

Output

 

输出包含一行,表示小d能够获得的最大利益值

Sample Input

15 3 75 103 24 31 1001 22 31 4

Sample Output

10

HINT

 


小明能够接触到的人的编号有:2 3 4,那么对应接触编号为2的人花费5精力能够获得10的利益值是最优方案。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
理工计算机组成原理课程设计是一个重要的实践环节,旨在帮助学生巩固和应用所学的计算机组成原理知识。该课程设计通常包括以下几个方面的内容: 1. 单周期CPU设计:学生需要设计一个基于单周期的CPU,包括指令集、控制信号、寄存器等。通过这个设计,学生可以深入理解指令执行的过程和计算机的基本组成。 2. 流水线CPU设计:在单周期CPU的基础上,学生需要设计一个流水线CPU,实现指令的并行执行。这个设计可以提高计算机的性能,并且让学生了解流水线技术的原理和应用。 3. 存储器系统设计:学生需要设计一个存储器系统,包括主存储器和高速缓存。通过这个设计,学生可以了解存储器的层次结构和访问原理,并且学会优化存储器系统的性能。 4. 输入输出系统设计:学生需要设计一个输入输出系统,包括外设接口和中断处理。通过这个设计,学生可以了解计算机与外部设备的交互方式,并且学会处理外部中断和异常。 5. 性能评测与优化:学生需要对自己设计的计算机系统进行性能评测,并且提出优化方案。通过这个设计,学生可以了解计算机系统的性能指标和评测方法,并且学会优化系统的性能。 以上是哈理工计算机组成原理课程设计的一般内容,具体的设计要求和项目可能会有所不同。希望以上介绍对你有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值