首页 > 其他分享 >无向图

无向图

时间:2023-02-18 11:58:27浏览次数:32  
标签:int 点权 删掉 样例 无向 mp

无向图
题目描述:
小W在研究图论!
现在,小W有一张n个点m条边的无向简单图。每个点都有点权,第i个点的权值为ai。小W现在需要删掉若干个点删掉某个点时,会将与这个点相连的边也全部删除。
现在,小W需要解决一个问题:如何选择性地删掉一部分点,使得在删掉的点的点权之和尽量小的情况下,剩下的边的数量为偶数?
输入格式:
输入的第一行为两个正整数n,m。接下来一行n个正整数a1,···,an,描述了每个点的权值。接下来m行,每行两个正整数u, v,描述了图中的一条边。
输出格式:
输出共一行,表示使剩下的边数量为偶数的所有删除点的方法中,删掉的点的点权之和的最小值。
样例:
样例输入
5 5
1 2 3 4 5
1 2
1 3
1 4
1 5
2 3
样例输出
3

如果边的条数是偶输出0

如果是奇的话有两种情况

1.删一条点权最小的入度为奇数的点

2.删两个被一条边相连的入度为偶数的店

取最小值输出即可,思路简单。

程序:

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,m,d[N],a[N]; 
vector<int > mp[N];
int main()
{
    ios::sync_with_stdio(false);
    cin>>n>>m;
    for(int i=1;i<=n;i++) cin>>a[i];
    memset(d,0,sizeof d); 
    for(int i=1;i<=m;i++)
    {
        int u,v;
        cin>>u>>v;
        mp[u].push_back(v);
        mp[v].push_back(u);
        d[u]++;
        d[v]++;
    }
    if(m%2==0)
    {
        cout<<"0";
        return 0;
    }
    int t1=0x3f3f3f3f;
    for(int i=1;i<=n;i++) if(d[i]%2==1) t1=min(t1,a[i]);
    int t2=0x3f3f3f3f;
    for(int i=1;i<=n;i++)
    {
        if(d[i]%2==1) continue;
        for(int j=0;j<mp[i].size();j++)
        {
            if(d[mp[i][j]]%2==0)
            {
                t2=min(t2,a[i]+a[mp[i][j]]);
            }
        }
    }
    cout<<min(t2,t1);
    return 0;
}

 

标签:int,点权,删掉,样例,无向,mp
From: https://www.cnblogs.com/wjk53233/p/17132253.html

相关文章

  • P1989 无向图三元环计数
    P1989无向图三元环计数-洛谷|计算机科学教育新生态(luogu.com.cn)属于是只有大文学家能写出来,我只能抄在积累本上的那种。考虑给每个点赋权\(a_u\),权值两两不同,然......
  • 桥与割点,无向图的双连通分量
    Tarjan算法与无向图连通性Tarjan算法求割点与割边定义与性质:定义给定无向连通图\(G=(V,E)\)割点:节点\(x\inV\),若将节点\(x\)及其所相连的所有边删去之后,图\(G\)分......
  • C++ 不知图系列之基于链接表的无向图最短路径搜索
    1.前言图的常用存储方式有2种:邻接炬阵。链接表。邻接炬阵的优点和缺点都很明显。优点是简单、易理解,但是对于大部分图结构而言,都是稀疏的,使用矩阵存储,空间浪费......
  • 无向图中 生成树,完全图,连通图 的区别
    图按照有无方向分为无向图和有向图。无向图由定点和边构成。有向图由定点和弧构成,弧有弧尾和弧头之分。 如果任意两个顶点之间都存在边叫做完全图。......
  • 无向图里找奇偶环 - OI回忆录
    title:无向图里找奇偶环-OI回忆录tag:DPdescription:https://codeforces.com/gym/103931/problem/J我退役后打ACM,当时队内每周vp训练,我寻思着调场水一点的就......
  • 无向图
    无向图目录无向图图模型术语表表示无向图的数据模型图处理算法设计模式图搜索算法单点路径图模型四种重要的图模型:无向图有向图加权图加权有向图无向图:边仅仅是......
  • 无向图三元环 查找/计数
    理解时间复杂度\(O(M\sqrt{M})\)作用求出无向图的所有三元环过程首先要对所有的无向边进行定向,对于任何一条边,从度数大的点连向度数小的点,如果度数相同,从编号小的点......
  • 给定一个无向图 求最少加多少条路径(任意两点可以两条路径走到) 可以变成双连通分量 (
    无向图缩点后变成一颗树叶子结点就是出度为0#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;constintN=5010,M=20010;int......
  • MFC绘制无向图
    MFC绘制无向图通过MFC界面实现简单的无向图功能:用鼠标左键点击,按顺序生成一幅无向图,无线图的节点用图标icon显示,节点之间用直线连接,点击到已有的点视为上一个点和已有的......