poj 1099解题报告
来源:互联网 发布:linux shell脚本 pause 编辑:程序博客网 时间:2024/05/03 21:30
//题意不难理解,想了好几天都没有想到比较好的方法,最后看了下他们的解题报告写的,发现自己好水啊~~~
#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
int n,row,col;
int map[15][15]; //存储01矩阵
char str[50][50]; //存放水分子的排布结构
void input() //输入
{
int i,j;
for(i = 0;i < n;i++)
for(j = 0;j < n;j++)
{
cin>>map[i][j];
}
row = n*4 - 3; //水分子结构图对应的行数
col = n*4 + 1; //水分子结构对应的列数
for(i = 0;i < row;i++) //str数组初始化
for(j = 0;j < col;j++)
str[i][j] = ' ';
}
void solve()
{
int r,c;
int i,j;
for(i = 0;i < n;i++)
{
r = i*4;
c = 2;
for(j = 0;j < n;j++,c += 4)
{
str[r][c] = 'O';
if(map[i][j] == 1) //当水分子结构分布为1的情况时
{
str[r][c-2] = 'H';
str[r][c+2] = 'H';
str[r][c-1] = '-';
str[r][c+1] = '-';
}
else if(map[i][j] == -1) //当水分子结构为-1的情况
{
str[r-2][c] = 'H';
str[r+2][c] = 'H';
str[r-1][c] = '|';
str[r+1][c] = '|';
}
else //水分子结构为0的情况
{
if(str[r][c-2] == 'H') //当左边有H的情况
{
str[r][c+1] = '-';
str[r][c+2] = 'H';
}
else
{
str[r][c-2] = 'H';
str[r][c-1] = '-';
}
if(r < 2 ||(r >= 2 && str[r-2][c] == 'H')) //当为第一行或是上一行已有H
{
str[r+1][c] = '|';
str[r+2][c] = 'H';
}
else
{
str[r-2][c] = 'H';
str[r-1][c] = '|';
}
}
}
}
}
void output() //输出水分子总体结构
{
int i,j;
for(i = 0;i < col+2;i++)
printf("*");
printf("\n");
for(i = 0;i < row;i++)
{
printf("*");
for(j = 0;j < col;j++)
printf("%c",str[i][j]);
printf("*\n");
}
for(i = 0;i < col+2;i++)
printf("*");
printf("\n");
}
int main()
{
int count = 0;
while(cin>>n && n)
{
input();
solve();
printf("Case %d:\n\n",++count);
output();
printf("\n");
}
return 0;
}
- poj 1099解题报告
- poj数百篇解题报告
- poj 1141解题报告
- poj 1001解题报告
- poj 1011 解题报告
- poj 1087 解题报告
- poj 2153解题报告
- poj 2051解题报告
- POJ 1167 解题报告
- poj 1026 解题报告
- POJ 1077 解题报告
- POJ 1042 解题报告
- POJ 1095 解题报告
- POJ 1159解题报告
- poj 2312解题报告
- POJ 1001解题报告
- POJ 1002解题报告
- POJ 1006解题报告
- C++数据结构之单链表
- 修改UITableViewCell中UIImageView的位置和大小
- android学习日记:SharedPreferences的使用
- 程序开发可能引起的死机情况
- Javascript学习系列(五):JavaScript cookie详解
- poj 1099解题报告
- CreateProcess
- [汇总]Flex面试题及答案
- gcc编译,ld连接
- 软件设计的真谛
- SQuirreL SQL Client (小松鼠) 数据库连接工具
- 根据毫秒数转换为时分秒(格式为00:00:00)
- 边沿触发和低电平触发的区别
- 最大公约数与最小公倍数