Advertisement
Guest User

Untitled

a guest
Sep 11th, 2015
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. /*
  2. */
  3.  
  4. //#pragma comment(linker, "/STACK:16777216")
  5. #include <fstream>
  6. #include <iostream>
  7. #include <string>
  8. #include <complex>
  9. #include <math.h>
  10. #include <set>
  11. #include <vector>
  12. #include <map>
  13. #include <queue>
  14. #include <stdio.h>
  15. #include <stack>
  16. #include <algorithm>
  17. #include <list>
  18. #include <ctime>
  19. #include <memory.h>
  20. #include <ctime>
  21.  
  22. #define y0 sdkfaslhagaklsldk
  23. #define y1 aasdfasdfasdf
  24. #define yn askfhwqriuperikldjk
  25. #define j1 assdgsdgasghsf
  26. #define tm sdfjahlfasfh
  27. #define lr asgasgash
  28.  
  29. #define eps 1e-9
  30. #define M_PI 3.141592653589793
  31. #define bs 1000000007
  32. #define bsize 512
  33. #define MAG 1000
  34.  
  35. using namespace std;
  36.  
  37. int n;
  38. double p;
  39. double dp[1050][1<<12][12];
  40. double ans[1<<12];
  41.  
  42. int main(){
  43. //freopen("beavers.in","r",stdin);
  44. //freopen("beavers.out","w",stdout);
  45. //freopen("F:/in.txt","r",stdin);
  46. //freopen("F:/output.txt","w",stdout);
  47. ios_base::sync_with_stdio(0);
  48. //cin.tie(0);
  49.  
  50. cin>>n>>p;
  51.  
  52. //p=1.0-p;
  53.  
  54. dp[0][1][0]=1;
  55. for (int iter=1;iter<=1000;iter++)
  56. {
  57. if (iter==2)
  58. cout<<dp[iter-1][5][2]<<endl;
  59.  
  60. for (int i=0;i<n;i++)
  61. ans[i]+=dp[iter-1][(1<<n)-1][i];
  62. for (int mask=0;mask<(1<<n)-1;mask++)
  63. for (int at=0;at<n;at++)
  64. if (dp[iter-1][mask][at])
  65. {
  66. double P1=dp[iter-1][mask][at]*p;
  67. double P2=dp[iter-1][mask][at]*(1.0-p);
  68. int ps1=(at+1)%n;
  69. int ps2=(at+n-1)%n;
  70. dp[iter][mask|(1<<ps1)][ps1]+=P1;
  71. dp[iter][mask|(1<<ps2)][ps2]+=P2;
  72. }
  73. }
  74.  
  75. for (int i=0;i<n;i++)
  76. {
  77. cout<<ans[i]<<" ";
  78. }
  79. cout<<endl;
  80.  
  81. for (int i=1;i<n;i++)
  82. {
  83. cout<<ans[i]/ans[i-1]<<endl;
  84. }
  85. //cin.get();cin.get();
  86. return 0;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement