Description
给你一个n个点,m条边的无向图,每个点有一个非负的权值ci,现在你需要选择一些点,使得每一个点都满足:
如果这个点没有被选择,则与它有边相连的所有点都必须被选择。
问:满足上述条件的点集中,所有选择的点的权值和最小是多少?
QYQ很快就解决了这个问题,但是他已经回到了左下角……没有留下答案,现在只好请你来解决这个问题啦!

Input
从文件graph.in中输入数据。
输入的第一行包含两个整数n,m
输入的第二行包含n个整数,其中第i个整数代表ci
输入的第三行到第m+2行,每行包含两个整数u,v,代表点u和点v之间有一条边

Output
输出到文件graph.out中。
输出的第一行包含一个整数,代表最小的权值和

Sample Input
3 1
1 2 3
3 1

Sample Output
1
样例说明:
只选择1号点,满足题意

Data Constraint
对于20% 的数据:n<=10
对于40%的数据:n<=20
对于100%的数据:1<=n<=50, 1<=m<=500, 0<=c<=1000
图中可能会有重边,自环。
点的编号为1—n。

.
.
.
.
.
分许
直接搜索就好了,当然不要 O(2^n)那种,每次搜索的时候如果这
个点不选,就直接把与它相连的所有点选上,搜索的时候加入一些剪
枝,比如如果现在的结果已经比现在的最佳答案大了就直接不搜了。

.
.
.
.
.
.
程序:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;int n,m,c[51],cnt=1,head[51],ans=2147483647,f[51];struct edge
{int next,to;
} a[1010];inline int read()
{int d=0;char ch=getchar();while (ch<'0'||ch>'9') ch=getchar();while (ch>='0'&&ch<='9')d=(d<<3)+(d<<1)+ch-48,ch=getchar();return d;
}void add(int x,int y)
{a[cnt].next=head[x];a[cnt].to=y;head[x]=cnt++;
}void dfs(int x,int sum)
{if (sum>=ans) return;if (x>n){ans=min(ans,sum);return;}f[x]++;dfs(x+1,sum+c[x]);f[x]--;if (!f[x]){for (register int i=head[x];i;i=a[i].next)f[a[i].to]++;dfs(x+1,sum);for (register int i=head[x];i;i=a[i].next)f[a[i].to]--;}
}int main()
{freopen("graph.in","r",stdin);freopen("graph.out","w",stdout);n=read();m=read();for (register int i=1;i<=n;i++)c[i]=read();for (register int i=1;i<=m;i++){int x,y;x=read();y=read();if (x==y) f[x]++; else{add(x,y);add(y,x);}}dfs(1,0);printf("%d",ans);fclose(stdin);fclose(stdout);return 0;
}

转载于:https://www.cnblogs.com/YYC-0304/p/10458929.html

【五校联考7day2】QYQ的图相关推荐

  1. 4246. 【五校联考6day2】san (Standard IO)

    4246. [五校联考6day2]san (Standard IO) Time Limits: 1000 ms  Memory Limits: 262144 KB  Detailed Limits D ...

  2. 湖南长郡2021高考成绩查询时间,2021年湖南新高考六校、长郡十五校联考时间公布...

    2021年湖南新高考六校.长郡十五校联考时间公布 导读:距离2021年高考时间仅剩不到一百天,各个省份都的高三学子都进入紧张阶段.开始了各种模拟考试.2021届湖南省炎德英才大联考的考试时间也已经公布 ...

  3. jzoj4230. 【五校联考4day1】淬炼神体(B组——Day3)

    jzoj4230. [五校联考4day1]淬炼神体 题目 Description 王仙女将你提供的答案填在<葵花宝典>上,突然,宝典发出耀眼的白光,一股强大的吸力瞬间将仙女吸入宝典中. 一 ...

  4. jzoj4240 [五校联考5day2]游行 拓扑排序+倍增lca+线段树优化建图

    Description 恶梦是学校里面的学生会主席.他今天非常的兴奋,因为学校一年一度的学生节开始啦!! 在这次节日上总共有N个节目,并且总共也有N个舞台供大家表演.其中第i个节目的表演时间为第i个单 ...

  5. 【五校联考6day2】san

    Description 小明经常去N 个地点,其中有些地点之间有直接的无向道路(共M 条这样的道路),可以直接互相到达,这些道路的长短不一.由于小明对这些道路都很熟悉,无论起点和终点在哪里,总能走最短 ...

  6. 【五校联考3day2】A

    Description 帝国时代3是一款十分刺激的RTS游戏.你需要控制自己的一块殖民地,发展殖民地的经济和军事,最终打败其他殖民地.小L是这个游戏的狂热爱好者.一次小L打算打AI试试身手. 小L发展 ...

  7. [jzoj 4246] 【五校联考6day2】san {spfa+dfs/spfa+拓扑排序+dp}

    题目 Description 小明经常去N 个地点,其中有些地点之间有直接的无向道路(共M 条这样的道路),可以直接互相到达,这些道路的长短不一.由于小明对这些道路都很熟悉,无论起点和终点在哪里,总能 ...

  8. 4246. 【五校联考6day2】san

    Description 小明经常去N 个地点,其中有些地点之间有直接的无向道路(共M 条这样的道路),可以直接互相到达,这些道路的长短不一.由于小明对这些道路都很熟悉,无论起点和终点在哪里,总能走最短 ...

  9. jzoj 4246【五校联考6day2】san

    Description 小明经常去N 个地点,其中有些地点之间有直接的无向道路(共M 条这样的道路),可以直接互相到达,这些道路的长短不一.由于小明对这些道路都很熟悉,无论起点和终点在哪里,总能走最短 ...

最新文章

  1. 16张思维导图+学习路线图,囊括所有Python基础,可打印
  2. 树莓派学习——音频视频播放
  3. 联想计算机BIOS启动顺序boot,如何进入BIOS并更改启动顺序?
  4. php mysql 验证码代码_PHP_PHP 验证码的实现代码,checkcode.php 生成验证码图片, - phpStudy...
  5. VS2010中编写x64汇编的具体方法
  6. Nginx重写规则指南
  7. php -- 取日期
  8. HTML5 — 知识总结篇《VIII》【媒体元素】
  9. C#检测ocx控件是否注册
  10. w10 计算机配置管理模板,win10老是配置更新,设置这个,让你无处可更...
  11. java 保留原始顺序的有序map的新思路:List<Map.Entry<?,?>>
  12. 2022年山东省熔化焊接与热切割作业(特种上岗操作证)模拟试题及答案
  13. 雷达波形样式_系统工程与电子技术专栏征稿丨雷达抗干扰技术
  14. Q4财报发布,腾讯音乐高质量增长背后的创新进化论
  15. ubuntu中使用宋体和雅黑字体
  16. 计算机软件数据处理,[计算机软件及应用]总帐数据处理.ppt
  17. JAVA梅森旋转随机算法_伪随机数生成算法-梅森旋转(Mersenne Twister/MT)
  18. 软考高级,考网规还是考项管?
  19. HTTP响应码大全详解
  20. 2012年7月8日13:08:08

热门文章

  1. 那年的12月,那些悟与思2018-12-23
  2. 从零开始带你一步一步使用YOLOv3训练自己的数据
  3. Python pickle模块和joblib模块浅析
  4. Matconvnet安装:win7+VS2015(pro)+Matlab 2017a+cuda8.0+cudnn 5.1
  5. [Medical Image Process] 3.4 Morphology Application—Watershed Algorithm 分水岭算法
  6. 有关软件开发中的一些想法
  7. C#计算两点间的距离
  8. BugkuCTF-Misc:这是一张单纯的图片
  9. STM32开发 -- 信号强度CSQ
  10. Xposed简介以及小米去桌面广告的简单实现