澳门皇冠官网app蹲草阴人也算勇敢,他的壮士之处在于她特地喜欢蹲草丛阴人(XL

2801 LOL-盖伦的蹲草安顿

 

时间限制: 1 s

空间范围: 25陆仟 KB

题目等级 : 黄金 戈尔德

 

 

 

难点叙述 Description

鲜明,LOL那款伟大的玩乐,有个叫盖伦的大胆。他的伟人之处在于她专程喜欢蹲草丛阴人(XL:蹲草阴人也算勇敢?!CZQ:无法,个个皆以如此玩的)。某日,德玛西亚与诺克萨斯之间又生出了一场战斗,嘉文四世希望盖伦能引导一支K人的德玛西亚大军出战。

战斗暴发在呼唤师峡谷。整个召唤师峡谷被细分成M行N列的1个矩阵,矩阵中有空地和几片草丛。这几片草丛中多少相当的大、有些十分小。3个1×1的草莽能包容三个兵士,盖伦坚信蹲草偷袭战术能克制诺克萨斯军队,所以他盼望她的人马能全体蹲进草丛里。当然,为了不影响盖伦的战斗,盖伦必要独自并吞连起来的一片草丛(不管草丛有多大)。

澳门皇冠官网app 1

输入描述 Input Description

率先行M、N、K,表示矩阵的行数、列数和小将数量。
接下去M行,输入矩阵,’.’代表平地,’*’代表草丛。

出口描述 Output Description

假定德玛西亚武装和盖伦都能躲进草丛里,则输出“德姆acia
Win!”,否则输出“德姆acia Lose!”

样例输入 Sample Input

3 3 6
.**

.*.

样例输出 Sample Output

Demacia Win!

数据范围及指示 Data Size & Hint

1<=m、n<=1500
1<=k<=1500
P.S:那里对于七个1×1的草莽是还是不是连在一起的定义是:对于各种1×1的草从,它与周围(上下左右)的草莽是连在一起的。

2801 LOL-盖伦的蹲草布置

 

时间限制: 1 s

空间范围: 255000 KB

题目等级 : 黄金 高尔德

 

 

 

题材叙述 Description

可想而知,LOL那款伟大的六日游,有个叫盖伦的勇敢。他的铁汉之处在于他尤其喜爱蹲草丛阴人(XL:蹲草阴人也算勇敢?!CZQ:不能,个个都以那般玩的)。某日,德玛西亚与诺克萨斯之间又发生了一场交锋,嘉文四世希望盖伦能引导一支K人的德玛西亚三军出战。

交火发生在召唤师峡谷。整个召唤师峡谷被划分成M行N列的贰个矩阵,矩阵中有空地和几片草丛。这几片草丛中稍加相当大、有些十分的小。二个1×1的草丛能包容二个战士,盖伦坚信蹲草偷袭战术能摆平诺克萨斯军队,所以她期望她的武装部队能一切蹲进草丛里。当然,为了不影响盖伦的交锋,盖伦须要单独霸占连起来的一片草丛(不管草丛有多大)。

澳门皇冠官网app 2

输入描述 Input Description

第叁行M、N、K,表示矩阵的行数、列数和兵员数量。
接下去M行,输入矩阵,’.’代表平地,’*’代表草丛。

出口描述 Output Description

比方德玛西亚部队和盖伦都能躲进草丛里,则输出“德姆acia
Win!”,否则输出“德姆acia Lose!”

样例输入 Sample Input

3 3 6
.**

.*.

样例输出 萨姆ple Output

Demacia Win!

数量范围及指示 Data Size & Hint

1<=m、n<=1500
1<=k<=1500
P.S:这里对于三个1×1的草丛是不是连在一起的概念是:对于逐个1×1的草从,它与周围(上下左右)的草莽是连在一起的。

分拣标签 Tags 点此展开

 

尼玛标题错了。。。

那就相比较难堪了。。。

注旨在DFS的时候若是蒙受可以退出的原则就直接退出

 

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cstdlib>
 5 using namespace std;
 6 const int MAXN=5000;
 7 int map[MAXN][MAXN];
 8 int vis[MAXN][MAXN];
 9 int ans;
10 int xx[5]={-1,+1,0,0};
11 int yy[5]={0,0,-1,+1};
12 int n,m,k;
13 void dfs(int x,int y,int tot)
14 {
15     if(tot>ans)
16     ans=tot;
17     if(tot*3>=k)
18     {
19         printf("Demacia Win!");
20         exit(0);
21     }
22     vis[x][y]=1;
23     for(int i=0;i<4;i++)
24     {
25         int wx=x+xx[i];
26         int wy=y+yy[i];
27         if(wx>0&&wy>0&&wx<=n&&wy<=m&&vis[wx][wy]==0&&map[wx][wy]==0)
28         {
29             dfs(wx,wy,tot+1);
30         }
31     }
32     
33 }
34 int main()
35 {
36     
37     scanf("%d%d%d",&n,&m,&k);
38     int flag=0;
39     for(int i=1;i<=n;i++)
40     {
41         for(int j=1;j<=m;j++)
42         {
43             char c;
44             cin>>c;
45             if(c=='*')
46             {
47                 map[i][j]=1;
48                 flag=1;
49             }
50             else
51             {
52                 map[i][j]=0;//不能走 
53             }
54         }
55     }
56     for(int i=1;i<=n;i++)
57     {
58         for(int j=1;j<=m;j++)
59         {
60             if(vis[i][j]==0&&map[i][j]==0)
61             {
62                 dfs(i,j,1);
63             }
64         }
65     }
66     /*if(flag==1&&k<=3)
67     {
68         printf("Demacia Win!");
69         return 0;
70     }*/
71     if(ans*3>=k)
72     {
73         printf("Demacia Win!");
74     }
75     else
76     {
77         printf("Demacia Lose!");
78     }
79     return 0;
80 }

 

 

分拣标签 Tags 点此展开

 

尼玛标题错了。。。

那就比较窘迫了。。。

留神在DFS的时候若是遇见可以退出的原则就间接退出

 

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cstdlib>
 5 using namespace std;
 6 const int MAXN=5000;
 7 int map[MAXN][MAXN];
 8 int vis[MAXN][MAXN];
 9 int ans;
10 int xx[5]={-1,+1,0,0};
11 int yy[5]={0,0,-1,+1};
12 int n,m,k;
13 void dfs(int x,int y,int tot)
14 {
15     if(tot>ans)
16     ans=tot;
17     if(tot*3>=k)
18     {
19         printf("Demacia Win!");
20         exit(0);
21     }
22     vis[x][y]=1;
23     for(int i=0;i<4;i++)
24     {
25         int wx=x+xx[i];
26         int wy=y+yy[i];
27         if(wx>0&&wy>0&&wx<=n&&wy<=m&&vis[wx][wy]==0&&map[wx][wy]==0)
28         {
29             dfs(wx,wy,tot+1);
30         }
31     }
32     
33 }
34 int main()
35 {
36     
37     scanf("%d%d%d",&n,&m,&k);
38     int flag=0;
39     for(int i=1;i<=n;i++)
40     {
41         for(int j=1;j<=m;j++)
42         {
43             char c;
44             cin>>c;
45             if(c=='*')
46             {
47                 map[i][j]=1;
48                 flag=1;
49             }
50             else
51             {
52                 map[i][j]=0;//不能走 
53             }
54         }
55     }
56     for(int i=1;i<=n;i++)
57     {
58         for(int j=1;j<=m;j++)
59         {
60             if(vis[i][j]==0&&map[i][j]==0)
61             {
62                 dfs(i,j,1);
63             }
64         }
65     }
66     /*if(flag==1&&k<=3)
67     {
68         printf("Demacia Win!");
69         return 0;
70     }*/
71     if(ans*3>=k)
72     {
73         printf("Demacia Win!");
74     }
75     else
76     {
77         printf("Demacia Lose!");
78     }
79     return 0;
80 }

 

 

相关文章