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

HNU 12906 Battleship

时间:2014-08-18 12:17:14      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   for   ar   

题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12906

解题报告:题目意思看了很久都没懂,就是一个10*10的方格,然后上面要放一些船,船的规格分别是1艘占4个格子的船,2艘占3个格子的,3艘占2  个格子的,4艘占一个格子的。然后输入是一个10*10的矩阵,数字都是1-100的数,数字表示将在哪个时刻会打到这个位置,当一艘船的每一个格子都被打中之后,这艘船就会下沉,要求两艘船之间不能相邻,然后让你求最复杂的船的排列方法,就是在这里,到底什么是最复杂的排列方法,真吭,原来就是要让你求这个矩阵上面要在最后才没有船的排列方法,这不就是只要在100那个位置一定要放船不就行了。

bubuko.com,布布扣
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 using namespace std;
 6 
 7 int map[11][11];
 8 char ans[11][11],temp[11][11];
 9 
10 int main()
11 {
12 //    freopen("in.txt","r",stdin);
13     for(int i = 1;i <= 10;++i)
14     for(int j = 1;j <= 10;++j)
15     {
16         scanf("%d",&map[i][j]);
17         ans[i][j] = temp[i][j] = .;
18     }
19     ans[1][1] = ans[1][3] = ans[1][5]  = #;
20     ans[2][1] = ans[2][2] = #;
21     ans[2][4] = ans[2][5] = #;
22     ans[2][7] = ans[2][8] = #;
23     ans[3][1] = ans[3][2] = ans[3][3] = #;
24     ans[3][5] = ans[3][6] = ans[3][7] = #;
25     ans[4][1] = ans[4][2] = ans[4][3] = ans[4][4] = #;
26     int x,y;
27     for(int i = 1;i <= 10;++i)
28     for(int j = 1;j <= 10;++j)
29     if(map[i][j] == 100)
30     {
31         x = i,y = j;
32         temp[i][j] = #;
33         break;
34     }
35     int f = 1;
36     for(int i = (x&1)? 1:2;i <= 10;i+=2)
37     if(abs(i-x) > 1)
38     {
39         for(int j = 1;j <= 10;++j)
40         temp[i][j] = ans[f][j];
41         f++;
42         if(f > 4) break;
43     }
44     for(int i = 1;i <= 10;++i)
45     {
46         temp[i][11] = NULL;
47         puts(temp[i]+1);
48     }
49     return 0;
50 }
View Code

 

HNU 12906 Battleship,布布扣,bubuko.com

HNU 12906 Battleship

标签:style   blog   http   color   os   io   for   ar   

原文地址:http://www.cnblogs.com/xiaxiaosheng/p/3919096.html

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