【HDU】2089 不要62 数位DP
2014-10-31 10:46
453 查看
传送门:【HDU】2089 不要62
题目分析:数位DP水题,YY就行了。
代码如下:
题目分析:数位DP水题,YY就行了。
代码如下:
#include <cstdio> #include <cstring> #include <algorithm> //#include <cmath> #include <queue> using namespace std ; typedef long long LL ; #define rep( i , a , b ) for ( int i = a ; i < b ; ++ i ) #define For( i , a , b ) for ( int i = a ; i <= b ; ++ i ) #define rev( i , a , b ) for ( int i = a ; i >= b ; -- i ) #define travel( e , H , u ) for ( Edge* e = H[u] ; e ; e = e -> next ) #define clr( a , x ) memset ( a , x , sizeof a ) #define cpy( a , x ) memcpy ( a , x , sizeof a ) const int MAXN = 15 ; int dp[MAXN][MAXN][2] ; int vis[MAXN][MAXN][2] ; int num1[MAXN] ; int num2[MAXN] ; int n , m ; int dfs ( int cur , int pre_num , int flag , int num [] ) { if ( cur == 0 ) return 1 ; if ( vis[cur][pre_num][flag] ) return dp[cur][pre_num][flag] ; vis[cur][pre_num][flag] = 1 ; if ( flag == 0 ) { rep ( i , 0 , num[cur - 1] ) { if ( pre_num != 6 || i != 2 ) if ( i != 4 ) { dp[cur][pre_num][flag] += dfs ( cur - 1 , i , 1 , num ) ; } } if ( pre_num != 6 || num[cur - 1] != 2 ) if ( num[cur - 1] != 4 ) { dp[cur][pre_num][flag] += dfs ( cur - 1 , num[cur - 1] , 0 , num ) ; } } else { rep ( i , 0 , 10 ) { if ( pre_num != 6 || i != 2 ) if ( i != 4 ) { dp[cur][pre_num][flag] += dfs ( cur - 1 , i , 1 , num ) ; } } } return dp[cur][pre_num][flag] ; } void solve () { n -- ; int n1 = 0 , n2 = 0 ; while ( n ) { num1[n1 ++] = n % 10 ; n /= 10 ; } while ( m ) { num2[n2 ++] = m % 10 ; m /= 10 ; } clr ( dp , 0 ) ; clr ( vis , 0 ) ; int count1 = dfs ( n1 , 0 , 0 , num1 ) ; clr ( dp , 0 ) ; clr ( vis , 0 ) ; int count2 = dfs ( n2 , 0 , 0 , num2 ) ; //printf ( "%d %d\n" , count1 , count2 ) ; printf ( "%d\n" , count2 - count1 ) ; } int main () { //freopen ( "in.txt" , "r" , stdin ) ; //freopen ( "out.txt" , "w" , stdout ) ; while ( ~scanf ( "%d%d" , &n , &m ) && ( n || m ) ) solve () ; return 0 ; }
相关文章推荐
- HDU 2089 不要62 还是基础数位dp
- hdu 2089(不要62)数位DP
- HDU-2089 不要62 数位DP 模板题
- HDU - 2089 不要62 (暴力或数位DP)
- hdu 2089 不要62--数位dp入门
- hdu 2089 不要62 数位DP
- HDU 2089:不要62(数位DP)
- HDU 2089 不要62(数位dp)
- HDU 2089 不要62(数位DP)
- [HDU 2089]不要62[数位DP]
- hdu 2089 不要62(数位dp)
- hdu 2089 不要62 hdu 3555 Bomb (数位DP)
- HDU 2089 不要62 数位dp入门
- hdu 2089 不要62--数位dp入门
- HDU 2089 不要62(数位DP)
- hdu 2089 不要62(数位DP)
- hdu 2089 不要62 --- 数位dp
- HDU 2089——不要62(数位DP)
- hdu 2089 不要62 数位dp
- HDU 2089 不要62(数位DP入门)