HDU5823 : color II】的更多相关文章

每种颜色的点集肯定是独立集,因此可以通过$O(2^n)$枚举每个集合判断出每个集合是否只需要一种颜色即可染色. 设$f[i][S]$表示$i$种颜色覆盖$S$这个集合的方案数,假定两个集合可以相交,那么最优解一定不相交,所以有$f[i][S]=\sum_{u\ or\ v=S}f[1][u]\times f[i-1][v]$,做$n$次FWT即可. 时间复杂度$O(2^nn^2)$. #include<cstdio> const int N=18,M=1<<N; int T,n,i…
题目链接 给n个点 n<=18. 然后给出它们两两之间是否有边相连. 问你这个图的所有子集,最少要用多少种颜色来染色, 如果两个点相连, 那么这两个点不能染同样的颜色. 先预处理出所有的点独立集, 然后直接状压枚举所有的状态. 对每种状态枚举这个状态的所有子状态进行转移即可. #include <bits/stdc++.h> using namespace std; #define ll long long #define mem(a) memset(a, 0, sizeof(a)) )…
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5823 [题目大意] 定义一张无向图的价值:给每个节点染色使得每条边连接的两个节点颜色不相同的最少颜色数. 对于给定的一张由n个点组成的无向图,求该图的2^n-1张非空子图的价值. [题解] 设f[i][S]表示i种颜色覆盖S这个集合的方案数,我们只要得到最小的i,f[i][S]大于0,那么i就是S集合的答案.显然有f[i][S]=∑f[1][u]×f[i−1][v](u|v==S),这个怎么求呢…
dp[i]表示i子图的最小染色数目. dp[i]=min( dp[i], dp[j]+1 ), j是i的子集,并且j图内的点没有边相连. 高效率枚举i子集的方法:for(int j=i;j;j=(j-1)&i)   每一个j都是i的子集. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstring> #include<cmath&…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5823 看博客:http://www.cnblogs.com/SilverNebula/p/5929550.html 学到了求子集中独立集的姿势~ 还有那个子集DP真是太妙了! 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace…
题意:给定连通图,求出连通图的所有子图的颜色数. 一个图的颜色数,指最少的颜色数,给图染色,使得有边相邻的点之间颜色不同. 思路:首先想法是DFS枚举,然后计算颜色,发现对于给定图,求颜色不会求? 毕竟是很乱的无向图. 那么考虑DP:dp[s]=min(dp[s0]+1),s0是s的子集,且满足s^s0是独立集. 那么复杂度是O(3^N): 因为有补集,还可以用反演DP???我第一次遇到.好菜啊,有机会补一下. #include<bits/stdc++.h> #define uint unsi…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5823 独立集染一种颜色.在这个基础上枚举子集来dp. 状压一样地存边真是美妙. 2^32是1ll<<32,不是1<<31. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define ll long long using namespace…
Problem color II 题目大意 定义一个无向图的价值为给每个节点染色使得每条边连接的两个节点颜色不同的最少颜色数. 对于给定的一张由n个点组成的无向图,求该图的2^n-1张非空子图的价值. n <= 18 解题分析 官方题解: 直接状压dp就行了,f[S]表示点集S的色数,枚举子集转移(子集是独立集).这样是3^n的. 一个复杂度更优的做法是把所有独立集都预处理出来,然后作n次or卷积.这样是n^2*2^n的. 枚举子集的子集的时间复杂度是3^n 啊 . 即 sigma( C(n,k…
1.项目代码: @interface NextViewController () { int r ;//色块层数的全局变量 int m;//后面用于tag值的变化 UIView *view;//色块 NSArray *color;//颜色库 UIImageView *baview;//作为色块的地图,也可以用UIView UILabel *label; } @end @implementation NextViewController - (void)viewDidLoad { //    赋初…
/*** 基本图片处理,用于完成图片缩入,水印添加* 当水印图超过目标图片尺寸时,水印图能自动适应目标图片而缩小* 水印图可以设置跟背景的合并度** Copyright(c) 2005 by ustb99. All rights reserved** To contact the author write to {@link mailto:ustb80@163.com}** @author 偶然* @version $Id: thumb.class.php,v 1.9 2006/09/30 09…