洛谷P4327 [COCI2006-2007#1] Okviri

news/2024/11/2 16:41:18/

目录

AC code


题目描述

“Peter Pan frames” are a way of decorating text in which every character is framed by a diamond shaped frame, with frames of neigbhouring characters interleaving. A Peter Pan frame for one letter looks like this ('X' is the letter we are framing):

..#..
.#.#.
#.X.#
.#.#.
..#..

However, such a framing would be somewhat dull so we'll frame every third letter using a “Wendyframe”. A Wendy frame looks like this:

..*..
.*.*.
*.X.*
.*.*.
..*..

When a Wendy frame interleaves with a Peter Pan frame, the Wendy frame (being much nicer) is put on top. For an example of the interleaving check the sample cases.

输入格式

The first and only line of input will contain at most 15 capital letters of the English alphabet.

输出格式

Output the word written using Peter Pan and Wendy frames on 5 lines.

题意翻译

“彼得·潘框架”是一种装饰文字,每一个字母都是由一个菱形框架。一个彼得·潘框架看起来像这样 (x是字母,#是框架):

..#..
.#.#.
#.X.#
.#.#.
..#..

然而,只是一个框架会有些沉闷,所以我们每遇到三个字母会把第三个字母用温迪框架把它框起来。温迪框架看起来像这样:

..*..
.*.*.
*.X.*
.*.*.
..*..

当温迪和彼得·潘的框架重叠时,温迪框架覆盖在上面。 (见样例3和4)

输入格式: 一行包含至多15个英文字母的大写字母。

输出格式: 输出使用彼得·潘和温迪框架写成的5行文字。


输入输出格式


输入格式

The first and only line of input will contain at most 15 capital letters of the English alphabet.

输出格式

Output the word written using Peter Pan and Wendy frames on 5 lines.

输入输出样例

输入

ABCD

输出

..#...#...*...#..
.#.#.#.#.*.*.#.#.
#.A.#.B.*.C.*.D.#
.#.#.#.#.*.*.#.#.
..#...#...*...#..

AC code

#include <bits/stdc++.h>//万能头,好东西
using namespace std;
int len,lena,ll=3,aa;//ll为第一个字母的初始位置
char a[20],b[1000][100],c;
int main(){cin>>a;//输入初始字符串len=strlen(a);//求出字符串长度,strlen()函数能求出字符串长度lena=4*len+1;//求出输出字符矩阵的长度,宽度恒为五memset(b,'.',sizeof(b));//将b数组全赋值为‘.’,以便后来使用while(ll<=lena){//开始循环aa++;//到第aa个字母if(aa%3==0)c='*';else c='#';//若为3的倍数个,则用‘*’b[3][ll]=a[aa-1];//把字母填入b数组中b[1][ll]=c;b[5][ll]=c;b[2][ll-1]=c;b[2][ll+1]=c;b[4][ll-1]=c;b[4][ll+1]=c;//根据字母的位置推出其他字符的位置,并填入b数组中if(b[3][ll-2]!='*')b[3][ll-2]=c;if(b[3][ll+2]!='*')b[3][ll+2]=c;//特判,若以被‘*’覆盖,则不能被‘#’覆盖ll+=4;//之后每个字母的为止为前一个加4}for(int i=1;i<=5;i++){for(int j=1;j<=lena;j++)cout<<b[i][j];//输出cout<<endl;//不要忘了每行要加回车}return 0;//end
}


http://www.ppmy.cn/news/919230.html

相关文章

洛谷P4327

大致思路是&#xff1a;按照5*5的方阵赋值字符&#xff0c;然后保证‘*’不会被覆盖就可以 #include <stdio.h> #include <string.h> char b[7][100]; int main() { char a[20]; scanf("%s", a); //不知道为什么洛谷上不能用gets int i, j, t, k, …

【折半搜索】洛谷P3067:[USACO12OPEN]Balanced Cow Subsets G

先看题&#xff1a; P3067 [USACO12OPEN]Balanced Cow Subsets G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 说实话&#xff0c;洛谷的题解的确是有点难懂&#xff0c;所以本菜在这里写一个比较易懂的思路和代码&#xff1a; 首先先说用什么算法&#xff0c;这里用的是折…

洛谷[P3374] [P3368]树状数组(线段树解法)

最近学习了线段树&#xff0c;不会树状数组&#xff0c;用线段树舔着脸来做一下 P3374树状数组1https://www.luogu.com.cn/problem/P3374 ac代码 #include<bits/stdc.h> using namespace std; const int N 5e7 10;//N开四倍空间会re&#xff0c;所以开大了点 #defin…

洛谷 P4467 [SCOI2007]k短路

具体题目见洛谷 P4467 方法一&#xff1a;A* 思路&#xff1a;A* 算法目标状态第一次被取出时即为最优解&#xff0c;根据这个特点&#xff0c;我们只需要取出第 k 个目标状态就是答案。 又因为 A* 算法的估值尽量与正确值相似且必须 ≤ ≤ ≤ 正确值的要求。这里使用 SPFA…

再度合作|极智嘉(Geek+) P系列拣选机器人进驻CEVA欧洲物流中心

近日&#xff0c;3PL巨头CEVA Logistics首度在社交媒体展示其与极智嘉(Geek)合作打造的全新欧洲物流中心&#xff0c;并在推文中对极智嘉(Geek)给予了高度赞扬。CEVA表示&#xff0c;极智嘉不仅彻底颠覆了CEVA的工作环境&#xff0c;还充分保障了敬业员工的安全和人体工程学效率…

洛谷P3373线段树

洛谷P3373 线段树模板题&#xff0c;主要对懒标的处理要求比较高。 有三种操作&#xff1a; 区间加法区间乘法区间求和查询 tips&#xff1a;我们对一个区间进行乘k操作的时候&#xff0c;他之前可能存在加法lazy还没pushdown&#xff0c;这时候&#xff0c;加法lazy和乘法la…

洛谷P3637题解

从题目就可以看出来&#xff0c;这是一道典型的动规题。 由于是最大上升子序列&#xff0c;所以对任意一个数&#xff0c;在其之后比其大的都不能具有比其更长的子序列&#xff0c;因此每当序列中出现一个更小的数&#xff0c;我们只用考虑以后比其更小的数即可&#xff0c;再…

leetcode 636. Exclusive Time of Functions | 636. 函数的独占时间(Stack)

题目 https://leetcode.com/problems/exclusive-time-of-functions/ 题解 类似于括号匹配问题&#xff0c;遍历 list&#xff0c;每一次来到新元素时&#xff0c;结算当前正在执行的函数已经运行的时间&#xff0c;累加到 result 数组的对应位置中。怎么知道当前正在执行哪…