hdu1530 最大团简单题目
题意:
给你一个无向图,让你找到这个图里面的最大团是多少。
思路:
最大图案是NP问题,直接暴力搜索,如果当前的这个点可以加入当前最大团,那么就选择加入或者舍去,如果不能加入,直接舍去,还有一个剪枝就是当前的答案+后面剩余所有点 小于 当前的全局最大 的话直接return.
自己写的跑了 4000+
#include<stdio.h>#define N 60 int map[N][N] ,n; int now[N] ,Ans;bool ok(int sum ,int to) {for(int i = 1 ;i <= sum ;i ++)if(!map[now[i]][to]) return 0;return 1; }void DFS(int to ,int sum ,int node) {if(Ans < sum) Ans = sum;if(sum + n - node < Ans) return;for(int i = to + 1 ;i <= n ;i ++)if(ok(sum ,i)) {now[sum + 1] = i;DFS(i ,sum + 1 ,node + 1);} }int main () {int i ,j;while(~scanf("%d" ,&n) && n){for(i = 1 ;i <= n ;i ++)for(j = 1 ;j <= n ;j ++)scanf("%d" ,&map[i][j]);Ans = 0;for(i = 1 ;i <= n ;i ++){now[1] = i;DFS(i ,1 ,1);}printf("%d\n" ,Ans);}return 0; }
后来学了dp优化后的 900+
#include<stdio.h>#define N 60 int map[N][N]; int dp[N] ,now[N]; int n ,Ans;void DFS(int x ,int sum) {if(sum > Ans) Ans = sum;int able = 0;int tnow[N];for(int i = x + 1 ;i <= n ;i ++){tnow[i] = now[i];if(now[i]) able ++;}if(able + sum <= Ans) return;for(int i = x + 1 ;i <= n ;i ++){if(!tnow[i]) continue;if(dp[i] + sum <= Ans) continue;for(int j = x + 1 ;j <= n ;j ++)now[j] = tnow[j] & map[i][j];DFS(i ,sum + 1);} }int Max_Tuan() {Ans = dp[n] = 1;for(int i = n - 1 ;i >= 1 ;i --){for(int j = 1 ;j <= n ;j ++)now[j] = map[i][j];DFS(i ,1);dp[i] = Ans;}return Ans; }int main () {int i ,j;while(~scanf("%d" ,&n) && n){for(i = 1 ;i <= n ;i ++)for(j = 1 ;j <= n ;j ++)scanf("%d" ,&map[i][j]);printf("%d\n" ,Max_Tuan());}return 0; }
hdu1530 最大团简单题目相关推荐
- LeetCode简单题目(#263 #268 #278 #283 #290)-5道(数字、字符串)
leetcode题库中共有350道简单题目. 本文记录已解决的题目和代码. 本文中的序号是leetcode题目中的真实序号. 文章目录 263 丑数 描述 代码 大神代码 268 缺失数字 描述 代码 ...
- LeetCode简单题目(#235 #237 #242 #257 #258)-5道(树、数字、字符串)
leetcode题库中共有350道简单题目. 本文记录已解决的题目和代码. 本文中的序号是leetcode题目中的真实序号. 文章目录 235 二叉搜索树的最近公共祖先 描述 代码 237 删除链表中 ...
- LeetCode简单题目(#225 #226 #231 #232 #234)-5道(栈、队列、树、数字)
leetcode题库中共有350道简单题目. 本文记录已解决的题目和代码. 本文中的序号是leetcode题目中的真实序号. 文章目录 225 用队列实现栈 描述 代码 226 翻转二叉树 描述 代码 ...
- LeetCode简单题目(#203 #204 # #205 #206 #217 #219)-6道(序列、数字)
leetcode题库中共有350道简单题目. 本文记录已解决的题目和代码. 本文中的序号是leetcode题目中的真实序号. 文章目录 203 移除链表元素 描述 代码 大神代码-递归 204 计数质 ...
- LeetCode简单题目(#172 #189 #190 #191 #198 #202)-6道(序列、数字)
leetcode题库中共有350道简单题目. 本文记录已解决的题目和代码. 本文中的序号是leetcode题目中的真实序号. 文章目录 172 阶乘后的零 描述 代码 官方解答 189 旋转数组 描述 ...
- LeetCode简单题目(#160 #167 #168 #169 #171)-5道(序列、数字)
leetcode题库中共有350道简单题目. 本文记录已解决的题目和代码. 本文中的序号是leetcode题目中的真实序号. 文章目录 160 相交链表 描述 代码 大神代码-双指针法 大神代码-哈希 ...
- LeetCode简单题目(#118 #119 #121 #122 #125 #136 #141 #155)-8道
leetcode题库中共有350道简单题目. 本文记录已解决的题目和代码. 本文中的序号是leetcode题目中的真实序号. 文章目录 118 杨辉三角 描述 代码 官方解答 119 杨辉三角II 描 ...
- LeetCode简单题目(二叉树相关)(#100 #101 #104 #107 #108 #110 #111 #112)-8道
leetcode题库中共有350道简单题目. 本文记录已解决的题目和代码. 本文中的序号是leetcode题目中的真实序号. 文章目录 100 相同的树 描述 代码 更好的解法 101 对称二叉树 描 ...
- LeetCode简单题目(#53 #58 #66 #67 #69 #70 #83 #88)-8道
leetcode题库中共有350道简单题目. 本文记录已解决的题目和代码. 本文中的序号是leetcode题目中的真实序号. 文章目录 53 最大子序和 描述 代码 大佬代码 58 最后一个单词的长度 ...
最新文章
- The Minimum Cycle Mean in a Digraph 《有向图中的最小平均权值回路》 Karp
- eclipse中如何将java项目转为java Web项目
- 服务器保存所有用户的操作指令(history)
- Integer判断相等,到底该用==还是equals
- ORA-12519: TNS: 没有找到适用的服务处理
- Java程序编译和运行的过程
- pytorch教程龙曲良16-20
- 火热报名|5月15日线下沙龙上海站——“大促活动场景下的质量保障”主题
- 【linux】linux 安装 redis
- 渗透工具Sylas:数据库综合利用工具
- 大数据SQL如何实现笛卡尔积
- Linux虚拟机中安装vim(超详细)
- 解决eclipse桌面快捷方式打不开的问题
- 计算机自动开机什么愿意,电脑自动开关机是什么原因 怎么解决呢
- ipa包发布App Store
- 【SQL Server】数据库开发指南(二)MSSQL数据库开发对于库、表、数据类型、约束等相关操作
- HTML乘法器制作,一种单象限乘法器的制作方法
- Spring Cloud Gateway网关实战
- python藏头诗_Python简单实现表白藏头诗
- 盛大网络 陈天桥力挺360,腾讯再受打击
热门文章
- 《JavaScript DOM 编程艺术》 读书笔记
- 2017中国物联网年报:我国传感器竞争力与发达国家的差距
- 优秀好文收录(持续更新...)
- [LeetCode]题解(python):011-Container With Most Water
- 《Microsoft Sql server 2008 Internals》读书笔记--第八章The Query Optimizer(5)
- Javascript刷新全集
- 在RHEL-4下半小时搭建Sendmail邮件服务器(下)
- 如何让你的SQL运行得更快
- (转)C# Delegate.Invoke、Delegate.BeginInvoke
- Linux文件大小排序