Crossword Answers -------行与列按序输出
题目链接:https://vjudge.net/problem/UVA-232#author=0
题意:关键句:The de nitions correspond to the rectangular grid bymeans of sequential integers on \eligible" white squares.White squares with black squares immediately to the left orabove them are \eligible." White squares with no squares ei-ther immediately to the left or above are also \eligible." No other squares are numbered. All of thesquares on the rst row are numbered白色方框的左方或上方有黑色方框或者无方框,进行编号
题解:1.编号——无方框咋弄-------弄一个笼子,周围是0,0为边界标识符,注意此处应该是字符所以应写成‘0’,否则当空字符处理
2.按行输出容易,如何按列输出,又按着编号——还是像行一样先循环行,再循环列(保证编号从小到大),然后因为按列输出,所以再按行循环(从循环时的i开始,到x结束,注意不能改变i的值),并每次输出都将序号设为0,这样什么时候输出就看序号是否为0即可。
ac代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<iomanip>
using namespace std;
char s[20][20];
int x,y,cou=0,a[20][20];
void init()
{
cou=0;//注意初始化
memset(s,0,sizeof(s));
memset(a,0,sizeof(a));
for(int i=0; i<=x+1; i++)//安装边界
{
s[i][0]='0';
s[i][y+1]='0';
}
for(int i=0; i<=y+1; i++)
{
s[0][i]='0';
s[x+1][i]='0';
}
}
void Num_s()//编号
{
for(int i=1; i<=x; i++)
for(int j=1; j<=y; j++)
if(s[i][j]!='*')
if(s[i][j-1]=='0'||s[i][j-1]=='*'||s[i-1][j]=='0'||s[i-1][j]=='*')
{
cou++;
a[i][j]=cou;
}
}
int main()
{
int c=0;
while(cin>>x)
{
if(x==0) break;
cin>>y;
c++;
getchar();//吸收空行
init();
for(int i=1; i<=x; i++)
{
for(int j=1; j<=y; j++)
s[i][j]=getchar();
getchar();
}
Num_s();
if(c!=1)//注意空行
cout<<endl;
cout<<"puzzle #"<<c<<":"<<endl;
cout<<"Across"<<endl;
for(int i=1; i<=x; i++)
{
int flag=0;
for(int j=1; j<=y; j++)
{
if(s[i][j]!='*')
{
if(flag==0)
cout<<setw(3)<<a[i][j]<<'.';
flag=1;
cout<<s[i][j];
}
else
{
if(flag==1)
cout<<endl;
flag=0;
}
if(j==y&&flag==1)
cout<<endl;
}
}
cout<<"Down"<<endl;
for(int i=1; i<=x; i++)
{
int flag=0;
for(int j=1; j<=y; j++)
{
if (a[i][j] != 0)
{
printf("%3d.", a[i][j]);
for (int k=i; k <= x; k++)
{
if (s[k][j] == '*')
{
flag=0;
cout << endl;
break;
}
else
{
flag=1;
cout << s[k][j];
}
a[k][j]=0;
}
if(flag==1)
cout << endl;
}
}
}
}
return 0;
}
Crossword Answers -------行与列按序输出的更多相关文章
- mysql sql语句:行转列问题
存在表score,记录学生的考试成绩,如下图所示: 现要求以 学生姓名,语文,数学,英语 这种格式显示学生成绩,如下图所示 具体步骤如下: 1.首先,使用case when函数输出单个课程的成绩 ca ...
- 螺旋填数:读入两个整数m,n,输出一个m行n列的矩阵,这个矩阵是1~m*n这些自然数按照右、下、左、上螺旋填入的结果。
package Day8_06; /*读入两个整数m,n,输出一个m行n列的矩阵,这个矩阵是1~m*n这些自然数按照右.下.左.上螺旋填入的结果. * 例如读入数字4,5,则输出结果为: * 1 2 ...
- 【C语言】请输入一个n(n<=10)并输出一个n行n列的杨辉三角
应用二维数组的知识 杨辉三角特点: 1.第一列和对角线的元素全部为1 2.其他元素等于上一行的当前列的值和上一行中当前列前边一列的值之和 #include<stdio.h> #define ...
- poj 1888 Crossword Answers 模拟题
Crossword Answers Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 869 Accepted: 405 D ...
- Oracle行转列、列转行的Sql语句总结
多行转字符串 这个比较简单,用||或concat函数可以实现 SQL Code 12 select concat(id,username) str from app_userselect i ...
- Oracle行转列、列转行的Sql语句总结(转)
多行转字符串 这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_userselect id||username str f ...
- SQL2005语句实现行转列,列转行
在做报表时,经常需要将数据表中的行转列,或者列转行,如果不知道方法,你会觉得通过SQL语句来实现非常难.这里,我将使用pivot和unpivot来实现看似复杂的功能.这个功能在sql2005及以上版本 ...
- SQL Server 行转列重温
转载自http://www.cnblogs.com/kerrycode/ 行转列,列转行是我们在开发过程中经常碰到的问题.行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER ...
- mysql行转列、列转行示例
最近在开发过程中遇到问题,需要将数据库中一张表信息进行行转列操作,再将每列(即每个字段)作为与其他表进行联表查询的字段进行显示. 借此机会,在网上查阅了相关方法,现总结出一种比较简单易懂的方法备用. ...
随机推荐
- 【秒懂Java】【第1章_初识Java】04_学习资料
为了学到更多的新知识,我们经常会去网上搜索各种学习资料.或者,在学习.工作过程中遇到了解决不了的问题,我们也会去网上搜索答案(比如百度.谷歌一下).这篇文章,主要想跟大家聊聊关于学习资料的选择. 建议 ...
- String 类的其他功能
12.01_常见对象(Scanner的概述和方法介绍)(掌握) A:Scanner的概述 B:Scanner的构造方法 Scanner(InputStream source) System.in C: ...
- JavaScript图形实例:Koch曲线
Koch曲线的构造过程是:取一条长度为L0的直线段,将其三等分,保留两端的线段,将中间的一段改换成夹角为60度的两个等长直线:再将长度为L0/3的4个直线段分别进行三等分,并将它们中间的一段均改换成夹 ...
- P3574 FAR-FarmCraft 题解
题目 In a village called Byteville, there are \(n\) houses connected with \(n-1\) roads. For each pair ...
- U盘+grub2安装centos8实战
1. U盘准备 这里的U盘也可以换成硬盘 grub2安装一直失败,怀疑U盘坏了,下面命令修复了一下 [root@host2 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE ...
- spring cloud gateway 限流做法
标题 随风倒十分 反对法
- YAML 语言教程与使用案例
YAML语言教程与使用案例,如何编与读懂写YAML文件. YAML概要 YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写.在开发的这种 ...
- Python and or not 优先级
not > and >or 1 or 5 and 4: -> 1 or 4-> 1 (1 or 5) and 4: ->1 and 4 ->4 x or y . x ...
- java 数据结构(五):数据结构简述
1.数据结构概述数据结构(Data Structure是一门和计算机硬件与软件都密切相关的学科,它的研究重点是在计算机的程序设计领域中探讨如何在计算机中组织和存储数据并进行高效率的运用,涉及的内容包含 ...
- 数据分析07 /matplotlib绘图
数据分析07 /matplotlib绘图 目录 数据分析07 /matplotlib绘图 1. 绘制线性图:plt.plot() 2. 绘制柱状图:plt.bar() 3. 绘制直方图:plt.his ...