博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj1081
阅读量:6261 次
发布时间:2019-06-22

本文共 1346 字,大约阅读时间需要 4 分钟。

dfs

ContractedBlock.gif
ExpandedBlockStart.gif
View Code
#include 
#include
#include
#include
using namespace std; #define maxn 65 bool g[maxn][maxn]; int ans; int n; int c[maxn]; bool vis[maxn]; int lonely[maxn]; void check(int t) {
memset(vis, 0, sizeof(vis)); memset(lonely, 0, sizeof(lonely)); for (int i = 0; i < t; i++) vis[c[i]] = true; int temp = 0; for (int i = 1; i <= n - 1; i++) for (int j = i + 1; j <= n; j++) if (vis[i] == vis[j] && !g[i][j]) {
lonely[i]++; lonely[j]++; } for (int i = 0; i < n; i++) temp = max(temp, lonely[i]); ans = min(ans, temp); } void dfs(int now, int t) {
if (now > n) return; if (t >= n / 2) {
check(t); return; } c[t] = now; dfs(now + 1, t + 1); dfs(now + 1, t); } int main() {
//freopen("t.txt", "r", stdin); int a, b, maxa = 0; ans = 0x3f3f3f3f; while (scanf("%d", &a) != EOF) {
maxa = max(a, maxa); scanf("%d", &n); for (int i = 0; i < n; i++) {
scanf("%d", &b); g[a][b] = g[b][a] = true; } } n = maxa; dfs(1, 0); printf("%d\n", ans); return 0; }

转载于:https://www.cnblogs.com/rainydays/archive/2011/07/21/2112506.html

你可能感兴趣的文章
史上最难的一道Java面试题:分析篇
查看>>
HDFS常用命令(方便大家记忆版)
查看>>
kafka原理与实践(原创)
查看>>
如何在excel单元格中插入图片批注
查看>>
Android 基础动画之补间动画详解
查看>>
业界 | 全球最大生物识别数据库被判定合法
查看>>
Hanlp等七种优秀的开源中文分词库推荐
查看>>
常见移动设备的 CSS3 Media Query 整理(iPhone/iPad/Galaxy/HTC One etc.)
查看>>
redis第二步(事务和锁)
查看>>
rufus:一款制作linux U盘启动的神器
查看>>
[动态代理三部曲:中] - 从动态代理,看Class文件结构定义
查看>>
函数式编程与面向对象编程[5]:编程的本质
查看>>
[Spring实战系列](9)装配集合
查看>>
vue需注意的地方
查看>>
搞定计算机网络面试,看这篇就够了
查看>>
原生开发移动web单页面(step by step)6——history api应用
查看>>
【iOS 开发】Xcode9 自动签名更新设备列表
查看>>
[Elasticsearch]Elasticsearch+kibana+marvel安装
查看>>
《Kotlin 程序设计》第四章 Kotlin 语法基础
查看>>
开源堡垒机 Jumpserver v1.4.8 发布 , Bug 修复版本
查看>>