Skip to content

Commit dad33d9

Browse files
authored
Added Bangla Tutorial for LOJ-1012 Guilty Prince (#415)
* Added Tutorial for dimik-even-odd-1 * Added tutorial for dimik-even-odd-2 * Delete Even Odd 2 * Added tutorial for dimik-even-odd-2 * Delete Dimik/Even Odd 2 directory * Added tutorial for dimik-even-odd-2 * Update en.md * Added tutorial for dimik-descending-number * Added Bangla Tutorial for guilty-prince * Update en.md * Added Bangla Tutorial for LightOJ-1022 Circle in Square * Delete bn.md * Delete Dimik/even-odd-2 directory * Delete Dimik/descending-number directory * Added Tutorial for Dimik Even Odd 1 ( [LOJ D1]](https://lightoj.com/problem/dimik-even-odd-1) ) * Added Tutorial for DIMIK Even Odd 1 https://lightoj.com/problem/dimik-even-odd-1 * Delete en.md * Update bn.md
1 parent ceb41d5 commit dad33d9

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed

1012/bn.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# ক্যাটাগরি : ডি এফ এস
2+
3+
### প্রশ্নে কি জিজ্ঞেস করেছে ?
4+
5+
কাহিনীর অর্থে : একজন রাজা তার ছেলেকে রাজ্য ছাড়তে বলেন । পুত্র উনার কথা মান্য করে রাজ্য ছাড়ে । পরবর্তীতে রাজকুমার এমন একটি জায়গায় যান যেখানে প্রতিটি অঞ্চল হয় পানিতে পূর্ণ
6+
অথবা জমিন । রাজকুমার জানতে চান উনার জায়গা হতে কতগুলা জমিন এ উনি যেতে পারবেন
7+
8+
গাণিতিক অর্থে : একটি nxm গ্রিড দেয়া থাকবে । একটি পজিশন '@' দেয়া থাকবে যে জায়গা থেকে শুরু করে কয়টি সেল এ যেতে পারবো ? একটা সেল থেকে অন্য সেল এ যাওয়া যাবে যদি সেল টি তে '.' থাকে | আমরা কোন সেল এ '#' থাকলে যেতে পারবো না
9+
10+
### যা যা শিখা উচিত এইটা করার আগে :
11+
[ডি এফ এস ](http://www.shafaetsplanet.com/?p=973 ) (এটি বি এফ এস দিয়ে ও করা যাবে )
12+
13+
## সমাধান
14+
15+
আমরা প্রথমে একটি nxm ক্যারেক্টার অ্যারে তে আমাদের পুরো গ্রিড স্টোর করবো
16+
নিচের উদাহরণ এর মত একটি 2D অ্যারে তে আমরা ক্যারেক্টার গুলা নিব
17+
18+
![alt text](https://user-images.githubusercontent.com/72943111/202870913-02f03555-4222-4eed-a889-b6aee8117c38.png)
19+
20+
21+
প্রতিটি সেল সারি x এবং কলাম y নির্দেশ করে । সমস্যাটি হিসাবে একটি ঘর থেকে তার সংলগ্ন বাম, ডান, উপরে এবং নীচের ঘরে যেতে পারি। তাই একটি ঘর থেকে তার সংলগ্ন ঘরে যেতে আমাদের নিম্ন বর্ণিত কাজ করতে হবে:
22+
23+
```
24+
Left - (x-1,y)
25+
Right - (x+1,y)
26+
Up - (x,y-1)
27+
Down - (x,y+1)
28+
```
29+
30+
প্রতিবার ম্যানুয়ালি এটি করার পরিবর্তে আমরা ডিরেকশনাল অ্যারে ব্যবহার করতে পারি এবং লুপ এর সাহায্যে তা ট্রাভেরস করতে পারি
31+
32+
```
33+
int dx[]={+1,-1,+0,-0}
34+
int dy[]={+0,-0,+1,-1}
35+
```
36+
37+
এখন প্রারম্ভিক বিন্দু @ থেকে, আমরা প্রতিটি সংলগ্ন কোষে যাই এবং এটি একটি বৈধ সেল কিনা তা পরীক্ষা করি। আমাদের মনে রাখতে হবে যে আমরা গ্রিড এর বাইরে , ওয়াটার সেল # এবং যে কোষগুলি আগে পরিদর্শন করেছি ঐগুলা তে যেতে পারবো না । এটি আমরা চেক করার জন্য একটি ফাংশন লিখতে পারি।
38+
```
39+
bool valid(int x,int y)
40+
{
41+
if(x>=0 && x<h && y>=0 && y<w && str[x][y]!='#' && !vis[x][y]) return true;
42+
return false;
43+
}
44+
```
45+
46+
আমরা কতগুলি কোষ পরিদর্শন করতে পারি তা ট্র্যাক করার জন্য আমরা একটি কাউন্টার রাখতে হবে
47+
48+
### কিছু সতর্কতা
49+
প্রতি কেস এর পর vis এবং cnt ক্লিয়ার করতে হবে
50+
51+
## সম্পূর্ণ কোড
52+
```
53+
#include<bits/stdc++.h>
54+
using namespace std;
55+
char A[21][21];
56+
int cnt=0,vis[21][21],n,m;
57+
void dfs(int x,int y)
58+
{
59+
if(x==n || y==m ||x==-1 || y==-1)
60+
return;
61+
if(vis[x][y]==1)
62+
return ;
63+
if(A[x][y]=='#')
64+
return ;
65+
cnt++;
66+
vis[x][y]=1;
67+
dfs(x+1,y);
68+
dfs(x,y+1);
69+
dfs(x-1,y);
70+
dfs(x,y-1);
71+
}
72+
int main()
73+
{
74+
int t,tes=1;
75+
cin>>t;
76+
while(t--)
77+
{
78+
int x,y;
79+
cin>>m>>n;
80+
string s;
81+
for(int i=0; i<n; i++)
82+
{
83+
cin>>s;
84+
for(int j=0; j<s.size(); j++)
85+
{
86+
A[i][j]=s[j];
87+
if(A[i][j]=='@')
88+
{
89+
x=i;
90+
y=j;
91+
}
92+
}
93+
}
94+
dfs(x,y);
95+
cout<<"Case "<<tes<<": "<<cnt<<endl;
96+
cnt=0;
97+
memset(vis,0,sizeof(vis));
98+
tes++;
99+
}
100+
}
101+
102+
103+
```

0 commit comments

Comments
 (0)