洛谷P4327

news/2024/11/2 16:32:46/

大致思路是:按照5*5的方阵赋值字符,然后保证‘*’不会被覆盖就可以

#include <stdio.h>

#include <string.h>

char b[7][100];

int main()

{

    char a[20];

    scanf("%s", a);  //不知道为什么洛谷上不能用gets

    int i, j, t, k, l;

    for (i = 1; i <= strlen(a); i++)

    {

        b[3][3 + (i - 1) * 4] = a[i - 1];

        t = 3 + (i - 1) * 4;

        for (j = t - 2; j <= t + 2; j++)

        {

            if (i % 3 == 0)

            {

                if (j == t - 2 || j == t + 2) //对称性

                {

                    b[1][j] = '.';

                    b[2][j] = '.';

                    b[3][j] = '*';

                    b[4][j] = '.';

                    b[5][j] = '.';

                }

                if (j == t - 1 || j == t + 1) //对称性

                {

                    b[1][j] = '.';

                    b[2][j] = '*';

                    b[3][j] = '.';

                    b[4][j] = '*';

                    b[5][j] = '.';

                }

                if (j == t)

                {

                    b[1][j] = '*';

                    b[2][j] = '.';

                    b[4][j] = '.';

                    b[5][j] = '*';

                }

            }

            else

            {

                if (j == t - 2 || j == t + 2)

                {

                    b[1][j] = '.';

                    b[2][j] = '.';

                    if (b[3][j] != '*')    //防止‘*’被‘#’覆盖

                        b[3][j] = '#';

                    b[4][j] = '.';

                    b[5][j] = '.';

                }

                if (j == t - 1 || j == t + 1)

                {

                    b[1][j] = '.';

                    b[2][j] = '#';

                    b[3][j] = '.';

                    b[4][j] = '#';

                    b[5][j] = '.';

                }

                if (j == t)

                {

                    b[1][j] = '#';

                    b[2][j] = '.';

                    b[4][j] = '.';

                    b[5][j] = '#';

                }

            }

        }

    }

    for (i = 1; i <= 5; i++)

    {

        for (j = 1; j <= t + 2; j++)

        {

            printf("%c", b[i][j]);

        }

        if (i != 5)

            printf("\n");

    }

}


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

相关文章

【折半搜索】洛谷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 数组的对应位置中。怎么知道当前正在执行哪…

LeetCode347. 前 K 个频繁元素

LeetCode347. 前 K 个频繁元素 题目 给定一个非空的整数数组&#xff0c;返回其中出现频率前 k 高的元素。 示例 1: 输入: nums [1,1,1,2,2,3], k 2 输出: [1,2]示例 2: 输入: nums [1], k 1 输出: [1]说明&#xff1a; 你可以假设给定的 k 总是合理的&#xff0c;且…