社区讨论
100分WA求调,玄关
P8817[CSP-S 2022] 假期计划参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @m2e1fcqr
- 此快照首次捕获于
- 2024/10/18 09:14 去年
- 此快照最后确认于
- 2025/11/04 16:57 4 个月前
CPP
#include<bits/stdc++.h>
#define ll long long
using namespace std;
template<typename T>
inline void read(T &x){
x=0;bool f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=!f;ch=getchar();}
while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+(ch-48);ch=getchar();}
x=(f?x:-x);return;
}
template<typename T>
inline void write(T x){
if(x<0){putchar('-');x*=-1;}
if(x>9)write(x/10);
putchar(x%10+'0');return;
}
ll n,m,k,a,b,c,head[2505],cnt,fs[2505],vis[2505][2505];
ll flo[2505],dp[2505][5],ans,num[2505][5][5],der[2505][5],kl;
struct node{
ll to,nxt;
}edge[7000005];
void add(int u,int v)
{
edge[++cnt].to=v;
edge[cnt].nxt=head[u];
head[u]=cnt;
}
void dfs(int id,int sd)
{
flo[id]=1;
for(int i=head[id];i;i=edge[i].nxt)
{
int v=edge[i].to;
//cout<<v<<" "<<sd<<endl;
if(flo[v])continue;
flo[v]=1;
if(sd!=k)dfs(v,sd+1);
}
}
int main()
{
read(n);read(m);read(k);
for(int i=2;i<=n;i++)read(fs[i]);
for(int i=1;i<=m;i++)
{
read(a);read(b);
add(a,b);
add(b,a);
vis[a][b]=1;
vis[b][a]=1;
}
for(int i=1;i<=n;i++)
{
memset(flo,0,sizeof(flo));
dfs(i,0);
for(int j=1;j<=n;j++)
{
if(vis[i][j]==1||i==j)continue;
if(flo[j]==1)
{
vis[i][j]=1;
vis[j][i]=1;
//cout<<i<<" "<<j<<" "<<k<<endl;
}
}
}
for(int i=1;i<=n;i++)
{
if(vis[1][i]==1)
{
dp[i][1]=fs[i];
num[i][1][++der[i][1]]=i;
}
}
for(int f=2;f<=4;f++)
{
for(int i=1;i<=n;i++)
{
for(int j=2;j<=n;j++)
{
kl=0;
for(int t=1;t<=der[j][f-1];t++)
if(num[j][f-1][t]==i){kl=1;break;}
if(kl)continue;
if(vis[i][j]&&dp[j][f-1]&&dp[j][f-1]+fs[i]>dp[i][f])
{
for(int t=1;t<=der[j][f-1];t++)
num[i][f][t]=num[j][f-1][t];
der[i][f]=der[j][f-1];
num[i][f][++der[i][f]]=i;
dp[i][f]=dp[j][f-1]+fs[i];
}
}
//cout<<dp[i][f]<<" ";
}
//cout<<endl;
}
//cout<<num[2][4][1]<<" "<<num[2][4][2]<<" "<<num[2][4][3]<<" "<<num[2][4][4];
for(int i=1;i<=n;i++)
if(vis[1][i])ans=max(dp[i][4],ans);
write(ans);
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...