比赛 |
NOIP2023模拟赛3 |
评测结果 |
WWWWWWWETT |
题目名称 |
旅游网络 |
最终得分 |
0 |
用户昵称 |
黄天乐 |
运行时间 |
16.858 s |
代码语言 |
C++ |
内存使用 |
3.16 MiB |
提交时间 |
2023-11-15 10:25:45 |
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
using namespace std;
int n,m;
int sum,ans=1e9;
const int MAXN=25005;
int v[MAXN],vk[MAXN];
bool vis[MAXN];
int k[MAXN];
int head[MAXN];
int num;
struct lst{
int next;
int to;
}e[MAXN];
void add(int from,int to){
num++;
e[num].next=head[from];
e[num].to=to;
head[from]=num;
}
queue<int>que;
void d(int s){
memset(vis,0,sizeof(vis));
k[s]=1;
que.push(s);
while(!que.empty()){
int x=que.front();
que.pop();
if(!vis[x]){
vis[x]=true;
for(int i=head[x];i!=0;i=e[i].next){
int y=e[i].to;
que.push(y);
if(k[y])continue;
if(k[x]==1){
k[y]=2;
}else k[y]=1;
}
}
}
}
int main(){
freopen("cogito.in","r",stdin);
freopen("cogito.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>v[i];
for(int i=1;i<=m;i++){
int u,v;
cin>>u>>v;
add(u,v);
add(v,u);
}
for(int i=1;i<=n;i++){
int sum=0;
memset(k,0,sizeof(k));
k[i]=1;
d(i);
for(int i=1;i<=n;i++){
if(!vis[i]||k[i]==2){
sum+=v[i];
}
}
ans=min(ans,sum);
}
cout<<ans<<endl;
return 0;
}