【20欢乐年末赛】
作者:互联网
【20欢乐年末赛】@TOC
zhb的英语作业
贫穷的zhb
zhb带大家买手办
混元zhb
打工人zhb
zhb的英语作业~~~~
众所周知,zhb的英语非常非常差,甚至一看见英文单词就头痛,zhb的英语老师给他留了一项作业,想让他求出一个字符串中最长的连续出现的字符,以及它出现的次数,如果这样的字符不止一个,则输出第一个。zhb的英语马上就要挂科了,你能帮他完成这项任务吗?
输入
第一行一个整数N,表示测试数据的组数。
每组数据占一行,包含一个不含空白字符的字符串,字符串长度不超过200。
输出
共一行,输出最长的连续出现的字符机器出现次数,中间用空格隔开.
样例输入
2
aaaaabbbbbcccccccdddddddddd
abcdefghigk
样例输出 Copy
d 10
a 1
/*首先要注意是连续一串字符找最长,,所以可以用一个循环去写。
还有就是要控制边界,用char a[],更好来控制,反正string a再控制边界无法编译
*/
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
char s[205];
int main()
{
int n,t,maxn=0,e;
char w;
cin>>n;
while(n--)
{
t=0;int g=0;
maxn=0;
cin>>s;
e=strlen(s);
s[e]='1';w=s[0];//控制边界,给w赋值以防不进入循环
for(int i=0;i<e;i++)
{
*if(s[i]==s[i+1])*
{
t++;
}
*else*
{
if(t>maxn)
{
maxn=t;
w=s[i];
}
t=0;//一定要注意写在if的外面
}
}
cout<<w<<" "<<maxn+1<<endl;//maxn要加一
}
}
贫穷的zhb
题目描述
由于zhb非常喜欢买手办,但是他非常贫穷,所以他想通过炒股来赚钱买手办!
给定一个长度为N的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格,请计算zhb所能获得的最大利润。zhb可以尽可能的完成更多的交易(多次买卖一支股票)。
注意:zhb不能同时参与多笔交易(zhb必须在再次购买前出售掉之前的股票)。
输入
第一行包含整数 N,表示数组长度。
第二行包含 N 个不大于 100000 的正整数,表示完整的数组。
1 ≤ N ≤ 10^5
输出
输出一个整数,表示最大利润。
样例输入
6
7 1 5 3 6 4
样例输出
7
提示
样例解释
样例1:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。共得利润 4+3 = 7。(方式不唯一)
/*思路,,先找到一个较小的数(比前一个数小就行),然后在这个数后面依次找,找比它大的(比方说1 2 3 4定位到1,找到4才停)然后从这个数再开始定位。
代码如下
#include<iostream>
using namespace std;
const int maxn=1e5+10;
long int a[maxn];
int main()
{
long int n,sum=0;
cin>>n;
for(long int i=0;i<n;i++)
{
cin>>a[i];
}
a[n]=0;//限制了边界
long int i=0;
for(;i<n-1;i++)//这样写为了后面调整定位
{
for(long int j=i+1;j<n;j++)
{
if(a[i]<a[i+1]&&a[j+1]<a[j])//用这种方式找到
{
sum=sum+a[j]-a[i];
i=j;//定位调整
break;//加一次就要重新去定位了
}
}
}
cout<<sum;
}
zhb带大家买手办
题目描述
由于炒股赚了钱,zhb终于能跟大家一起买手办了!
现有m个手办,每个手办价钱为 a[i] 。有 n 个人,每个人买手办想花的钱为 b[i]。
zhb想根据手办的价钱,分别给每个人推荐一个手办(不同的人可以推荐重复的手办),要求手办价格与每个人买手办想花的钱相差最小(可高可低),这个最小值为不满意度,求所有人不满意度和的最小值。
输入
第一行读入两个数m, n。m表示手办数,n表示人数。
第二行共有m个数,表示m个手办的价格。
第三行有n个数,表示n个人买手办想花的钱
m ≤ 100000,n ≤ 100000,a[i] ≤ 10^6,b[i] <= 10^6
输出
一行,为最小不满意度之和
样例输入
4 3
513 598 567 689
500 600 550
样例输出
32
/*将例子(a[])排序,然后二分一个个查b[],就是要注意后面的判断条件
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
long int a[100005],b[100005];
long int m,n,sum=0;
int main()
{
cin>>m>>n;
for(long int i=0;i<m;i++)
{
cin>>a[i];
}
for(long int i=0;i<n;i++)
{
cin>>b[i];
}
sort(a,a+m);
for(long int i=0;i<n;i++)
{
long int l=0,r=m;
while(l<r)
{
long int mid=(l+r)/2;
if(a[mid]<=b[i]) l=mid+1;
else r=mid;
}
*if(b[i]<a[0])
sum=sum+a[0]-b[i];*//非常重要,那个数不在例子范围内要这样做
else
sum=sum+min(abs(a[l]-b[i]),abs(a[l-1]-b[i]));
}
cout<<sum;
}
混元zhb
题目描述
zhb开办的太极门过于火爆,聪明的zhb发现只考核混元功法已经不足以满足学生毕业的需要,于是他想出来了一个新的考核办法。每一个考试的学生zhb会给出一个句子,学生需要将里面出现的6进行替换。但它可不是乱替换的, 只有当出现超过3 个连续的 6时,需要替换为"9";但如果有超过 9 个连续的 6,则将这串连续的 6 替换成"hun yuan zhb"。
下面请你帮助zhb完成考核
输入
输入在一行中给出一句话,即一个非空字符串,由不超过 1000个标点符号、英文字母、数字和空格组成,以回车结束。
输出
从左到右扫描输入的句子:如果句子中有超过 3 个连续的 6,则将这串连续的 6 替换成 9;但如果有超过 9 个连续的 6,则将这串连续的 6 替换成"hun yuan zhb"。其他内容不受影响,原样输出。
样例输入
it is so 666 really 6666 what else can I say 6666666666
样例输出
it is so 666 really 9 what else can I say hun yuan zhb
/这道题用类似”zhb的英语作业“的方式去做,但它要注意累加到相应的6就进行输出/
具体代码如下
#include<iostream>
#include<string>
#include<string.h>
using namespace std;
char s[1010];
int t;
int main()
{
gets(s);
for(int i=0;i<strlen(s);i++)
{
if(s[i]!='6')
cout<<s[i];
if(s[i]=='6'&&s[i+1]=='6')
t++;
if(s[i]=='6'&&s[i+1]!='6')
{
if(t+1<=3)
{
for(int j=0;j<=t;j++)
cout<<"6";
}
if(t+1>3&&t+1<=9)
cout<<"9";
if(t+1>9)
cout<<"hun yuan zhb";
t=0;
}
}
}
打工人zhb
题目描述
贫穷的zhb最近因为疫情资金链断裂,不得不开启了打工人的生活,心灵手巧的他找到了一份贴瓷砖的工作。他来到了雇主的家里,雇主的地面是一个2×n的长方形方格 ,但是极其挑剔的雇主要求zhb只能用1× 2 的瓷砖铺满地面,并且要求zhb提供所有符合他要求的方案,这让zhb非常为难,究竟有多少方法呢?请你帮帮他。
例如:例如n=3时,为2× 3方格的地面,瓷砖的铺放方案有三种,如下图:
输入
输入数据由一行组成,包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0<n<=50)。
输出
对于测试实例,请输出铺放方案的总数.
样例输入
3
样例输出
3
思路: 这就是斐波那契数列的运用,可以举几个例子发现1-1,2-2,3-3,4-5
所以就写吧,注意数组开的类型要用long,要不然就超了
#include<iostream>
using namespace std;
long int f[1000];
int main()
{
int t;
f[1]=1;f[2]=2;
cin>>t;
for(int i=3;i<=t;i++)
f[i]=f[i-1]+f[i-2];
cout<<f[t]<<endl;
}
标签:输出,20,int,样例,long,zhb,欢乐,年末,include 来源: https://blog.csdn.net/Roselucky/article/details/111027313