萌熊6月j讲题

news/2024/9/24 3:29:37

A

解法一(官方解法):
要求每段的二进制或都相同,那么如果整个序列中存在某个数的第 \(i\) 位为 \(1\),那么整个序列的每一段长
度为 \(k\) 的连续子序列中都至少有一个数的第 \(i\) 位为 \(1\)
我们可以对每一位单独求一个满足条件的最小的 \(k\),然后所有位的 \(k\) 的最大值就是答
案。
对于每一位,其序列都形如 00010110001... 这样的二进制串,要求每连续 \(k\) 个位置都至少包含一个 \(1\)
这是一个很经典的问题,可以用双指针或滑动窗口等方法来实现。
image
image

解法二:
注意到或运算本质上和加法是差不多的,都有单调性,所以可以用线段树+二分求解,其中把线段树中所有的 + 变为 | 即可。

bool mst;
int n,m;
#define ls (p<<1)
#define rs (p<<1|1)
#define int long long
const int N = 5000005;
int a[N];
struct point
{int sum,lazy;
}t[N*4];
struct segtree
{void push_up(int p){t[p].sum = t[ls].sum|t[rs].sum;}void build(int p,int l,int r){if(l==r){t[p].sum = a[l];return;}int mid = (l+r)/2;build(ls,l,mid);build(rs,mid+1,r);push_up(p);}int get(int p,int L,int R,int l,int r){if(L<=l&&r<=R)return t[p].sum;int ans = 0;int mid = (l+r)/2;if(L<=mid)ans |= get(ls,L,R,l,mid);if(R>mid)ans |= get(rs,L,R,mid+1,r);return ans;}	
}bird;
bool check(int x)
{int c1,c2;int i;for(i=1;i<=n-x+1;i++){c2 = c1;c1 = bird.get(1,i,i+x-1,1,n);if(~-i&&c1!=c2)return 0;}return 1;
}
bool men;
void solve()
{cin>>n;int i;for(i=1;i<=n;i++)cin>>a[i];bird.build(1,1,n);int l,r;l = 1,r = n;while(l<r){int mid = (l+r)/2;if(check(mid))r = mid;elsel = mid+1;}cout<<r<<endl;return;
}

B

解法一(官方解法):
image
代码很简单,不给了。
解法二:
可以将上述做法简化,把 dfs 换成递推的过程就可以了。

void solve()
{cin>>n>>k;int i;for(i=1;i<n;i++){int u,v;cin>>u>>v;e[u].push_back(v);e[v].push_back(u);}int s = k;int j;for(i=1;i<=n;i++)for(j=2;j<=e[i].size();j++)s *= k-j,s %= mod;s *= k-1,s %= mod;cout<<s%mod<<endl;return;
}

C

image

void solve()
{queue<int> q[50];map<int,bool> ma;cin>>n>>m;cin>>s+1>>t+1;int i,j;for(i=1;i<=n;i++)ma[s[i]-'a'+1] = 1,q[s[i]-'a'+1].push(i);for(i=1;i<=m;i++){if(q[t[i]-'a'+1].empty()){NOreturn;}int j;for(j=1;j<=t[i]-'a'+1;j++)while(q[j].size()&&q[j].front()<q[t[i]-'a'+1].front())q[j].pop();q[t[i]-'a'+1].pop();}YESreturn;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/46647.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

黑马:AI+若依

AI+若依 https://www.bilibili.com/video/BV1pf421B71v/?spm_id_from=333.337.search-card.all.click&vd_source=b1acc63fa6d7d73e53111f9e1153f990若依扫盲通义灵码(AI)CRM客户关系管理系统(后台管理系统) 选型与搭建:技术选型,环境搭建,框架整合(AI凉凉) 设计:…

2024-06-22:用go语言,给定一个起始下标为 0 的长度为3的整数数组 nums,根据这些数字构建三角形。 如果无法构成三角形,则返回 “none“; 否则根据三角形的边长关系返回对应类型的字

2024-06-22:用go语言,给定一个起始下标为 0 的长度为3的整数数组 nums,根据这些数字构建三角形。 如果无法构成三角形,则返回 "none"; 否则根据三角形的边长关系返回对应类型的字符串: equilateral(等边三角形)、isosceles(等腰三角形)或 scalene(不等边三…

BLE低功耗蓝牙

ble低功耗蓝牙 ble流量嗅探与重放 低功耗蓝牙协议栈 BLE是低功耗蓝牙的英文缩写(Bluetooth Low Energy),是蓝牙4.0版本起开始支持的新的、低功耗版本的蓝牙技术规范。 低功耗蓝牙瞄准多个市场,特别是移动智能终端,智能家居,互联设备等领域,主要特点包括:低功耗,使用纽…

国内外大模型生态发展报告!

很多同学只知类似Check GPT或者说对国内的一些比较了解,对国外的不太了解,所以在这总结。 1 大模型的发展 左表名称 参数 特点 发布时间GPT-2 15亿 英文底模,开源 2019年Google T5 110亿 多任务微调, 开源 2019年GPT-3.5 1750亿 人工反馈微调 2022年Meta OPT 1750亿 英文底模…

初识 SpringMVC,运行配置第一个Spring MVC 程序

1. 初识 SpringMVC,运行配置第一个Spring MVC 程序 @目录1. 初识 SpringMVC,运行配置第一个Spring MVC 程序1.1 什么是 MVC2. Spring MVC 概述2.1 Spring MVC 的作用:3. 运行配置第一个 Spring MVC 程序3.1 第一步:创建Maven模块3.2 第二步:添加 web 支持3.3 第三步:配置…

静态库与动态库

参考链接:https://www.bilibili.com/video/BV1N84y1J7hC/?spm_id_from=333.337.search-card.all.click&vd_source=91219057315288b0881021e879825aa3 静态库创建 使用VS创建时,可以搜索静态库,实现了逻辑后,然后可以切换到release模式下点击生成解决方案后会生成lib文…

kettle从入门到精通 第七十三课 ETL之kettle kettle调用http分页接口教程

场景:kettle调用http接口获取数据(由于数据量比较大,鉴于网络和性能考虑,所以接口是个分页接口)。 方案:构造页码list,然后循环调用接口。 1、总体设计1)、初始化分页参数pageNum=1,pageSize=20,这里的pageSize可以根据自己的需求自行调整,比如每次从接口取数100或者…

以指定版本创建django项目

1、在pacharm的文件菜单创建一个纯净项目,如下图所示使用虚拟环境2、在pycharm的终端窗口通过pip安装3.2版本的django,(tips:已默认设定从阿里云镜像下载),如下图所示:3、使用django-admin startproject 项目名 .(django-admin startproject page_dm01 .)在项目下创建…