hdu 1565 方格取数(1)

2014-11-24 08:16:05 · 作者: · 浏览: 0

我用状态压缩做的。

一个有少于18000的合格状态,再DP 就好。

#include
  
   
#include
   
     #include
    
      #include
     
       #include
      
        using namespace std; #define max(a,b) a>b a:b; int value[23][23]; int status[18000]; int dp[22][18000]; int n,top; int sum(int c,int sts) { int val=0; int i=0; while(sts){ if(sts&1) val+=value[c][n-1-i]; sts=sts>>1; i++; } return val; } void Init() { int i; top=0; int total=1<