码迷,mamicode.com
首页 > 其他好文 > 详细

洛谷-10进军苏联-[再也不坑]【二战2】二战系列2:狼烟四起

时间:2015-07-22 18:34:23      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:

题目背景 Background

元首怒了!!
 题目描述 Description
自从德军撕毁条约进攻苏联后,斯大林一直怏怏不悦,最近又有人来报,敌军在某山区埋了很多地雷,为了保证不误伤,德军将地雷按二维坐标排列。
如果按照每个已知地雷位置为原点构造坐标系,那么两个地雷的坐标轴相交的地方就可能出现地雷,现在请你计算最多可能有的地雷数。
举例,如果如下图:
#################
####$############
#################
###########$#####
#################
井号表示未知区域,dollar号表示已知地雷,如果如上图已知两个雷,那么:
#################
####$######*#####
#################
####*######$#####
#################
输出可能存在雷区如上图*

现在你需要根据以上规律找出所有可能存在雷区,将其标识为*,再输出
 输入输出格式 Input/output
输入格式:
输入两个数x,y,表示矩阵长(横)与宽(纵),第二行一个矩阵,包含#与$
输出格式:
输出一个矩阵,表示已知和可能存在雷区,输完矩阵后,再输出一个数,表示最多存在地雷
 输入输出样例 Sample input/output
样例测试点#1

输入样例:

20 6

####################
####$###############
####################
###########$########
####################
##############$#####
输出样例:

####################
####$######*##*#####
####################
####*######$##*#####
####################
####*######*##$#####
9

思路:这题呢,十分简单,果然是水题啊。。。

从样例中不难分析出,每个‘*‘的坐标是每个‘$‘除了它本身之外的纵坐标与其他‘$‘的横坐标。

比如样例中给出的三个‘$‘的坐标为:①(5,5)②(12,3)③(15,1)

其他六个‘*‘的坐标为:①(5,1)②(5,3)③(12,1)④(12,5)⑤(15,3)⑥(15,5)

不难发现,‘*‘坐标是‘$‘的纵坐标与其他$‘的横坐标

那么这题就好办了,上代码!

代码如下:

 1 #include <stdio.h>
 2 int main()
 3 {
 4     char a[300][300];
 5     int b[300][2],ans=0;//存储坐标 
 6     int n,m,i,j,k=0;
 7     scanf("%d%d",&n,&m);
 8     getchar();
 9     for(i=0;i<m;i++)//输入地图 
10     {
11         gets(a[i]);
12     }    
13     for(i=0;i<m;i++)
14     {
15         for(j=0;j<n;j++)
16         {
17             if(a[i][j]==$)//存储已知地雷坐标 
18             {
19                 b[k][0]=i;//纵坐标 
20                 b[k][1]=j;//横坐标 
21                 k++;
22             }
23         }
24     } 
25     for(i=0;i<k;i++)
26     {
27         for(j=0;j<k;j++)
28         {
29             if(i!=j)
30             {
31                 a[b[i][0]][b[j][1]]=*;//标记为地雷 
32                 ans++;//地雷数++ 
33             }        
34         }        
35     }
36     for(i=0;i<m;i++)
37     {
38         printf("%s\n",a[i]);        
39     }
40     printf("%d\n",ans+k);//先前的地雷加上统计的地雷 
41     return 0;
42 }

 

洛谷-10进军苏联-[再也不坑]【二战2】二战系列2:狼烟四起

标签:

原文地址:http://www.cnblogs.com/geek-007/p/4667862.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!