ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

新生赛26场

2022-01-25 15:03:32  阅读:145  来源: 互联网

标签:输出 26 ch 乐乐 int 个数 样例 新生


越学越废,呵呵呵呵。

没事,再接再厉就好了

乐乐的数字:

题目描述

乐乐做完数学作业,突发奇想定义了一种新的数:乐乐数。乐乐把n个数排成一行,一个数的“乐乐数”是指:在这个数的左边且比它小的数中最靠近它(即最靠右)的那个数。依次给出这n个数,请求出所有这n个数相对应的“乐乐数”。

输入

第一行是一个正整数n,表示一共有多少个数。
第二行有n个用空格隔开的正整数,它们从左至右给出了数列中的n个数。这些数保证小于231。

输出

输出一行用空格隔开的n个数。
这些数对应于输入数据中的数的“乐乐数”。如果输入中某个数没有“乐乐数”(即它左边的数都不比它小),请输出0。

样例输入 Copy

7
3 1 2 7 6 7 4

样例输出 Copy

0 0 1 2 2 6 2

提示

对于80%的数据,n≤10000;
对于100%的数据,n≤200000。 题解:都是补题哈哈,借鉴了大佬的代码,看懂之后着实佩服,还有人跟我说可以用单调栈做,等我研究出来重新补发哈,这题我个菜鸡首先想到的是循环,暴力来做,一次循环再加上break依然超时 大佬的想法是用空间换时间,用一个数组来专门记录答案,还有个数组就是移动来找那个数字,还有个原数组,把思路想明白,直接模拟(虽然我当时没做出来,呵呵了
#include<iostream>
using namespace std;
typedef long long int ll;
int b[1000000],a[1000000],c[1000000];
ll t;
int main(){
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    for(int i=1;i<=n;i++)
    {
        if(a[i-1]>=a[i])
        {
            int t=c[i-1];//再往前看一个数
            while(t>0&&a[t]>=a[i])
                t=c[t];  
            b[i]=a[t];
            c[i]=t; 
        }
        else
        {
            b[i]=a[i-1];//如果前一个数刚好比这个数要小,那正好的 
            c[i]=i-1;//表示位置 
        }
    }
    for(int i=1;i<=n;i++)
        printf("%d ",b[i]);
    return 0;
}

 

题目描述

乐乐最近玩起了字符游戏,规则是这样的:读入四行字符串,其中的字母都是大写的,乐乐想打印一个柱状图显示每个大写字母的频率。你能帮助她吗?

输入

共有4行:每行为一串字符,不超过72个字符。 

输出

与样例的格式保持严格的一致。

样例输入 Copy

THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.
THIS IS AN EXAMPLE TO TEST FOR YOUR
HISTOGRAM PROGRAM.
HELLO!

样例输出 Copy

                            *
                            *
        *                   *
        *                   *     *   *
        *                   *     *   *
*       *     *             *     *   *
*       *     * *     * *   *     * * *
*       *   * * *     * *   * *   * * * *
*     * * * * * *     * * * * *   * * * *     * *
* * * * * * * * * * * * * * * * * * * * * * * * * *
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

提示

1.输出的相邻字符间有一个空格。
2.最后一行的26个大写字母每次必须输出。
3.大写字母A所在的第一列前没有空格。
#include<iostream>
#include<cstring>
using namespace std;
int main(){
    int n=4,len,maxn=0,a[10000];
    char ch[100];
    while(n--)
    {
        cin.getline(ch,100);
        len=strlen(ch);
        for(int i=0;i<len;i++)
        {
            if(ch[i]>='A'&&ch[i]<='Z')
            {
                a[ch[i]-'A']++;
                maxn=max(maxn,a[ch[i]-'A']);
            }
        }
    }
    for(int i=maxn;i>0;i--)//代表个数木桶效应,所有的个数都比maxn要小 
    {
        for(int j=0;j<26;j++)//一排一排往下走 
        {
            if(j==0)
            {
                if(a[j]>=i)
                    printf("*");
                else 
                    printf(" ");
            }
            else
            {
                if(a[j]>=i)
                    printf(" *");
                else
                    printf("  ");
            }
            
        }
        cout<<endl;
    }
    printf("A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\n");
    
}

 

标签:输出,26,ch,乐乐,int,个数,样例,新生
来源: https://www.cnblogs.com/ccwz7/p/15821711.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有