- 搭配购买(buy)
求找bug(90WA代码)
- 2024-5-25 21:19:31 @
#include<bits/stdc++.h>
using namespace std;
int fa[28571];
int sumU[28571];
int sumV[28571];
int f[28571];
int Get(int x){
return x==fa[x]?x:fa[x]=Get(fa[x]);
}
void Merge(int x,int y){
fa[Get(x)]=Get(y);
}
int main(){
int n,m,w;//Nitrogen:n;Magnesium:m;Tungstem:w
scanf("%d%d%d",&n,&m,&w);
for(int i=1;i<=n;i++){
fa[i]=i;
}
for(int i=1;i<=n;i++){
int c,d;
scanf("%d%d",&c,&d);
sumU[i]=c;
sumV[i]=d;
}
while(m--){
int u,v;
scanf("%d%d",&u,&v);
Merge(u,v);
sumU[Get(v)]+=sumU[u];
sumV[Get(v)]+=sumV[u];
}
for(int i=1;i<=n;i++){
if(Get(i)==i){
for(int v=w;v>=sumU[i];v--){
if(f[v-sumU[i]]+sumV[i]>f[v]){
f[v]=f[v-sumU[i]]+sumV[i];
}
}
}
}
printf("%d",f[w]);
return 0;
}
0 comments
No comments so far...
Information
- ID
- 872
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 8
- Tags
- # Submissions
- 30
- Accepted
- 6
- Uploaded By