本蒟蒻这题用的打表做法,其实也可以理解为是一种递推。


先来观察一下样例:

当n为7时,输出共有14行,易得输出行数为2n。

ooooooo*******--

oooooo--******o*
oooooo******--o* ooooo--*****o*o*
ooooo*****--o*o* oooo--****o*o*o*
oooo****--o*o*o* ooo--***o*o*o*o*
ooo*o**--*o*o*o*
o--*o**oo*o*o*o*
o*o*o*--o*o*o*o* --o*o*o*o*o*o*o*

第一行和最后一行可以直接单独输出。

可以发现除了最后2-5行外前面的输出每两行都可以看成一组,规律也十分容易看出。

我们根据最后黑白棋子的组数分组,这样可以方便我们用循环输出。


话不多说,看代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k=1;
cin>>n;
for(int i=1;i<=n;i++){
cout<<"o";
}
for(int i=1;i<=n;i++){
cout<<"*";
}
cout<<"--"<<endl;//第一行可以单独输出
int m=n;//用来记录
n-=1;//将第一行和最后一行看成一组,减去一组
while(n>=4){//具有规律的一共有n-4组
for(int i=1;i<=n;i++){
cout<<"o";
}
cout<<"--";
for(int i=1;i<=n;i++){
cout<<"*";
}
for(int i=1;i<=k;i++){
cout<<"o*";
}
cout<<endl; for(int i=1;i<=n;i++){
cout<<"o";
}
for(int i=1;i<=n;i++){
cout<<"*";
}
cout<<"--";
for(int i=1;i<=k;i++){
cout<<"o*";
}
cout<<endl;//换行 n--;// 规律组数减1
k++;//用来记录已移动完成的黑白棋子组数
}
int l=0;//从0开始,调用下面数组的元素。
string out[5] = {"ooo--***o*","ooo*o**--*", "o--*o**oo*", "o*o*o*--o*"};
//对无法用递推来输出规律的部分打好表
n++;//上面的循环多减了1,这边加上,保证后面输出四行
while(n){
cout<<out[l];//输出字符串数组
for(int i=1;i<=k-1;i++){
cout<<"o*";
}
n--;//剩余行数减1
l++;//准备调用下一个元素
cout<<endl; cout<<out[l];
for(int i=1;i<=k-1;i++){
cout<<"o*";
}
cout<<endl;
l++;
n--;
} cout<<"--";
for(int i=1;i<=m;i++){
cout<<"o*";
}//最后一行单独输出。
return 0;
}

这道题只要仔细观察样例,寻找规律,递推关系其实并不复杂,值得注意的是每次输出的数量要做到分毫不差,所以在编写代码过程中需要不断在脑中模拟电脑的运行过程,这样可以避免后期复查带来的大量的工作量。

洛谷P1259 黑白棋子的移动 题解的更多相关文章

  1. 洛谷P1854 花店橱窗布置 分析+题解代码

    洛谷P1854 花店橱窗布置 分析+题解代码 蒟蒻的第一道提高+/省选-,纪念一下. 题目描述: 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定 ...

  2. HAOI2006 (洛谷P2341)受欢迎的牛 题解

    HAOI2006 (洛谷P2341)受欢迎的牛 题解 题目描述 友情链接原题 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之 ...

  3. 洛谷P3412 仓鼠找$Sugar\ II$题解(期望+统计论?)

    洛谷P3412 仓鼠找\(Sugar\ II\)题解(期望+统计论?) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327573 原题链接:洛谷P3412 ...

  4. 洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速$dp\&Floyd$)

    洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速\(dp\&Floyd\)) 标签:题解 阅读体验:https://zybuluo.com/Junl ...

  5. BZOJ4946 & 洛谷3826 & UOJ318:[NOI2017]蔬菜——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4946 https://www.luogu.org/problemnew/show/P3826 ht ...

  6. 洛谷1578:[WC2002]奶牛浴场——题解

    https://www.luogu.org/problemnew/show/P1578#sub 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建 ...

  7. 洛谷P2460 [SDOI2007]科比的比赛(题解)(贪心+搜索)

    科比的比赛(题解)(贪心+搜索) 标签:算法--贪心 阅读体验:https://zybuluo.com/Junlier/note/1301158 贪心+搜索 洛谷题目:P2460 [SDOI2007] ...

  8. 洛谷 P1146 【硬币翻转】题解

    很久很久之前做过的一道题 翻n-1枚硬币,就是有一枚不翻,也可以理解为翻一枚 直接上程序,看程序说话 #include<iostream> using namespace std; ; b ...

  9. 洛谷P1972 [SDOI2009]HH的项链 题解

    [SDOI2009]HH的项链 题目背景 无 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不 ...

  10. 洛谷 p1352 没有上司的舞会 题解

    P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员 ...

随机推荐

  1. NLP之TextRNN(预测下一个单词)

    TextRNN @ 目录 TextRNN 1.基本概念 1.1 RNN和CNN的区别 1.2 RNN的几种结构 1.3 多对多的RNN 1.4 RNN的多对多结构 1.5 RNN的多对一结构 1.6 ...

  2. 【翻译】Spring Security - 如何解决WebSecurityConfigurerAdapter类已被弃用的问题?

    原文链接:Spring Security - How to Fix WebSecurityConfigurerAdapter Deprecated 原文作者:Nam Ha Minh 原文发表日期:20 ...

  3. 【lwip】12-一文解决TCP原理

    目录 前言 12.1 TCP协议简介 12.2 TCP相关的一些概念词 12.2.1 MSL 12.2.2 MSS 12.3 TCP工作特性 12.3.1 面向连接 12.3.2 全双工通信 12.3 ...

  4. Django更换数据库和迁移数据方案

    前言 双十一光顾着买东西都没怎么写文章,现在笔记里还有十几篇半成品文章没写完- 今天来分享一下 Django 项目切换数据库和迁移数据的方案,网络上找到的文章方法不一,且使用中容易遇到各类报错,本文根 ...

  5. 状态机的技术选型,yyds!

    前言 今天跟大家分享一个关于"状态机"的话题.状态属性在我们的现实生活中无处不在.比如电商场景会有一系列的订单状态(待支付.待发货.已发货.超时.关闭):员工提交请假申请会有申请状 ...

  6. Go语言核心36讲28

    我在前面用20多篇文章,为你详细地剖析了Go语言本身的一些东西,这包括了基础概念.重要语法.高级数据类型.特色语句.测试方案等等. 这些都是Go语言为我们提供的最核心的技术.我想,这已经足够让你对Go ...

  7. golang 简书

    https://www.jianshu.com/p/548adff0d10d Go 入门指南 https://github.com/wuxiaoxiaoshen/go-example-for-live ...

  8. 基于python的数学建模---Fuzzy C-Means(模糊C均值聚类)

    簇数的确定: 要用到k-means里面的轮廓系数 基于python的数学建模---轮廓系数的确定 - 坤丶 - 博客园 (cnblogs.com) 模糊c的代码 import copy import ...

  9. 基于python的数学建模---运输问题

    代码 import pulp import numpy as np from pprint import pprint def transport_problem(costs, x_max, y_ma ...

  10. 关于解决Failed on cp file to /system - Cross-device link 报错

    前言 在adb shell中移动 android_server时候遇到了这个报错 解决办法 采用 cp 命令代替 mv 命令