zoukankan      html  css  js  c++  java
  • Codeforces 11D A Simple Task 统计简单无向图中环的个数(非原创)

    太难了,学不会。看了两天都会背了,但是感觉题目稍微变下就不会了。dp还是摸不到路子。

    附ac代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<vector>
     6 using namespace std;
     7 typedef long long ll;
     8 ll dp[1<<20][20],ans=0;
     9 vector<int>e[20];
    10 int lowbit(int x)
    11 {
    12     return x&(-x);
    13 }
    14 int main()
    15 {
    16     ios::sync_with_stdio(false);
    17     int n,m,f,t;
    18     cin>>n>>m;
    19     for(int i=0;i<m;++i)
    20     {
    21         cin>>f>>t;
    22         e[f-1].push_back(t-1);
    23         e[t-1].push_back(f-1);
    24     }
    25     for(int i=0;i<n;++i)
    26     dp[1<<i][i]=1;
    27     for(int sta=1;sta<(1<<n);sta++)
    28     {
    29         for(int i=0;i<n;++i)
    30         {
    31             if(dp[sta][i])
    32             {
    33                 for(int k=0;k<e[i].size();++k)
    34                 {
    35                     int j=e[i][k];
    36                     if(lowbit(sta)>(1<<j))  //如果该点比第一个点还要小,就跳过
    37                     continue;
    38                     if(sta&(1<<j))
    39                     {
    40                         if(lowbit(sta)==(1<<j))//如果i和该状态的起点(即最低位)联通,则记录
    41                         ans+=dp[sta][i];
    42                     }
    43                     else
    44                     {
    45                         dp[sta|(1<<j)][j]+=dp[sta][i];//否则转移状态
    46                     }
    47                 }
    48             }
    49         }
    50     }
    51     ans=(ans-m)/2;
    52     cout<<ans<<endl;
    53     return 0;
    54 }
    View Code

    附学习博客:http://blog.csdn.net/fangzhenpeng/article/details/49078233

  • 相关阅读:
    OpenMP并行程序设计
    Snmp在Windows下的实现WinSNMP编程原理
    利用C#开发基于snmpsharpnet基础的SNMP开发应用
    SNMP用VC实现的方法
    题目
    C# combox问题
    网络管理Snmp
    error BK1506
    响应activex事件
    使用C# 连接不同版本的Oracle.DataAccess
  • 原文地址:https://www.cnblogs.com/zmin/p/8409451.html
Copyright © 2011-2022 走看看