WUST 2090 HLD与停车场(bfs||dfs||暴力模拟||巧妙思维)

超、凢脫俗 2022-06-05 11:45 232阅读 0赞

2090: HLD与停车场

Time Limit: 1 Sec Memory Limit: 128 MB 64bit IO Format: %lld
Submitted: 21 Accepted: 6
[ Submit][ Status][ Web Board]

Description

HLD最近迷上了保加利亚妖王,这天他打算去河北省参加保加利亚妖王的演唱会,但是很不幸他被保加利亚妖王的死对头比利王的手下王大锤抓住了。

由于和王大锤一起执行任务的龙卷风这天生病请假了,王大锤给HLD布置了一个任务,如果能完成这个任务就放他走,否则就会带回去和比利王搞一辈子比利emmmmm,无奈之下HLD只能接下了这个任务————龙卷风摧毁停车场。

Input

王大锤会告诉HLD两个数字n,m,分别代表地图的长和宽(2<=n<=20,2<=m<=20),会给HLD一张n*m的图,”.”代表路,”*”号代表停车场的边缘(图只包含这两个字符)

任意两个停车场不相邻,停车场都是完整的矩形,(可以看样例了解一下),然后给一个要求摧毁的数字x(x<100),保证任意停车场的边长不小于2,数据为多组输入。

Output

现在让HLD在摧毁所有停车场后写一份摧毁报告,如果达到了要求就写上:”乌鸦坐飞机”,否则写”boy next door!”(均不包括引号)

现在HLD一股脑把所有的停车场摧毁了,但是忘记记录下来了,你能告诉他他应该写下什么吗?

" class="reference-link">Sample Input copy.gif

  1. 3 6
  2. ..***.
  3. ..*.*.
  4. ..***.
  5. 1
  6. 5 6
  7. ..**..
  8. ..**..
  9. ......
  10. ***...
  11. ***...
  12. 3

Sample Output

  1. 乌鸦坐飞机
  2. boy next door!

HINT

样例一给出的图中有一个停车场

样例二中有两个停车场

比如可能会出现:

**

**

也表示一个停车场

****

*..*

*..*

****

也表示一个停车场

Author

hjy

[ Submit][ Status][ Web Board]

题解:

第一次出题,新生杯比赛的时候一小时都没人尝试,然后加了一组样例和hint解释以后就有人a了。。感觉不是很难啊,我分配的是出简单题的qwq

思路:

这题的做法很多,可以二重循环遍历图,遇到星号就矩形数加一,暴力分别扫上边,左边,下边和右边,扫到了星号就消掉,这里考察模拟能力,然后更高级一些的解法可以bfs和dfs,巧妙的做法是二重循环遍历图,遇到星号判断它的左边和上边,如果都是点或者边界那就矩形数加一

标程:

  1. #include<stdio.h>
  2. int judge(char s[][25],int x,int y)
  3. {
  4. if((x-1<0||s[x-1][y]=='.')&&(y-1<0||s[x][y-1]=='.'))
  5. return 1;
  6. return 0;
  7. }
  8. int main()
  9. {
  10. //freopen("datain.txt","r",stdin);
  11. //freopen("dataout.txt","w",stdout);
  12. char s[25][25];
  13. int n,m,i,j,a,b,d,ans;
  14. while(scanf("%d%d",&n,&m)!=EOF)
  15. {
  16. ans=0;
  17. for(i=0;i<n;i++)
  18. scanf("%s",s[i]);
  19. scanf("%d",&d);
  20. for(i=0;i<n-1;i++)
  21. {
  22. for(j=0;j<m-1;j++)
  23. {
  24. if(s[i][j]=='*'&&judge(s,i,j))
  25. {
  26. ans++;
  27. }
  28. }
  29. }
  30. if(ans>=d)
  31. printf("乌鸦坐飞机\n");
  32. else
  33. printf("boy next door!\n");
  34. }
  35. return 0;
  36. }

发表评论

表情:
评论列表 (有 0 条评论,232人围观)

还没有评论,来说两句吧...

相关阅读

    相关 杭电2090

    此题就是一道令人无法琢磨的题!哎!!我简直就无语了!!呵呵!竟然能出这题。。。。 废话少说,直接ac!!! \\\ 此题要想输出结果,还需要注意一下! 在linux