POJ 2993 Emag eht htiw Em Pleh(模拟)
2017-07-19 09:41
281 查看
http://poj.org/problem?id=2993
题目大意:
同 POJ2996 两题正好相反 这个是给你坐标 让你打印棋盘
分析:
先构造棋盘基本框架 然后向棋盘内添加 点
AC代码:
#include <stdio.h>
#include <string.h>
char map[100][100];
char str1[50];
char str2[50];
char str[50];
int main (){
scanf ("%*s");
scanf("%s",str1);
scanf ("%*s");
scanf("%s",str2);
for (int i=0;i<17;i++){
for (int j=0;j<33;j++){
if (j%4==0&&i%2==0)
map[i][j]='+';
else if(i%2==0)
map[i][j]='-';
if (i%2==1&&j%4==0)
map[i][j]='|';
if(i%2==1&&(i-1)/4.0==(i-1)/4){
if((j-1)/8.0==(j-1)/8){
map[i][j]=map[i][j+1]=map[i][j+2]='.';
}
else if((j-5)/8.0==(j-5)/8){
map[i][j]=map[i][j+1]=map[i][j+2]=':';
}
}
else if(i%2==1&&(i-3)/4.0==(i-3)/4){
if((j-1)/8.0==(j-1)/8){
map[i][j]=map[i][j+1]=map[i][j+2]=':';
}
else if((j-5)/8.0==(j-5)/8){
map[i][j]=map[i][j+1]=map[i][j+2]='.';
}
}
}
}
int n=strlen(str1);
int len=0;
for (int i=0;i<n;i++){
if(str1[i]!=','){
str[len++]=str1[i];
}
}
len--;
while (len>=0){
int x=17-(str[len]-'0')*2;
int y=2+(str[len-1]-'a')*4;
if(str[len-2]>='0'&&str[len-2]<='8'){
map[x][y]='P';
len-=2;
}
else{
map[x][y]=str[len-2];
len-=3;
}
}
n=strlen(str2);
len=0;
for (int i=0;i<n;i++){
if(str2[i]!=','){
str[len++]=str2[i];
}
}
len--;
while (len>=0){
int x=17-(str[len]-'0')*2;
int y=2+(str[len-1]-'a')*4;
if(str[len-2]>='0'&&str[len-2]<='8'){
map[x][y]='p';
len-=2;
}
else{
map[x][y]=str[len-2]+32;
len-=3;
}
}
for (int i=0;i<17;i++){
for (int j=0;j<33;j++){
printf ("%c",map[i][j]);
}
putchar('\n');
}
return 0;
}
题目大意:
同 POJ2996 两题正好相反 这个是给你坐标 让你打印棋盘
分析:
先构造棋盘基本框架 然后向棋盘内添加 点
AC代码:
#include <stdio.h>
#include <string.h>
char map[100][100];
char str1[50];
char str2[50];
char str[50];
int main (){
scanf ("%*s");
scanf("%s",str1);
scanf ("%*s");
scanf("%s",str2);
for (int i=0;i<17;i++){
for (int j=0;j<33;j++){
if (j%4==0&&i%2==0)
map[i][j]='+';
else if(i%2==0)
map[i][j]='-';
if (i%2==1&&j%4==0)
map[i][j]='|';
if(i%2==1&&(i-1)/4.0==(i-1)/4){
if((j-1)/8.0==(j-1)/8){
map[i][j]=map[i][j+1]=map[i][j+2]='.';
}
else if((j-5)/8.0==(j-5)/8){
map[i][j]=map[i][j+1]=map[i][j+2]=':';
}
}
else if(i%2==1&&(i-3)/4.0==(i-3)/4){
if((j-1)/8.0==(j-1)/8){
map[i][j]=map[i][j+1]=map[i][j+2]=':';
}
else if((j-5)/8.0==(j-5)/8){
map[i][j]=map[i][j+1]=map[i][j+2]='.';
}
}
}
}
int n=strlen(str1);
int len=0;
for (int i=0;i<n;i++){
if(str1[i]!=','){
str[len++]=str1[i];
}
}
len--;
while (len>=0){
int x=17-(str[len]-'0')*2;
int y=2+(str[len-1]-'a')*4;
if(str[len-2]>='0'&&str[len-2]<='8'){
map[x][y]='P';
len-=2;
}
else{
map[x][y]=str[len-2];
len-=3;
}
}
n=strlen(str2);
len=0;
for (int i=0;i<n;i++){
if(str2[i]!=','){
str[len++]=str2[i];
}
}
len--;
while (len>=0){
int x=17-(str[len]-'0')*2;
int y=2+(str[len-1]-'a')*4;
if(str[len-2]>='0'&&str[len-2]<='8'){
map[x][y]='p';
len-=2;
}
else{
map[x][y]=str[len-2]+32;
len-=3;
}
}
for (int i=0;i<17;i++){
for (int j=0;j<33;j++){
printf ("%c",map[i][j]);
}
putchar('\n');
}
return 0;
}
相关文章推荐
- poj2632 Crashing Robots 模拟水题
- poj Pots(BFS)(路径记录)(模拟)
- poj 3782 Equal Sum Partitions 模拟水题
- POJ - 1835 - 模拟
- POJ 2993 Emag eht htiw Em Pleh 大模拟
- [poj 3321]Apple Tree[模拟DFS][时间戳][线段树]
- poj 1005:I Think I Need a Houseboat(水题,模拟)
- poj 1702 模拟(用三进制砝码测量物体质量)
- poj 2259 Team Queue (模拟)
- poj 3083 Children of the Candy Corn(bfs+dfs 数组模拟方向)
- poj 2799 IP Networks 模拟 位运算
- POJ-1949(模拟或DP)
- POJ 3095 Linear Pachinko 字符串模拟
- poj 2106 Boolean Expressions(模拟)
- POJ 2602 Superlong sums(模拟大数加法)
- poj_1102_LC-Display(数段码模拟)
- POJ 3573 I18n (字符串模拟)
- POJ --3045--Cow Acrobats(贪心模拟)
- poj 1657 Distance on Chessboard(模拟贪心)
- POJ 2014 Flow Layout 模拟