Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.76 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define D(x) cout<<#x<<" = "<<x<<endl
  4.  
  5. string s;
  6. int n, k;
  7. int ck[20];
  8.  
  9. int dp[11][11];
  10.  
  11. int solve(int pos, int last)
  12. {
  13.     if(pos == k) return 1;
  14.     if(dp[pos][last]) return dp[pos][last];
  15.     int ret = 0;
  16.     for(int i = 0; i<n; i++)
  17.     {
  18.         if(pos == 0 && s[i] == '0') continue;
  19.         if(ck[i]) continue;
  20.         ck[i] = 1;
  21.         ret += solve(pos+1, i);
  22.         ck[i] = 0;
  23.     }
  24.     return dp[pos][last] = ret;
  25. }
  26.  
  27.  
  28. int main()
  29. {
  30.     int t;
  31.     cin>>t;
  32.     while(t--)
  33.     {
  34.         memset(ck, 0, sizeof ck);
  35.         memset(dp, 0, sizeof dp);
  36.         cin>>s;
  37.         n = s.length();
  38.         cin>>k;
  39.         int ans = solve(0, 0);
  40.         cout<<ans<<endl;
  41.     }
  42.  
  43.  
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement