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行转列、列转行示例
最近在开发过程中遇到问题,需要将数据库中一张表信息进行行转列操作,再将每列(即每个字段)作为与其他表进行联表查询的字段进行显示. 借此机会,在网上查阅了相关方法,现总结出一种比较简单易懂的方法备用. ...
随机推荐
- 使用IDEA 发布项目搭配远程仓库 Gitee
本次讲解的是idea 发布到gitee上 一样的操作流程 没有基础的请先去学习 附上我的 gitee 地址 有资源会发布到gitee 俗话说关注走一走 活到999 https://gitee.com/ ...
- 如何在linux下安装tomcat服务器
linux作为现在比较主流的服务器操作系统,使用的机器广泛,安全稳定.tomcat作为应用容器当然可以有linux版本的tomcat.在linux上安装tomcat的方式也很简单,只需要运行脚本基本配 ...
- 浅谈JVM和垃圾回收
写在前面 简单的介绍一下JVM(Java Virtual Machine)吧,它也叫Java虚拟机.虽然它叫虚拟机,但是实际上不是我们所理解的虚拟机,它更像操作系统中的一个进程.JVM屏蔽了各个操作系 ...
- Java编程资料
Java相关免费编程书籍推荐(都是PDF版) 编程进阶 2017年9月11日 IDE IntelliJ IDEA 简体中文专题教程 https://github.com/judasn/IntelliJ ...
- LeetCode-Stack-Easy
简单题 1. 有效的括号(leetcode-20) 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 1. 左括号必须用相同类型的右括 ...
- BZOJ1294 洛谷P2566 状态压缩DP 围豆豆
传送门 题目描述 是不是平时在手机里玩吃豆豆游戏玩腻了呢?最近MOKIA手机上推出了一种新的围豆豆游戏,大家一起来试一试吧游戏的规则非常简单,在一个N×M的矩阵方格内分布着D颗豆子,每颗豆有不同的分值 ...
- NIVIDIA Tegra K1 QWT安装使用问题和解决办法
在Linux系统下,Tegra K1(ARM体系),只有QtCreator的环境下,去安装Qwt6.1.0: 下载: 系统安装好之后,直接联网在系统自带的软件安装程序中搜索Qt,安装Qt5.2.1,之 ...
- Django项目后台不挂断运行
Django项目后台不挂断运行 方法一: 1.进入项目目录下,运行下面程序: nohup python manage.py runserver 0.0.0.0:5008 & nohup(no ...
- Mysql常用sql语句(23)- update 修改数据
测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 update 也是DML语句哦(数据操作语言) ...
- IIFE中的函数是函数表达式,而不是函数声明
下面的代码打印什么内容,为什么? var b = 10; (function b(){ b = 20; console.log(b); })(); 针对这题,在知乎上看到别人的回答说: 函数表达式与函 ...