Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2020
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.08 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. typedef long double ldouble;
  6.  
  7. ldouble dp[2][1000001];
  8.  
  9. int n_count = 2;
  10. bool parity = false;
  11.  
  12.  
  13. int main(){
  14.  
  15.     int tcase;
  16.     cin>>tcase;
  17.  
  18.     while(tcase--){
  19.         int n,k;
  20.         cin>>n>>k;
  21.         if(k<n || k>6*n){
  22.             printf("0\n");
  23.             continue;
  24.         }
  25.         parity = false;
  26.         for(int i =1;i<=6;i++){
  27.             dp[1][i] = (ldouble)1 / (ldouble)6;
  28.         }
  29.         for(n_count = 2; n_count<=n;n_count++){
  30.             int lower = n_count;
  31.             int upper = n_count * 6;
  32.             for(int i = lower; i<= upper; i++){
  33.                 for(int j = 1; j<=6 && i-j > 0; j++){
  34.                     if(j==1){
  35.                         dp[parity][i] = dp[!parity][i-j];
  36.                     }else{
  37.                         dp[parity][i] += dp[!parity][i-j];
  38.                     }
  39.                 }
  40.                 dp[parity][i] = dp[parity][i]/(ldouble)6;
  41.             }
  42.             parity = !parity;
  43.         }
  44.  
  45.         printf("%d\n",(int)(100*dp[n % 2][k]));
  46.     }
  47.  
  48.  
  49.     return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement