hdu 4352 XHXJ's LIS --- 数位dp 状态压缩

2014-11-24 08:48:34 · 作者: · 浏览: 0

dp[i][j][k]表示当前位是第i位 选取状态为j 要求长度为k 的个数


#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         #include 
        
          #include 
         
           #include 
           #define inf 0x3f3f3f3f #define ll __int64 using namespace std; ll l,r,k,dp[21][1<<10][11]; int num[21]; ll dfs(ll n,ll pos,ll len,bool flag) { if(pos==-1) return len==k; if(!flag&&dp[pos][n][k]!=-1) return dp[pos][n][k]; int p=flag num[pos]:9; ll ans=0; int i,j; for(i=0;i<=p;i++) { if(n||i) { if((1<
           
            n) ans+=dfs(n|(1<