jzoj6308-中间值【分治】

正题


题目大意

两个序列不降a,ba,ba,b,每次可以修改或询问[l1,r1,l2,r2][l_1,r_1,l_2,r_2][l1,r1,l2,r2]要求输出将序列aaal1∼r1l_1\sim r_1l1r1bbbl2∼r2l_2\sim r_2l2r2部分合起来然后求中位数。


解题思路

我们考虑分治,我们取出两个区间l1+k2−1∼r1l_1+\frac{k}{2}-1\sim r_1l1+2k1r1l2+k2−1∼r2l_2+\frac{k}{2}-1\sim r2l2+2k1r2,然后我们可以判断
在这里插入图片描述
amid1&lt;bmid2a_{mid_1}&lt;b_{mid_2}amid1<bmid2,我们就有mid1+1∼r1mid_1+1\sim r_1mid1+1r1mid2∼r2mid_2\sim r_2mid2r2都比l1∼mid1l_1 \sim mid_1l1mid1大,然后因为这些区间的大小大于等于kkk,所以l1∼mid1l_1\sim mid_1l1mid1是不包含答案的,所以我们把这个区间去掉。

然后就是这样不停减少就过了


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=510000;
int n,m,a[N],b[N];
int calc(int *a,int w,int l,int r)
{return (lower_bound(a+l,a+1+r,w)-a)-l;}
int solve(int l1,int r1,int l2,int r2,int k)
{if(r2<l2) return a[l1+k-1];if(r1<l1) return b[l2+k-1];if(k==1) return min(a[l1],b[l2]);int m1=min(l1+k/2-1,r1),m2=min(l2+k/2-1,r2);if(a[m1]<=b[m2]) return solve(m1+1,r1,l2,r2,k-(m1-l1+1));else return solve(l1,r1,m2+1,r2,k-(m2-l2+1));
}
int main()
{freopen("median.in","r",stdin);freopen("median.out","w",stdout);scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)scanf("%d",&a[i]);for(int i=1;i<=n;i++)scanf("%d",&b[i]);while(m--){int opt,x,y,l,r;scanf("%d%d%d%d",&opt,&x,&y,&l);if(opt==1){if(!x) a[y]=l;else b[y]=l; }else {scanf("%d",&r);printf("%d\n",solve(x,y,l,r,((r-l+1)+(y-x+1))/2+1));}}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB嵌套数组,多维数组查询

一、嵌套数组 数据&#xff1a; {"arrays": [{"keyArrays": [{"key": "index","key2": "index2"},{"key": "index1","key2": "index2"}]}] } mongo语法 db.collecti…

ASP.NET Core Razor 页面使用教程

ASP.NET Core Razor 页面作为 ASP.NET Core 2.0的一部分发布&#xff0c;它是基于页面的全新的Web开发框架。如果您想学习如何使用 ASP.NET Core Razor 页面&#xff0c;可以访问微软的官方站点https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/razor-pages/razor-page…

jzoj6306-Sequence【线性筛,积性函数,数论】

正题 题目大意 定义函数f(x)f(x)f(x)表示有多少长度为nnn的序列使得其中全都是xxx的约束&#xff0c;然后每个序列的贡献是这个序列的gcdgcdgcd再gcdgcdgcd上一个BBB。 给出n,m,Bn,m,Bn,m,B&#xff0c;求∑i1mf(i)\sum_{i1}^mf(i)∑i1m​f(i)。 解题思路 我们发现fff是一个…

MongoDb连接表的查询

一、外键关联 a_table关联b_table通过a_table的a_fieldb_table的b_field&#xff0c;在a_table生成lookup_field字段存储关联的b_table数据 MongoOperations mongoOperations ...;LookupOperation agg Aggregation.lookup("b_table", "a_field","…

如何面试.NET/ASP.NET工程师?

2018-2-28 更新&#xff1a;距离这篇回答发布已经五年过去了&#xff0c;最近还经常受到关注。技术本身在发展&#xff0c;这令我感到有必要来更新一下&#xff0c;希望对新看到的朋友有用。对于服务器上的 .NET 技术&#xff0c;最新的发展当然是 .NET Core 了&#xff0c;作为…

欢乐纪中A组赛【2019.8.18】

前言 有一个暴力写挂了QVQQVQQVQ 成绩 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC111111(J−3)LRZ(J-3)LRZ(J−3)LRZ140140140100100100303030101010191919(J−3)WYC(J-3)WYC(J−3)WYC120120120100100100101010101010262626(J−3)HZB(J-3)HZB(J−3)HZB100100100…

Asp.Net Core 2.1+的视图缓存(响应缓存)

响应缓存Razor 页与 ASP.NET 核心 2.0 中不支持。 此功能将支持ASP.NET 核心 2.1 版本。在老的版本的MVC里面&#xff0c;有一种可以缓存视图的特性(OutputCache)&#xff0c;可以保持同一个参数的请求&#xff0c;在N段时间内&#xff0c;直接从mvc的缓存中读取&#xff0c;不…

MongoDB投影字段

一、投影表字段 投影只包含a_field和b_field字段 Aggregation aggregation Aggregation.newAggregation(Aggregation.project("a_field", "b_field")); List<Map> list mongoOperations.aggregate(aggregation, "table", Map.class).ge…

Json.NET 不再有超过120个依赖项

Json.NET是.NET的官方的JSON解析和序列化库&#xff0c;它取代了Microsoft实际提供的库。但是当把Json.NET推向.NET Standard时&#xff0c;出现了一些问题。除了在该平台上无法使用的众多方法之外&#xff0c;在NET Standard 1.3上的Json.NET需要高达122个依赖包。随着适用于.…

MongoDB新建或删除索引

一、创建索引 创建正序索引 BasicDBObject indexOptions new BasicDBObject(); indexOptions.put("fieldName", 1); mongoOperations.getCollection(tableName).createIndex(indexOptions); 创建逆序索引 BasicDBObject indexOptions new BasicDBObject(); ind…

CF613D-Kingdom and its Cities【虚树,LCA,树链剖分,贪心】

正题 题目链接:https://www.luogu.org/problem/CF613D 题目大意 一棵树&#xff0c;每次询问kkk个点&#xff0c;删除mmm个点要这些点两两不连通&#xff0c;求mmm的最小值。 解题思路 我们可以对于询问的点构造一颗虚树&#xff0c;然后进行贪心选取即可。 codecodecode #…

C#热度不如Java?网友呛声:还有使用C#不能完成的工作?

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言&#xff0c;自发布以来受到了程序员的广泛关注。C#与Java有着很多相似之处&#xff0c;例如&#xff0c;单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是与Java每月被…

P3690-[模板]Link Cut Tree(动态树)【Splay】

正题 题目链接:https://www.luogu.org/problem/P3690 题目大意 nnn个点mmm个操作&#xff0c;要求支持 询问路径异或和连接一条边(若x,yx,yx,y没联通)删除一条边修改一个点的权值 解题思路 LCTLCTLCT板子题不解释。 codecodecode #include<cstdio> #include<cstrin…

MongoDB SpringData去掉自动生成的_class字段

使用定义的Bean类插入数据&#xff0c;spring data默认会给数据增加一个_class字段存储类的全名&#xff0c;这里需要去除类型 Configuration public class MongoConverterConfig implements InitializingBean {Autowiredprivate MappingMongoConverter mappingConverter;Over…

EntityFramework Core 2.0执行原始查询如何防止SQL注入?

前言接下来一段时间我们来讲讲EntityFramework Core基础&#xff0c;精简的内容&#xff0c;深入浅出&#xff0c;希望为想学习EntityFramework Core的童鞋提供一点帮助。EntityFramework Core执行原始查询在EntityFramework Core中执行原始查询我们借助FromSql来实现&#xff…

P3808,P3796-[模板]AC自动机(简单版/加强版)

简单版 题目链接: https://www.luogu.org/problem/P3808 题目大意 nnn个模式串&#xff0c;一个文本串&#xff0c;求有多少个模式串出现在文本串里。 解题思路 普通ACACAC自动机不解释。 codecodecode #include<cstdio> #include<cstring> #include<algorit…

MongoDB SpringBoot ObjectId序列化json为String

mongodb的ObjectId默认序列化为bean对象&#xff0c;如果需要转换为json字符对象&#xff0c;配置如下 Configuration public class JacksonConfig implements InitializingBean {Resourceprivate ObjectMapper objectMapper;Overridepublic void afterPropertiesSet() {Simpl…

EntityFramework Core 2.0自定义标量函数两种方式

前言上一节我们讲完原始查询如何防止SQL注入问题同时并提供了几种方式。本节我们继续来讲讲EF Core 2.0中的新特性自定义标量函数。自定义标量函数两种方式在EF Core 2.0中我们可以将方法映射到数据库中的标量函数&#xff0c;我们可在LINQ中调用此方法并会被正确翻译成SQL语句…

jzoj6310-Global warming【线段树,LIS】

正题 题目大意 给出一个长度为nnn的序列aaa&#xff0c;可以选择一个区间[l,r][l,r][l,r]使得aiaid(l≤i≤r,∣d∣≤x)a_ia_id(l\leq i\leq r,|d|\leq x)ai​ai​d(l≤i≤r,∣d∣≤x)。求最长上升子序列的最大值。 解题思路 我们可以发现肯定有一种最优解法是选择[k,n][k,n][…

SpringBoot shedlock MongoDb锁配置

配置mongo的表进行锁任务管理 maven依赖包 <dependency><groupId>net.javacrumbs.shedlock</groupId><artifactId>shedlock-spring</artifactId><version>2.5.0</version></dependency><dependency><groupId>net…