「蓝桥·算法双周赛」第一场公开赛【待补题填坑】

这篇具有很好参考价值的文章主要介绍了「蓝桥·算法双周赛」第一场公开赛【待补题填坑】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

三带一【算法赛】 - 蓝桥云课 (lanqiao.cn)

给定四个字符,判断是否其中有三个相同,另一个与他们不同

#include <bits/stdc++.h>
void solve()
{
  std::string s;
  std::cin>>s;
  char a=s[0],b=s[1],c=s[2],d=s[3];
  if(a==b&&a==c&&a!=d) std::cout<<"Yes"<<'\n';
  else if(a==b&&a==d&&a!=c) std::cout<<"Yes"<<'\n';
  else if(a==d&&a==c&&a!=b) std::cout<<"Yes"<<'\n';
  else if(d==b&&d==c&&a!=d) std::cout<<"Yes"<<'\n';
  else std::cout<<"No"<<'\n';
}
signed main()
{
  int t;
  std::cin>>t;
  while(t--)
  {
    solve();
  }
  return 0;
}

 数树数【算法赛】 - 蓝桥云课 (lanqiao.cn)

 二叉树性质问题,不了解二叉树也完全可以做。

要注意的是每次都从第一行的第一个点开始走,给一个字符串按照它走,输出最后的结果就行。

往左走坐标就变成了2*pos-1,往右就变成了2*pos

画个树理解一下就好了。

「蓝桥·算法双周赛」第一场公开赛【待补题填坑】,算法

#include <bits/stdc++.h>

signed main()
{
	int n,q;
	std::cin>>n>>q;
	int pos=1;
	while(q--)
	{
		pos=1;
		std::string s;
		std::cin>>s;
		int i=0;
		while(s[i])
		{
			if(s[i]=='L') 
			{
				pos=2*pos-1;
			}else if(s[i]=='R'){
				pos*=2; 
			}
			i++;
		}
		std::cout<<pos<<'\n';
	}
	
	return 0;
}

 分组【算法赛】 - 蓝桥云课 (lanqiao.cn)

这题要求最大的极差最小。【二分答案题目整理】—— 最大化最小值 + 最大值最小化(上)_现在小红有一只木桶由 n 块木板组成,第 i 块木板的长度为 ai 。 现在你有一种魔法-CSDN博客

思维固化导致想不出二分,需要专门刷下二分了。。。。。

二分极差,然后判断如果以该极差来分组,所分的组数能否小于k(如果小于k,那么k肯定能满足。因为一个数可以单独成一组,即极差为0),如果能就减小极差继续试探,否则增大极差。

#include<bits/stdc++.h>
const int N=1e5+10;
int a[N];
int n,k;

bool check(int x)
{
  int last=1,cnt=1;
  for(int i=1;i<=n;i++)
  {
    if(a[i]-a[last]>x)//如果当前这个不行就分组
    {
      last=i;
      cnt++;
    }
  }
  return cnt<=k;
}
signed main()
{
  std::cin>>n>>k;

  for(int i=1;i<=n;i++) std::cin>>a[i];
  std::sort(a+1,a+1+n);

  int l=0,r=2e9,res=0;//枚举极差
  while(l<=r)
  {
    int mid=l+r>>1;
    if(check(mid)) 
    {
      res=mid;
      r=mid-1;
    }else l=mid+1;
  }
  std::cout<<res;
  return 0;
}

健身【算法赛】 - 蓝桥云课 (lanqiao.cn)

十年OI一场空,不开longlong见祖宗。

这道题是一个完全背包问题,需要注意的是si范围是1e9,不开longlong会死。「蓝桥·算法双周赛」第一场公开赛【待补题填坑】,算法

首先dp预处理出 对应连续天数 能收获的最大分数。

然后对连续天数进行计算,每算出一个连续天数就加上对应的分数。

#include <bits/stdc++.h>
const int N=2e5+10;
#define int long long
int n,m,q;
int cantuse[N],k[N],s[N];
struct st{
	int k,s;
}a[N];
int res,cnt;
int f[N];
#define int long long
void solve()//有i天怎么用最大化 
{
	for(int i=1;i<=m;i++)//对物品遍历 
	{
		for(int j=a[i].k;j<=n;j++)//对容积遍历 
		{
			f[j]=std::max(f[j],f[j-a[i].k]+a[i].s);
		}
	}
}
signed main()
{
	std::cin>>n>>m>>q;	
	for(int i=1;i<=q;i++)
	{
		int d;
		std::cin>>d;
		cantuse[d]=1;
	}
	for(int i=1;i<=m;i++)
	{
		std::cin>>a[i].k>>a[i].s;
		a[i].k=pow(2,a[i].k);
	}
	solve();
	f[0]=0;
	for(int i=1;i<=n;i++)
	{
		if(!cantuse[i]) cnt++;
		else{
			res+=f[cnt];
			cnt=0;
		}
	}
	if(cnt) res+=f[cnt];
	std::cout<<res;
	return 0;
}

 契合匹配【算法赛】 - 蓝桥云课 (lanqiao.cn)

这题注意两个点,提前把一个字符串反转(大写改小写,小写改大写),剩下就只用判断是否子串就好了。

同时这题涉及到顺逆时针旋转的问题,我们只要让a=a+a,就能满足a顺逆时针旋转的情况。

#include <bits/stdc++.h>
const int N = 1e6 + 10; 
int n, ne[N];
std::string a, b;
void kmp() 
{
	for(int i=2,j=0;i<=n;i++) 
	{
		while (j&&b[i]!=b[j+1]) j=ne[j];
		if(b[i]==b[j+1]) j++;
		ne[i]=j;
	}
	for (int i=1,j=0;i<=2*n;i++) 
	{
		while(j&&a[i]!=b[j+1]) j=ne[j];
		if (a[i]==b[j+1]) j++;

		if(j==n) 
    	{
			std::cout<<"Yes\n"<<std::min((i-n),(2*n-i));
			return ;
		}
	}
	std::cout<<"No";
}
void solve() 
{
	std::cin >> n >> a >> b;
	a=" "+a+a;
	b=" "+b;
	
	for(int i=1; i <=n; i++) 
	{
		if (isupper(b[i])) b[i] = tolower(b[i]);
		else b[i] = toupper(b[i]);
	}
	kmp();
}
signed main() 
{
	std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0);
	solve();
	return 0;
}

奇怪的线段【算法赛】 - 蓝桥云课 (lanqiao.cn)

这题似乎要用树状数组,博主还没学过,留个坑。文章来源地址https://www.toymoban.com/news/detail-725063.html

到了这里,关于「蓝桥·算法双周赛」第一场公开赛【待补题填坑】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 蓝桥杯双周赛算法心得——三带一(暴力枚举)

    大家好,我是晴天学长,枚举思想,需要的小伙伴可以关注支持一下哦!后续会继续更新的。 1) .三带一 2) .算法思路 1.通过Scanner读取输入的整数n,表示接下来有n个字符串需要处理。 2.使用循环遍历每个字符串: 3.将字符串转换为字符数组c。 4.对于每个字符c[j],统计在整个

    2024年02月07日
    浏览(59)
  • 蓝桥杯双周赛算法心得——通关(哈希+小根堆)

    大家好,我是晴天学长,这是很重要的贪心思维题,哈希的存法和小根堆的表示很重要。💪💪💪 1) .通关 2) .算法思路 通关 用hash(int[])存点的子节点并按输入顺序存关卡的号码(输入顺序就是) 列如:key:父节点 难度 经验 关卡 优先队列存难度和节点 1.接受数据和初始

    2024年02月08日
    浏览(36)
  • 蓝桥杯双周赛算法心得——铺地板(质因数)

    大家好,我是晴天学长,这是第二周的蓝桥杯的双周赛,题可出的又好又灵活啊!真不错!💪💪💪 1) .铺地板 2) .算法思路 1.导入java.util包中的Scanner类,以从用户那里读取输入。 2.main方法是程序的入口点。 3.创建一个Scanner对象,用于从标准输入读取输入。 4.从用户那里读取

    2024年02月08日
    浏览(43)
  • 蓝桥杯1024第 2 场算法双周赛题解+Ac代码

    提醒:篇幅可能有点长,为了方便,大家可以直接看目录快速查找想要的内容 1.新生【算法赛】 - 蓝桥云课 (lanqiao.cn) input: output: 1.对于每一块地板,如果能被凑出来,那么一定是2*3地砖组合出来的,无论2*3地砖怎么放都为6的倍数,故长为n,宽为m的地板,n*m%6==0一定成立 2.这里

    2024年02月06日
    浏览(43)
  • 【蓝桥杯】蓝桥杯双周赛第二场ABCD题

    知识点:下一届是第几届蓝桥杯……         新一届蓝桥杯大赛即将在2024年拉开序!         作为大一新生的小蓝,在听说了这场盛大的比赛后,对其充满了期待与热情。但作为初次参赛的新手,他对蓝桥杯的相关赛制和历史并不了解。于是,他决定寻求上届蓝桥杯总冠

    2024年02月08日
    浏览(41)
  • 【蓝桥杯】蓝桥杯双周赛第二场E题

    知识点:树的直径          过年了。         蓝桥村可以抽象为n个节点,n - 1条边的一棵树,每条边有边权长度wi。         小蓝可以选择任意一个点作为起点,然后选择一条路径,可以访问每一个节点最少一次。他想知道最短的路径长度是多少。 输入格式         第一

    2024年02月06日
    浏览(46)
  • 《蓝桥杯真题》:2021单片机省赛第一场(第十二 / 12届第一场)(另一种代码风格)

    注意: 代码实现方面 : ①注意控制温度参数temp_para范围 ②DAC输出时,注意写入的数字IIC_SendByte(temp)中temp范围在 0~255 ; 源文件修改方面 : ①官方给的iic.h中使用的时C51的头文件\\\"reg52.h\\\",我们需要 修改为 对应的15系列 头文件\\\"STC15F2K60S2.h\\\" ,这样才可以使用其中的一些特殊位寄

    2023年04月08日
    浏览(49)
  • 零基础!无门槛!高额现金奖励!优秀的大学生都在打这场算法双周赛

       spacespace     大家好,我是执梗。在蓝桥杯中获得过十三届 Java B 组国一以及十四届 C++ B 组的国一。今天主要为大家带来一个好消息,蓝桥杯将为各位喜爱算法的小伙伴带来全新的算法双周赛。如果你热爱算法竞赛,或者准备参加十五届的蓝桥杯比赛,那么一定不要错过

    2024年02月08日
    浏览(61)
  • 【蓝桥杯嵌入式】第十四届蓝桥杯嵌入式省赛[第一场]程序设计题以及详细题解

      今年的第一场比赛绝对np,官方将串口直接省掉了,将其替换成很多小功能,如:切换计时、频率均匀变化、锁机制等等,总的来说本届赛题的难度提升了不少。   本届试题需要用到的功能模块有 LCD 、 LED 、 按键 、 定时器输入捕获 、 定时器PWM输出 、 ADC获取 ,虽然这

    2023年04月17日
    浏览(83)
  • 第十二届蓝桥杯嵌入式省赛第一场真题(基于HAL库的巨简代码+超级详解)

    相关说明: 开发板:CT117E-M4(STM32G431RBT6) 开发环境: CubeMX+Keil5 涉及题目:第十二届蓝桥杯嵌入式省赛第一场真题 技巧:字符串比较 、字符串数组转移提取、for和return搭配使用、goto语句、利用%c和%s打印 CubeMX配置、主要函数代码及说明: 1.使能外部高速时钟: 2.配置时钟树:

    2023年04月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包