Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- */
- //#pragma comment(linker, "/STACK:16777216")
- #include <fstream>
- #include <iostream>
- #include <string>
- #include <complex>
- #include <math.h>
- #include <set>
- #include <vector>
- #include <map>
- #include <queue>
- #include <stdio.h>
- #include <stack>
- #include <algorithm>
- #include <list>
- #include <ctime>
- #include <memory.h>
- #include <ctime>
- #define y0 sdkfaslhagaklsldk
- #define y1 aasdfasdfasdf
- #define yn askfhwqriuperikldjk
- #define j1 assdgsdgasghsf
- #define tm sdfjahlfasfh
- #define lr asgasgash
- #define eps 1e-9
- #define M_PI 3.141592653589793
- #define bs 1000000007
- #define bsize 512
- #define MAG 1000
- using namespace std;
- int n;
- double p;
- double dp[1050][1<<12][12];
- double ans[1<<12];
- int main(){
- //freopen("beavers.in","r",stdin);
- //freopen("beavers.out","w",stdout);
- //freopen("F:/in.txt","r",stdin);
- //freopen("F:/output.txt","w",stdout);
- ios_base::sync_with_stdio(0);
- //cin.tie(0);
- cin>>n>>p;
- //p=1.0-p;
- dp[0][1][0]=1;
- for (int iter=1;iter<=1000;iter++)
- {
- if (iter==2)
- cout<<dp[iter-1][5][2]<<endl;
- for (int i=0;i<n;i++)
- ans[i]+=dp[iter-1][(1<<n)-1][i];
- for (int mask=0;mask<(1<<n)-1;mask++)
- for (int at=0;at<n;at++)
- if (dp[iter-1][mask][at])
- {
- double P1=dp[iter-1][mask][at]*p;
- double P2=dp[iter-1][mask][at]*(1.0-p);
- int ps1=(at+1)%n;
- int ps2=(at+n-1)%n;
- dp[iter][mask|(1<<ps1)][ps1]+=P1;
- dp[iter][mask|(1<<ps2)][ps2]+=P2;
- }
- }
- for (int i=0;i<n;i++)
- {
- cout<<ans[i]<<" ";
- }
- cout<<endl;
- for (int i=1;i<n;i++)
- {
- cout<<ans[i]/ans[i-1]<<endl;
- }
- //cin.get();cin.get();
- return 0;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement