欢迎关注
蓝桥杯每日练习合集
共同努力
报名了acwing每日一题,我的算法提不上去,争取每日都做,蓝桥成绩不至于太差吧。
Farmer John 的奶牛正在 mooZ 视频会议平台上举行每日集会。
她们发明了一个简单的数字游戏,为会议增添一些乐趣。
Elsie 有三个正整数 A、B 和 C (A≤B≤C)。
这些数字是保密的,她不会直接透露给她的姐妹 Bessie。
她告诉 Bessie 七个范围在 1…109 之间的整数(不一定各不相同),并宣称这是 A、B、C、A+B、B+C、C+A 和 A+B+C 的某种排列。
给定这七个整数,请帮助 Bessie 求出 A、B 和 C。
可以证明,答案是唯一的。
输入格式
输入一行,包含七个空格分隔的整数。
输出格式
输出 A、B 和 C,用空格分隔。
数据范围 1≤所有输入的整数≤109
输入样例:
2 2 11 4 9 7 9
输出样例:
2 2 7
这道题我一开始考虑全排列来着,尝试使用next_permutation来逐个排列输出正确的顺序,后来发现,输入值有重复的可能,显然这个全排列不能使用了。
后来观察发现,(A≤B≤C),A是最小的,那么我们观察A、B、C、A+B、B+C、C+A 和 A+B+C 。这样的话A和B肯定是最小的啊。而A+B+C一定是最大的。
那么C=A+B+C-A-B对吧。
#include
using namespace std;
int main()
{
int a[10];
for(int i=0;i<7;i++)
{
cin>>a[i];
}
sort(a,a+7);
cout<<a[0]<<" "<<a[1]<<" "<<a[6]-a[0]-a[1];
return 0;
}
一个鲜为人知的事实是,奶牛拥有自己的文字:「牛文」。
牛文由 26 个字母 a 到 z 组成,但是当奶牛说牛文时,可能与我们所熟悉的 abcdefghijklmnopqrstuvwxyz 不同,她会按某种特定的顺序排列字母。
为了打发时间,奶牛 Bessie 在反复哼唱牛文字母歌,而 Farmer John 好奇她唱了多少遍。
给定一个小写字母组成的字符串,为 Farmer John 听到 Bessie 唱的字母,计算 Bessie 至少唱了几遍完整的牛文字母歌,使得 Farmer John 能够听到给定的字符串。
Farmer John 并不始终注意 Bessie 所唱的内容,所以他可能会漏听 Bessie 唱过的一些字母。
给定的字符串仅包含他记得他所听到的字母。
输入格式
输入的第一行包含 26 个小写字母,为a到z的牛文字母表顺序。
下一行包含一个小写字母组成的字符串,为 Farmer John 听到 Bessie 唱的字母。
输出格式
输出 Bessie 所唱的完整的牛文字母歌的最小次数。
数据范围 字符串的长度不小于 1 且不大于 1000。
输入样例:
abcdefghijklmnopqrstuvwxyz
mood
输出样例:
3
样例解释
在这个样例中,牛文字母表与日常的字母表的排列一致。
Bessie 至少唱了三遍牛文字母歌。
有可能 Bessie 只唱了三遍牛文字母歌,而 Farmer John 听到了以下被标记为大写的字母。
abcdefghijklMnOpqrstuvwxyz
abcdefghijklmnOpqrstuvwxyz
abcDefghijklmnopqrstuvwxyz
我的思路是这样的,他这个表是固定顺序的,Farmer John 听到的这个字符串,每一次都是按顺序来的,这样的话只要每次遍历,把听到的字符串取到,直到取完,这样的话就可以解决这个问题。
#include
using namespace std;
int main()
{
char a[1005];
scanf("%s",a);
int lena,lenb;
lena=strlen(a);
char b[1005];
scanf("%s",b);
lenb=strlen(b);
int cout1=0,j=0;
while(1)
{
cout1++;
for(int i=0;i<lena;i++)
{
if(b[j]==a[i])
{
j++;
}
}
if(j==lenb)
break;
}
cout<<cout1;
return 0;
}