新生赛26场
乐乐的数字,乐乐的图形
越学越废,呵呵呵呵。
没事,再接再厉就好了
乐乐的数字:
题目描述
乐乐做完数学作业,突发奇想定义了一种新的数:乐乐数。乐乐把n个数排成一行,一个数的“乐乐数”是指:在这个数的左边且比它小的数中最靠近它(即最靠右)的那个数。依次给出这n个数,请求出所有这n个数相对应的“乐乐数”。
输入
第一行是一个正整数n,表示一共有多少个数。
第二行有n个用空格隔开的正整数,它们从左至右给出了数列中的n个数。这些数保证小于231。
第二行有n个用空格隔开的正整数,它们从左至右给出了数列中的n个数。这些数保证小于231。
输出
输出一行用空格隔开的n个数。
这些数对应于输入数据中的数的“乐乐数”。如果输入中某个数没有“乐乐数”(即它左边的数都不比它小),请输出0。
这些数对应于输入数据中的数的“乐乐数”。如果输入中某个数没有“乐乐数”(即它左边的数都不比它小),请输出0。
样例输入 Copy
7
3 1 2 7 6 7 4
样例输出 Copy
0 0 1 2 2 6 2
提示
对于80%的数据,n≤10000;
对于100%的数据,n≤200000。
对于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所在的第一列前没有空格。
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"); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具