Jzoj4605 排序

初探Proxmox Datacenter Manager:统一管理多集群与单节点的利器 本文介绍了Proxmox Datacenter Manager (PDM) 这一统一管理工具,它能有效解决多套Proxmox VE环境(包括集群和单节点)管理碎片化的痛点。文章详细阐述了PDM的核心功能、安装部署步骤,并通过实战演示了如何添加单节点与整个集群,实现资源的集中监控与基础运维,为运维人员提供了高效的集中管理解决方案。 阅读详情

2017.10.21更新,下面是原本的咸鱼做法

我们发现询问只有一个,我们考虑二分这个最后答案

我们将序列中所有大于mid的值变成1,否则变成0,那么,排序就变成了将序列的01放在头或尾,可以用线段树区间修改做到

#include<stdio.h>
#include<algorithm>
#define mid (l+r>>1)
#define ls x<<1
#define rs x<<1|1
using namespace std;
int s[400040][2],t[400040],w[100010],n,m;
int G[100010][3],q;
void pushdown(int len,int x){
	if(t[x]){
		t[ls]=t[rs]=t[x];
		int d=t[x]-1;
		s[ls][d]=len-(len>>1);
		s[rs][d]=len>>1;
		s[ls][d^1]=s[rs][d^1]=0;
		t[x]=0;
	}
}
void build(int l,int r,int x,int k){
	if(l==r){ 
		s[x][0]=s[x][1]=t[x]=0;
		s[x][w[l]>=k]=1; return; 
	}
	build(l,mid,ls,k);
	build(mid+1,r,rs,k);
	s[x][0]=s[ls][0]+s[rs][0];
	s[x][1]=s[ls][1]+s[rs][1];
	t[x]=0;
}
int query(int l,int r,int x,int L,int R){
	if(L<=l && r<=R){ return s[x][0]; }
	int ans=0,m=mid; pushdown(r-l+1,x);
	if(L<=m) ans+=query(l,m,ls,L,R);
	if(m<R) ans+=query(m+1,r,rs,L,R);
	return ans;
}
void update(int l,int r,int x,int L,int R,int p){
	if(L>R) return;
	if(L<=l && r<=R){ 
		t[x]=p+1; s[x][p]=r-l+1;
		s[x][!p]=0; return;
	}
	int m=mid; pushdown(r-l+1,x);
	if(L<=m) update(l,m,ls,L,R,p);
	if(m<R) update(m+1,r,rs,L,R,p);
	s[x][0]=s[ls][0]+s[rs][0];
	s[x][1]=s[ls][1]+s[rs][1];
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;++i) scanf("%d",w+i);
	for(int i=0;i<m;++i) scanf("%d%d%d",G[i],G[i]+1,G[i]+2);
	scanf("%d",&q);
	int l=0,r=n;
	for(int _m;l<r;){
		_m=l+r+1>>1;
		build(1,n,1,_m);
		for(int j=0;j<m;++j){
			int L=G[j][1],R=G[j][2];
			int v=query(1,n,1,L,R);
			if(!G[j][0]){ 
				update(1,n,1,L,L+v-1,0);
				update(1,n,1,L+v,R,1);
			} else {
				v=R-L+1-v;
				update(1,n,1,L,L+v-1,1);
				update(1,n,1,L+v,R,0);
			}
		}
		if(query(1,n,1,q,q)) r=_m-1; else l=_m;
	}
	printf("%d\n",l);
}

-----------------------------------------------分割线-----------------------------------------------------

然而这道题正解并不是如此(虽然网上大部分都是这么写)

我们考虑,对于一个区间,我们可以用一种可以快速支持分裂和合并的数据结构来维护

没错,我们可以用splay,但是复杂度是nlg^2n,比上面的咸鱼做法还慢

所以我们考虑另一种做法

注意到题目给出的是一个排列而不是序列

所以我们可以用权值线段树来搞定

线段树,均摊lg n合并,合并的方法和可并堆基本就是一样的(可以参考我置顶的文章),不过每次都将两个儿子都合并而已

分裂?这个和可持久化treap一样啊,按照size分开就行了

最后,每颗线段树维护一个reverse标记表示是顺序还是倒序,总复杂度n Lg n

(线段树合并这个东西还是很浪费空间的)

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 100010
#define mid (l+r>>1)
using namespace std;
struct Tree{ int l,r,s; } s[N<<6];
int n,m,cnt=0,rt[N],rev[N];
struct Set{
	int s[N<<2],M;
	void init(){
		for(M=1;M<=n;M<<=1); M--;
		for(int i=M+1;i<=n+M;++i) s[i]=1;
		for(int i=M;i;--i) s[i]=s[i<<1]+s[i<<1|1];
	}
	inline void remove(int x){ for(x+=M;x;x>>=1) --s[x]; }
	inline void insert(int x){ for(x+=M;x;x>>=1) ++s[x]; }
	inline int gPre(int x){
		if(s[x+M]) return x;
		for(x+=M;x;x>>=1)
			if((x&1)&&(s[x^1])){
				for(--x;x<=M;x=(s[x<<1|1]?x<<1|1:x<<1));
				return x-M;
			}
		return -1;
	}inline int gSuc(int x){
		if(s[x+M]) return x;
		for(x+=M;x;x>>=1)
			if((~x&1)&&(s[x^1])){
				for(++x;x<=M;x=(s[x<<1]?x<<1:x<<1|1));
				return x-M;
			}
		return -1;
	}
} c;
inline void ps(Tree& x){ x.s=s[x.l].s+s[x.r].s; }
void insert(int l,int r,int& x,int v){
	if(!x) x=++cnt; ++s[x].s;
	if(l==r) return;
	if(v<=mid) insert(l,mid,s[x].l,v);
		else insert(mid+1,r,s[x].r,v);
}
void merge(int& x,int y){
	if(!x || !y){ x^=y; return; }
	merge(s[x].l,s[y].l);
	merge(s[x].r,s[y].r);
	ps(s[x]);
}
void split(int& x,int& y,int l,int r,int k){
	if(k==0){ y=x; x=0; return; } else y=++cnt;
	if(s[s[x].l].s>k){
		s[y].r=s[x].r; s[x].r=0;
		split(s[x].l,s[y].l,l,mid,k);
	} else split(s[x].r,s[y].r,mid+1,r,k-s[s[x].l].s);
	ps(s[x]); ps(s[y]);
}
void cut(int p){
	int r1=c.gPre(p),r2;
	if(r1==p) return; 
	rev[p]=rev[r1]; r2=c.gSuc(p);
	if(!rev[p]) split(rt[r1],rt[p],1,n,p-r1);
	else split(rt[r1],rt[p],1,n,r2-p),swap(rt[r1],rt[p]);
	c.insert(p);
}
void join(int l,int r,int o){
	int r1=c.gSuc(l+1),r2=c.gPre(r);
	for(;r1<=r2;r1=c.gSuc(r1)){
		merge(rt[l],rt[r1]);
		c.remove(r1);
	}
	rev[l]=o; 
}
int gVal(int l,int r,int x){
	if(l==r) return l;
	if(s[s[x].l].s) return gVal(l,mid,s[x].l);
		else return gVal(mid+1,r,s[x].r);
}
int main(){
	scanf("%d%d",&n,&m);
	for(int x,i=1;i<=n;++i){
		scanf("%d",&x);
		insert(1,n,rt[i],x);
	}
	c.init();
	c.insert(n+1);
	for(int o,l,r;m--;){
		scanf("%d%d%d",&o,&l,&r);
		cut(l); cut(r+1); join(l,r,o);
	}
	scanf("%d",&m); cut(m); cut(m+1);
	printf("%d\n",gVal(1,n,rt[m]));
}

30分钟上手YOLO26 nano:INT8量化部署到智能相机,推理速度提升43% 微调代码(仅需5行,数据集遵循COCO格式)data="custom_data.yaml", # 数据集配置文件epochs=20, # 少量轮数即可收敛batch=8,imgsz=640model.save("yolov26n_custom.pt") # 保存微调后的模型本文在30分钟内完成了YOLO26 nano的INT8量化与智能相机部署,核心步骤为环境准备→模型获取→ONNX导出→INT8量化→部署推理。 阅读详情

相关推荐

海康工业相机触发模式详解:软触发 vs 外触发,在C#里如何选与用?

本文深入解析海康工业相机的软触发与外触发模式,详细比较两者的特性差异、适用场景及C#实现方法。通过海康SDK配置指南和实战代码示例,帮助开发者掌握工业相机触发模式的选择与优化技巧,提升自动化检测系统的精确性和可靠性。

weixin_42635064的博客 555

【JZOJ 4605】【BZOJ 4552】排序

Description 在2016年,佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题 ,需要你来帮助他。这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行m次局部排序,排 序分为两种:1:(0,l,r)表示将区间[l,r]的数字升序排序2:(1,l,r)表示将区间[l,r]的数字降序排序最后询问第q 位置上的数字。 Solution 二分

1004

ZYNQ学习:PL端DDR3 读写测试

DDR SDRAM 的最大特点是双沿触发,即在时钟的上升沿和下降沿都能进行数据采集和发送,同样的工作时钟, DDR SDRAM 的读写速度可以比传统的 SDRAM 快一倍。本次实验使用的 DDR3 芯片是南亚的 NT5CC256M16ER-EKI, NT5CC256M16ER-EKI 的 bank 位宽为 3,行位宽为 15,列位宽为 10,所以它的地址大小等于 2^3*2^15*2^10(即 2^28=256M),数据位宽为 16bit,所以容量大小为 256M*16bit,也就是 512MByte。

shuidiQAQ的博客 3031

JZOJ.4605. 排序

二分+线段树

Luckfort 503

Qt 5.9.1 32位下,手把手搞定周立功CAN二次开发库的加载与配置(含常见错误排查)

本文详细介绍了在Qt 5.9.1 32位环境下配置周立功CAN二次开发库的完整流程,包括环境准备、项目配置、常见错误排查及性能优化建议。特别针对MinGW 32bit环境,提供了.pro文件的精准配置和DLL部署策略,帮助开发者快速解决库文件匹配、编译报错和运行时问题,实现高效的CAN总线通信开发。

weixin_28717431的博客 356

QMT与聚宽策略代码对接实战:Redis信号传递与xtquant交易实现

本文详细介绍了如何将聚宽策略代码与本地QMT终端进行高效对接的实战方案。通过利用Redis Stream构建可靠信号通道,解决了云端信号到本地执行的延迟与丢失问题,并结合xtquant库实现自动化交易执行。文章重点阐述了信号封装、资金映射、异步下单、风控检查及独立资金管理等核心环节,为量化交易者搭建自主可控的实盘系统提供了完整路径。

lilh34434的博客 473

JZOJ 4605 排序【NOIP2016模拟7.11】

排序题目描述 输入格式输出格式样例输入6 3 1 6 2 5 3 4 0 1 4 1 3 6 0 2 4 3样例输出5数据范围题解这一题,看上去很难,事实上还挺简单。 首先一开始想到的一定是用快速排序,但是这样子我们会求出所有位置上的数,然而我们只需求出某个位置上的数而已。我们用二分,我们二分第qq位置上的数。 对于每次二分,假设我们二分的数为aa,将整个序列中大于等于a的值变为1,

XianHaoMing的博客 1970

Matlab信号处理——基于BP神经网络的调制信号分类与识别

如果你想要进一步了解更多的相关知识,可以关注下面公众号联系~会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!对信号进行采样和处理,得到了一系列特征参数,包括幅度均值、频率峰值、频率平方均值以及相位标准差、修正后的相位标准差。

小嘤熊的博客 1308

Jzoj 一维数组(包括排序)部分代码(共42题)

Jzoj 数组部分题目 1117: 【入门】数组逆序 2787: 【入门】统计 1635: 【入门】输出奇数和偶数 1113: 【入门】最大数 1125: 【入门】找找谁的身高超过全家的平均身高 1118: 【入门】数组元素的查找 1135: 【入门】查找支撑数 1120: 【入门】数组元素的移动 1121: 【入门】数组元素的插入 1122: 【入门】数组元素的删除 1119: 【入门】元素插入有序数组 1138: ......

ypeijasd的专栏 6701

Python + Google AI 自动修复 Sonar Bug 实践

在工作中总会遇到种种不期而至的需求,比如前段时间突然要修复所有 Sonar Bug,涉及各种琐碎的代码风格问题,包括但不限于语法不规范、废弃注释等问题。这些项目都已经持续开发几年了,Sonar 上的问题层出不穷,各种问题已经累积到了上万个,手动修复不但费时费力,而且过程异常枯燥。

子洋 Blog 2415

跟着团子学SAP EPPM:项目管理常见的集成场景(PPM\PS\MS Project)

在SAP的EPPM解决方案中,针对企业战略级别的投资组合管理首先是定义合适的投资组合的层级结构,在投资组合下可以通过不同维度去定义投资篮(Portofolio Bucket)进行层层拆分,在最下层级的投资篮下可以分配明细的投资项(Portofolio Item),投资项可以是独立的一个一个具体执行的项目,也可以是单纯的一次服务等等。 今天主要聚焦在投资项的维度展开讲一下在SAP中投资项常见的几种集成模式: 集成场景1:使用PPM中的Project Management进行项目管理 第一个场景是在创建投资项

Lucas1211的博客 4139

JZOJ4605. 【TJOI2016&HEOI2016】排序

题目大意 有一个n的排列,进行m次操作,每次操作是将一个区间升序或降序排序。 请你输出m次操作后第q个位置的值。 Data Constraint n,m≤100000

Akakii的博客 818

llama-factory微调qwen2.5-vl

使用llama-factory完成qwen2.5-vl微调

qq_44908396的博客 2932

JZOJ4605排序

我居然写B组题的题解!!! 一个排列,每次操作给一段[l,r]的数升序或降序排序,最后求某一个位置的值 显然我们可以二分然后把数字转成0/1然后用线段树区间赋值。O(nlog2n)O(nlog^2n)O(nlog2n) 然而有一个简单的O(nlogn)O(nlogn)O(nlogn)做法,还可以支持一个log在线查询。 就是将排好序的序列用一个线段树表示,如果要对一段区间排序,就将左右端点所在的线...

infleaking的博客 246

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【jzoj 4605】【luogu P2824】排序(二分)(线段树)

给你一个全排列,然后每次操作会将数列中的某个区间按升序或降序排序。 然后问你最后第 i 个位置上的数是什么。

欢迎您的光顾awa 184

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

JZOJ4605. 排序(线段树合并与分裂)

题目大意: 每次把一个区间升序或降序排序,最后问一个点是什么。 题解: 如果只是问一个点,这确乎是个经典题,二分一下答案然后线段树维护01排序。 从pty那里get到了可以用线段树的合并与分裂实时地维护整个序列。 考虑一次排序就把这个区间的数搞到一个线段树上,在根处标记是正的还是反的。 如果想搞到一棵树上就需要用到分裂与合并,根据势能分析,复杂度还是\(O(n~log~n)\)。 C...

weixin_30808575的博客 254

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【TJOI & HEOI 2016】【JZOJ 4605】 【BZOJ 4552】排序

Description 序列长度为nn,排序次数为mm 100%1≤n,m≤100000100\%1\leq n,m\leq 100000 Time Limits:6000msTime\ Limits:6000msAnalysis此题做法极为机智。 二分出一个数。把>=这个数的数变为1,<这个数的数变为0 按顺序做一遍区间排序,排序直接用线段树区间修改。 升序就0在前1在后,反之则反。

LYD729 467

[BZOJ4552][JZOJ4605]【TJOI&HEOI2016】D1T2 排序

Description 在2016年,佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他。 这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行m次局部排序,排序分为两种: (0,l,r)(0,l,r)表示将区间[l,r][l,r]的数字升序排序 (1,l,r)(1,l,r)表示将区间[l,r][l

Never give in. 718

[HEOI2016/TJOI2016]排序

题意略。 solution 这道题目我们可以线段树加二分, 首先我们二分最终的答案,然后我们把这个序列变成0/1序列,具体而言,我们将大于等于mid的设为1,小于mid的设为0,排序的话,以升序为例,我们把0扔到左边,1扔到右边,降序类似,然后我们看一下最后我们要求的位置上是0还是1,同时缩小答案范围即可。 code #include&amp;lt;cstdio&amp;gt; #include...

gankinghand的博客 248

【bzoj4552】 [Tjoi2016&Heoi2016]排序

Description在2016年,佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题 ,需要你来帮助他。这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行m次局部排序,排 序分为两种:1:(0,l,r)表示将区间[l,r]的数字升序排序2:(1,l,r)表示将区间[l,r]的数字降序排序最后询问第q 位置上的数字。 Input输入数

wang_sj的博客 557

【Tjoi2016&Heoi2016】排序

Description 在2016年,佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他。这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行m次局部排序,排序分为两种:1:(0,l,r)表示将区间[l,r]的数字升序排序2:(1,l,r)表示将区间[l,r]的数字降序排序最后询问第q位置上的数字。

sadnohappy 1228

一些基础算法的模板(持续更新)

更新中 //Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft //To be continued... //Suffix Automation char str[N]; int s[N][26],mx[N],f[N],sz[N]; int last=1,cnt=1,n,v[N],r[N],ans=0; inlin

扩展の灰(Extended Ash/Cooevjnz) 3865

Jzoj3467 最长上升子序列

维护一个序列,使它可以进行下面两种操作: 1.在末尾添加一个数字x 2.将整个序列变成第x次操作后的样子 在每次操作后,输出当前序列的最长上升子序列的长度 序列初始时为空 嗯,可持久化线段树的裸题 额这可是noip提高组难度的题,我们发现所有操作可以变成一棵树(离线做法老套路了) 让后每次最多修改数组上的一个值(考虑二分求LIS的过程)最后改回去就好了 注意dfs又卡栈(jzo

扩展の灰(Extended Ash/Cooevjnz) 3022

Jzoj4877 力场护盾(红警系列)

ZMiG成功粉碎了707的基因突变计划,为了人类的安全,他决定向707的科学实验室发起进攻!707并没有想到有人敢攻击她的实验室,一时间不知所措,决定牺牲电力来换取自己实验室的平安。     在实验室周围瞬间产生了一个无限大的力场护盾,它看上去无懈可击!不过ZMiG拥有惊人的双向观察能力,经过他的反复观察,找到了这个护盾的N个弱点,他本想逐一击破,却发现一股神秘力量阻止了他的行为。原来他身处力场

扩展の灰(Extended Ash/Cooevjnz) 1169

Jzoj5462【NOIP2017提高A组冲刺11.8】证书

Pulumi生活在P城的角落,而他的朋友们gjdy,oyski,tutuwai等等生活在P城的靠中心位置。 P城很大,但它拥有优秀的城市结构,同时P城重视文化教育的发展,P城共有n个学校,校与校之间共建立了n-1条交通线路,且两所学校之间存在唯一的连通路径。 P城常常举行各种类型的评比活动,为了节约资金,最终将给某一条路径上的所有学校颁发证书。为了便于描述我们记一次评比活动的结果为(ui,vi

扩展の灰(Extended Ash/Cooevjnz) 1057
上一篇: Jzoj4604 树
下一篇: Jzoj4614 字符串(待填)
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值