hdu 3118 Arbiter

news/2024/7/7 22:15:37

http://acm.hdu.edu.cn/showproblem.php?pid=3118

 
题意:删除最少的边使图没有奇环
 
二分图的定义:如果顶点能分为两个互不相交的子集,则图为二分图
二分图的判定:如果二分图能黑白染色成功,则图为二分图
而黑白染色,其实就是判断环是奇环还是偶环
如果是奇环,一定会有黑黑或白白相撞
所以删除最小的边使图没有奇环,就是使图能够黑白染色
也就是删除最少的边,使图变成一个二分图
 
n只有15
完全可以枚举左边有哪些点,右边有哪些点
因为二分图的两个点集互不相交
所以两个点集内部的边数
就是使当前点的分布状态能形成二分图需要删去的边数
 
所有枚举的状态取最小
 
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int e[16][16];
int a[16],b[16];
int n;
int solve(int S)
{
    a[0]=b[0]=0;
    for(int i=0;i<n;i++)
        if(S&(1<<i)) a[++a[0]]=i+1;
        else b[++b[0]]=i+1;
    int r=0;
    for(int i=1;i<=a[0];i++)
        for(int j=i+1;j<=a[0];j++)
        {
            if(i==j) continue;
            r+=e[a[i]][a[j]];
        } 
    for(int i=1;i<=b[0];i++)
        for(int j=i+1;j<=b[0];j++)
        {
            if(i==j) continue;
            r+=e[b[i]][b[j]];
        }
    return r;
}
int main()
{
    int S,T,m,u,v,ans;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&n,&m);
        memset(e,false,sizeof(e));
        ans=m+1;
        while(m--)
        {
            scanf("%d%d",&u,&v);
            u++; v++;
            e[u][v]++; e[v][u]++;
        }
        S=1<<n;
        for(int i=0;i<S;i++)  ans=min(ans,solve(i));
        printf("%d\n",ans);
    }
}

 

 

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/7436395.html


http://www.niftyadmin.cn/n/4487343.html

相关文章

Python-- lxml用法

目录 lxml库&#xff08;lxml安装可查看上一篇文章&#xff09; Element类 1、节点操作 2、属性操作 3、文本操作 4、文件解析与输出 5、ElementPath 6、案例&#xff08;尤其最后的一篇代码&#xff09; lxml库&#xff08;lxml安装可查看上一篇文章&#xff09; py…

编写兼容android1.6的fragment

在通过声明方式在Android 3.0上使用Fragment中写的例子只能用在android3.0以上的版本。之前也测试过兼容1.6的方式&#xff0c;见编写最简单的Fragment。现在修改了android3.0的示例&#xff0c;可以兼容1.6版本了。 这是在nexus one 2.3.3下的截屏。项目本身使用的sdk是1.6。 …

Solr安装步骤

一、Solr概述 1、什么是Solr Solr 是Apache下的一个顶级开源项目&#xff0c;采用Java开发&#xff0c;它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言&#xff0c;同时实现了可配置、可扩展&#xff0c;并对索引、搜索性能进行了优化。 Solr可以独立运…

cowoa使用

1.下载cowoa最新版 下载地址&#xff1a;http://www.zen-cart.com/index.php?main_pageproduct_contrib_info&products_id1655 2.解压后&#xff0c;将admin、includes、optiondarrows拷贝到zencart的对应目录。注意Your-template改正为自己的模板名。 3、安装SQL脚本 cow…

Python-- CSS 选择器:BeautifulSoup4

目录 CSS 选择器&#xff1a;BeautifulSoup4 示例&#xff1a; 一、四大对象种类 1. Tag 2. NavigableString 3. BeautifulSoup 4. Comment 二、遍历文档树 1. 直接子节点 &#xff1a;.contents .children 属性 2. 所有子孙节点: .descendants 属性 3. 节点内容: …

C++之运算符重载(1)

在前一节中曾提到过&#xff0c;C中运行时的多态性主要是通过虚函数来实现的&#xff0c;而编译时的多态性是由函数重载和运算符重载来实现的。这一系列我将主要讲解C中有关运算符重载方面的内容。在每一个系列讲解之前&#xff0c;都会有它的一些基础知识需要我们去理解。而运…

精通黑客脚本 第二章笔记

2.1 Google Hack技术大演练 allintext:关键字&#xff0c;与intitle功能相同 intext:验证码 4800 cache:关键字 &#xff1a;搜索含有关键字内容cache。比如搜索北京大学网站服务器中缓存的内容&#xff0c;cache:pku.edu.cn define:关键字&#xff1a;搜索关键字的定义 filety…

Python-- Selenium用法

目录 基本框架 详细用法如下&#xff1a; 1&#xff1a;声明浏览器对象 2&#xff1a;访问页面 3&#xff1a;查找单个元素 4&#xff1a;查找多个元素 5&#xff1a;元素的交互操作 6&#xff1a;交互动作 7&#xff1a;执行javascript 8&#xff1a;获取元素信息 …