zoukankan      html  css  js  c++  java
  • POJ 2531 Network Saboteur 位运算子集枚举

    题目: http://poj.org/problem?id=2531

    这个题虽然是个最大割问题,但是分到dfs里了,因为节点数较少。。

    我试着位运算枚举了一下,开始超时了,剪了下枝,1079MS过了。。

    好在我的代码貌似是最短的,只有430B。。。

     1 #include <stdio.h>
     2 
     3 int main()
     4 {
     5     int n, map[20][20];
     6     scanf("%d", &n);
     7     for(int i = 0; i < n; i++)
     8         for(int j = 0; j < n; j++)
     9             scanf("%d", &map[i][j]);
    10     int ans = 0;
    11     
    12     //剪枝就是把i++改成了i+=2,让i总是奇数
    13     for(int i = 1; i < (1<<n); i += 2)
    14     {
    15         int sum = 0;
    16         for(int j = 0; j < n; j++)
    17         {
    18             if(i & (1<<j))
    19             {
    20                 for(int k = 0; k < n; k++)
    21                     if((~i) & (1<<k))
    22                         sum += map[j][k];
    23             }
    24         }
    25         if(sum> ans)ans = sum;
    26     }
    27     printf("%d
    ", ans);
    28     return 0;
    29 }
    View Code
  • 相关阅读:
    springMvc接口请求参数
    ThreadLocal 结构
    遇到的问题
    jsonview的安装
    Java
    学习资源
    Java
    Java
    Java
    Java
  • 原文地址:https://www.cnblogs.com/wolfred7464/p/3286545.html
Copyright © 2011-2022 走看看