Codeforces Beta Round #11 D. A Simple Task
来源:互联网 发布:克劳福德数据 编辑:程序博客网 时间:2024/05/14 19:23
typedef long long LL ;const int maxn = 20 ;int adj[maxn][maxn] ;LL dp[1<<maxn][maxn] ;int main(){ int n , m , i , u , v ; LL sum ; while(cin>>n>>m){ memset(adj , 0 , sizeof(adj)) ; for(i = 0 ; i < m ; i++){ scanf("%d%d" , &u , &v) ; u-- ; v-- ; adj[u][v] = adj[v][u] = 1 ; } memset(dp , 0 , sizeof(dp)) ; for(i = 0 ; i < n ; i++) dp[1<<i][i] = 1 ; sum = 0 ; for(i = 0 ; i < (1<<n) ; i++){ int st = n , cnt = 0 ; for(int j = 0 ; j < n ; j++){ if(i & (1<<j)){ st = min(st , j) ; cnt++ ; } } for(int j = 0 ; j < n ; j++){ if(dp[i][j] == 0) continue ; if(cnt >= 3 && adj[j][st]) sum += dp[i][j] ; for(int k = 0 ; k < n ; k++){ if(adj[j][k] && (k > st) && ( (i & (1<<k)) == 0) ) dp[i ^ (1<<k)][k] += dp[i][j] ; } } } cout<< sum / 2 << endl ; } return 0 ;}简单环,点数>=3
0 0
- Codeforces Beta Round #11 D. A Simple Task
- Codeforces Beta Round #11 D. A Simple Task
- Codeforces Beta Round #11 D. A Simple Task(状压DP)
- Codeforces Beta Round #11, problem: (D) A Simple Task 状态压缩DP+记忆化搜素DP
- [无向图简单环计数 状压DP] Codeforces 11D Beta Round #11 D. A Simple Task
- Codeforces 11D A Simple Task (状态压缩DP)
- CodeForces 11D - A Simple Task 状态压缩DP
- Codeforces 11D - A Simple Task (状压DP)
- Codeforces Round #312 (Div. 2)-A Simple Task
- CF 11D A Simple Task
- 状态DP求哈密顿回路个数 CodeForces 11D——A Simple Task
- CodeForces 11D A Simple Task (DP解哈密顿路径数目)
- Codeforces 11D A Simple Task 统计简单无向图中环的个数
- Codeforces Beta Round #52 (Div. 2) D - Changing a String
- Codeforces Beta Round #11 A. Increasing Sequence
- Codeforces Beta Round #51 D
- Codeforces Beta Round #11
- Codeforces Beta Round #89 (Div. 2) / 118A String Task(字符串操作)
- 华为 oj 公共子串计算
- 互联网协议入门(二)
- 代码是如何控制硬件的?
- 今天是入住CSDN的第一天,需要庆祝一下,祝CSDN永远辉煌!!!
- 复制SVN文件夹,去除版本信息(绿色小图标)的方法
- Codeforces Beta Round #11 D. A Simple Task
- 欢迎使用CSDN-markdown编辑器
- Mybatis+Mysql返回插入的主键ID
- Android之播放多媒体文件
- 圣杯布局
- android AsyncTask介绍
- 2Hibernate略知一二
- Android更新Ui进阶精解(一)
- Path Sum