๋ฌธ์
์ฝ๋
#include <iostream>
using namespace std;
int N,a,b,c,d;
int map[31][31];
int visited[31][31];
int dx[4]={1,-1,0,0};
int dy[4]={0,0,1,-1};
double percent[4],out=0.0;
void dfs(int depth, int x, int y,double ans){
visited[x][y]=1;
if(depth==N){
out += ans;
return;
}
for(int i=0; i<4; i++){
if(percent[i]==0) continue;
int nx = x+dx[i];
int ny = y+dy[i];
if(!visited[nx][ny]&&percent[i]!=0){
visited[nx][ny]=1;
dfs(depth+1,nx,ny,ans*percent[i]);
visited[nx][ny]=0;
}
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>N;
for(int i=0; i<4; i++){
double inp; cin>>inp;
percent[i] = inp/100.0;
}
dfs(0,14,14,1); // ์์์ ์ด 14,14 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
cout.precision(11);
cout << fixed<<out;
}
ํ์ด
์ฒ์ ๋ฌธ์ ๋ฅผ ์ดํดํ๋๋ฐ ์กฐ๊ธ ์๊ฐ์ด ๊ฑธ๋ ธ๋ค. ๋ฌธ์ ์์ ๋งํ๋ ์ด๋ ๊ฒฝ๋ก๊ฐ ๋จ์ ํ๋ค ๋ผ๋ ์กฐ๊ฑด์ ๋์ผํ ๊ณณ์ ๋ฐฉ๋ฌธํ์ง ์๋ ๊ฒฝ๋ก๋ฅผ ๋งํ๋ค. ์ฆ EE๋ ์ค๋ฅธ์ชฝ์ผ๋ก ๋๋ฒ๊ฐ์ ๊ฒน์น์ง ์๋ ๊ธธ์ด๋ผ ๋จ์ํ๊ณ , EW๋ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ๋ค๊ฐ ์ผ์ชฝ์ผ๋ก ์ค๋ฉด ํ๋ฒ ๋ฐฉ๋ฌธํ๋ ๊ณณ์ ๊ฒน์น๊ธฐ ๋๋ฌธ์ ๋จ์ํ์ง ์์ ๊ฒฝ๋ก๊ฐ ๋๋ค.
inp: 2 25 25 25 25
์์ ๊ฐ์ ์ ๋ ฅ์ด ๋ค์ด์ฌ๋ ๊ฐ ์ ์๋ ๊ฒฝ์ฐ์ ์๋
- EE: 0.25*0.25
- EW // ๋จ์ํ์ง ์์ ๊ฒฝ๋ก
- ES: 0.25*0.25 =0.0625
- EN: 0.25*0.25
- WW: 0.25*0.25
- WE // ๋จ์ํ์ง ์์ ๊ฒฝ๋ก
- WS: 0.25*0.25
- WN: 0.25*0.25
- SS: 0.25*0.25
- SE: 0.25*0.25
- SW: 0.25*0.25
- SN // ๋จ์ํ์ง ์์ ๊ฒฝ๋ก
- NN: 0.25*0.25
- NE: 0.25*0.25
- NW: 0.25*0.25
- NS // ๋จ์ํ์ง ์์ ๊ฒฝ๋ก
์์ ๊ฐ์๋ฐ, (0.25*0.25)*3*4=0.75๋ผ๋ output์ด ๋์จ๋ค.
์ฒ์์ ํ๋ฅ ์ธ๋ฐ 0.25+0.25 ๋ก ๋ํ๋ ๋ก์ง์ ์ง์ ํ๋ ธ๋ค;
์ถ๊ฐ๋ก ํ์์ ์์์ ์ ์ค์๊ฐ์ธ (14,14) ์ด๋ค.. (0,0)์ผ๋ก ์์ํด์ ๊ณ์ ํ๋ ธ์๋ค.. ๋ฌธ์ ๋ฅผ ์ ์ฝ์..
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 15654๋ฒ - N๊ณผ M (5) (0) | 2021.12.04 |
---|---|
[๋ฐฑ์ค,c++] 15652๋ฒ - N๊ณผ M (4) (0) | 2021.12.04 |
[๋ฐฑ์ค,c++] 15651๋ฒ - N๊ณผ M (3) (0) | 2021.12.04 |
[๋ฐฑ์ค,c++] 1188๋ฒ - ์์ ํ๋ก ๊ฐ (0) | 2021.11.22 |
[๋ฐฑ์ค,c++] 15650๋ฒ - N๊ณผ M (2) (0) | 2021.11.17 |
[๋ฐฑ์ค,c++] 15649๋ฒ - N๊ณผ M(1) (0) | 2021.11.17 |
๋๊ธ