Jzoj5605 Zkb

LoRaWAN数据包分析工具 前言:LoRaWAN的射频数据包是加密的,而且有些字段是某个字节的某几位,看着不是那么直观,因此在某些情况下需要借助工具来分析数据包。 1、安装npm 这个工具是用JavaScript写的,其中用到了一些依赖库,而npm就可以一次性把这些依赖库下载下来,因此我们先要下载安装npm这个工具。 安装:sudo apt install npm 输入y,等待安装完成: 检查是否安装成功:npm -v 说明安装完成。 2、安装LoRa数据包分析工具lora-packet 安装:npm i. 阅读详情
给定一个长度为 n 的正整数序列 a 1 ...a n . 现在有 m 次操作, 分为两种:

• 1 l r t: 将区间 [l,r] 降序排序 (t = 0) 或升序排序 (t = 1)

• 2 l r: 询问区间 [l,r] 内元素之积的十进制下最高位

雅礼集训的题目,当时因为空间开小了爆零了

先考虑一下询问,我们发现并不好直接做,所以可以对原数取log10,最后询问区间和的小数部分即可

让后现在问题就在修改这里,这是一个非常经典的线段树合并可以解决的问题

每次排序就将对应区间的线段树链接起来,查询的时候断开

所有根节点用一个zkw线段树来存,根节点的值放在一个fenwick里面方便查询

除了精度被卡了一下其他基本一次写对,3k的代码,是本题平均代码长度的一半

#include<math.h>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 200010
#define db double
using namespace std;
struct tree{ int l,r,c; double s; } s[N*60];
struct fenwick{
	db w[N],S; int n;
	inline void add(int x,db k){ for(;x<=n;x+=x&-x) w[x]+=k; }
	inline db sum(int x){ for(S=0;x;x&=x-1) S+=w[x]; return S; }
} w;
struct seg{
	int s[N<<2],M;
	inline void init(int n){
		for(M=1;M<n;M<<=1); --M;
		for(int i=M+1;i<=M+n;++i) s[i]=1;
		for(int i=M;i;--i) s[i]=s[i<<1]+s[i<<1|1];
	}
	inline void insert(int x){ for(x+=M;x;x>>=1) ++s[x]; }
	inline void remove(int x){ for(x+=M;x;x>>=1) --s[x]; }
	inline int at(int x){ return s[x+M]; }
	inline int gPre(int 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){
		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;
	}
} T;
inline void ps(int x){
	s[x].c=s[s[x].l].c+s[s[x].r].c;
	s[x].s=s[s[x].l].s+s[s[x].r].s;
}
int n,m,rt[N],v[N],rev[N],r[N],sa[N],cnt=0;
inline void merge(int& x,int y){
	if(!y || !x){ x+=y; return; }
	merge(s[x].l,s[y].l);
	merge(s[x].r,s[y].r);
	ps(x);
}
inline void split(int k,int& x,int& y){
	if(k==0){ x=0; y=x; return; }
	else if(k==s[x].c) return; y=++cnt;
	if(s[s[x].l].c>=k){
		s[y].r=s[x].r; s[x].r=0;
		split(k,s[x].l,s[y].l);
	} else {
		split(k-s[s[x].l].c,s[x].r,s[y].r);
	}
	ps(x); ps(y);
}
inline void link(int l,int r,int o){
	int x=T.gSuc(l); w.add(l,-s[rt[l]].s);
	for(;~x&&x<=r;x=T.gSuc(x)){
		w.add(x,-s[rt[x]].s);
		merge(rt[l],rt[x]);
		T.remove(x);
	}
	w.add(l,s[rt[l]].s); rev[l]=o;
}
inline void cut(int x){
	if(T.at(x) || x>n) return;
	int l=T.gPre(x),r=T.gSuc(x); if(r<0) r=n+1;
	w.add(l,-s[rt[l]].s); T.insert(x);
	if(!rev[l]) split(x-l,rt[l],rt[x]);
	else split(r-x,rt[l],rt[x]),swap(rt[l],rt[x]);
	rev[x]=rev[l]; w.add(l,s[rt[l]].s); w.add(x,s[rt[x]].s);
}
inline void insert(int l,int r,int& x,int k,double p){
	x=++cnt;
	if(l==r){ s[x]=(tree){0,0,1,p}; return; }
	int m=l+r>>1;
	if(k<=m) insert(l,m,s[x].l,k,p);
	  else insert(m+1,r,s[x].r,k,p);
	ps(x);
}
inline bool c1(int i,int j){ return v[i]<v[j]; }
inline db g(db x){ return x-(int)x+1e-7; } db p;
int main(){
	freopen("zkb.in","r",stdin);
	freopen("zkb.out","w",stdout);
	scanf("%d%d",&n,&m); w.n=n;
	for(int i=1;i<=n;++i){
		scanf("%d",v+i); sa[i]=i;
	}
	sort(sa+1,sa+1+n,c1); T.init(n);
	for(int i=1;i<=n;++i) r[sa[i]]=i;
	for(int i=1;i<=n;++i){
		insert(1,n,rt[i],r[i],p=log10(v[i]));
		w.add(i,p);
	}
	for(int o,l,r;m--;){
		scanf("%d%d%d",&o,&l,&r);
		if(o==1){
			scanf("%d",&o);
			cut(l); 
			cut(r+1); 
			link(l,r,!o);
		} else {
			cut(l); 
			cut(r+1);
			printf("%d\n",(int)floor(pow(10,g(w.sum(r)-w.sum(l-1)))));
		}
//		for(int i=1;i<=n;++i){
//			if(T.at(i)) printf("[%d %d]",i,i+s[rt[i]].c-1);
//			
//		}
//			puts("");
	}
}



基于STM32L4XX、HAL库的 ATGM336H GPS定位模块驱动程序设计 / 转换为km/h。// 定位状态: 0=无效, 1=GPS定位, 2=差分定位。// GPS解析数据。支持GPS/BeiDou/GLONASS/Galileo/QZSS多系统联合定位。// 回调函数(需要在HAL_UART_RxCpltCallback中调用)// 地面速度(km/h)// 海拔高度(m) 阅读详情

相关推荐

中小型微服务系统 硬件设备如何部署,QPS大概多少

作为一名合格的开发工程师,不仅仅要在前期开发阶段对业务和技术有深入了解,知道选用哪种合适的技术,业务如何拆分,还要思考后期线上环境,资源,延迟,性能等如何优化维护以及分布式系统一些线上生产的一些问题。 本篇主要针对之前了解的情况对硬件设备资源做一个简单的介绍: 首先分布式系统线上实践问题,我们应该对公司的流量,各个服务,网管,注册中心应该如何部署,部署多少台机器才合适,每台机器的配置如何,每天整体流量有多少,高峰期的请求量有多少,你的整体系统是否扛得住(注:很多公司现在直接使用K8S docker 实现

wangxuelei036的博客 1万+

Zkb

题目大意 区间排序,区间求乘积十进制下的最高位。 做法 先转化询问。 对所有数取log10log10log_{10}。 那么乘法转化为加法。 设取logloglog后和为xxx,答案显然是⌊10x−⌊x⌋⌋⌊10x−⌊x⌋⌋\lfloor10^{x-\lfloor x\rfloor}\rfloor。 现在问题就是,区间排序,区间求和,怎么做? 可以维护若干个排序块,这个可以用平衡树...

不来也不去的一只失忆蝴蝶 859

第三章:ESP32零基础教学 - 3.4 蓝牙通信

本文详细介绍了如何在ESP32上实现经典蓝牙和BLE通信,并提供了代码解释和示例。通过这些示例,你可以轻松地将蓝牙功能集成到你的物联网项目中。无论是经典蓝牙的简单串口通信,还是BLE的灵活服务架构,ESP32都能满足你的需求。

Hi__gril的博客 4018

3.27~3.31训练阶段性小结

3/27 拉格朗日乘数法 解决:多元函数在一定条件下的极值问题 设多元函数f(xi),满足条件g(xi)=0 则乘数函数F(xi,lamda)=f(xi)+lamda*g(xi) 当将xi看成未知数时,+号后面一项为0 对每个xi求偏导,都满足偏导为0 对lamda求偏导,也满足偏导为0(因为lamda偏导等于g(xi),g(xi)=0) 因此可以列出若干方程,解方程得到lamda...

LYD729 424

vmware vsphere 证书过期告警处理方法

vSphere Clinet 管理页面出现“证书告警” ,检查证书未发现现有证书有过期现象

m0_51902127的博客 3637

KF-gins输出结果绘图

KF-gins输出结果绘图

m0_51977577的博客 1107

JZOJ 5600. 【NOI2018模拟3.26】Arg

题目 给出一个长度为 m 的序列 A, 请你求出有多少种 1…n 的排列, 满足 A 是它的一个 LIS. 对于 100% 的数据, 1≤m≤n≤151≤m≤n≤151≤m≤n≤15. 解题思路 对于n≤12n≤12n≤12的,其实可以暴力,将能想到的剪枝想到。 ①由于n≤12n≤12n≤12,可以通过O(n2)O(n2)O(n^2)的暴力将f[i]f[i]f[i]构造出来。很容易得到,...

Luckfort 365

专项1.CCS代码补全与快捷键优化全攻略

本文全面解析CCS开发环境的代码补全功能与快捷键优化技巧,包括内容辅助触发机制、快捷键自定义配置、编码效率提升方法等实用内容。通过详细步骤指导开发者优化CCS配置,实现高效的代码自动补全和个性化快捷键设置,显著提升嵌入式开发效率。

kotlin6android的博客 222

【JZOJ5605】【NOI2018模拟3.26】Arg

题目描述 给出一个长度为 m 的序列 A, 请你求出有多少种 1…n 的排列, 满足 A 是它的一个 LIS. 解题思路 如何求出一个序列的LIS? 对于二分的方法,每次插入一个数,将它放到第一个比它大的数的位置处代替之,最后的长度就是LIS的长度。 考虑模拟这个过程,设f[s],表示当前这n个数的是否加入的状态为s,s是一个三进制数,0表示还没加入,1表示加入了且仍在当前的LIS中,2...

chen1352 373

zemax像差参数Ray Fan/Spot Diagram/MTF/....讲解三

zemax像差参数Ray Fan/Spot Diagram/MTF/....讲解三

weixin_72050316的博客 1384

华为Ascend C算子开发能力认证(中级)(个人记录,有完整代码,已通过认证,仅供参考)

本文介绍了在昇腾NPU环境下实现Sigmoid算子的完整流程。首先需要在华为云ModelArts-Notebook或开发者套件上搭建环境,要求CANN版本为8.0.0.beta1。主要内容包括:1)实现SigmoidCustom算子的kernel侧核函数代码;2)完成host侧Tiling结构体实现;3)支持Float16数据类型。代码实现部分详细展示了核函数计算流程、数据拷贝和牛顿迭代优化方法。最后介绍了编译部署流程,包括环境配置、代码上传、编译执行等步骤,并提供了提交规范说明。该实现通过调用Ascend

qq_73044452的博客 1107

操作序列

牛客网链接 小易有一个长度为n的整数序列,a_1,…,a_n。然后考虑在一个空序列b上进行n次以下操作: 1、将a_i放入b序列的末尾 2、逆置b序列 小易需要你计算输出操作n次之后的b序列。 输入描述: 输入包括两行,第一行包括一个整数n(2 ≤ n ≤ 2*10^5),即序列的长度。 第二行包括n个整数a_i(1 ≤ a_i ≤ 10^9),即序列a中的每个整数,以空格分割。输出

genglintong的博客 1640

前端技能树,面试复习第 54 天—— 手写代码:情景题

前端修罗场提供全网最专业的前端优质文章与社区服务,为应届生,初中级前端工程师提供全面、优质的面试服务、技能提升、职场解惑服务!内容包含:前端面试辅导,前端面试题,前端交流,前端答疑,前端基础知识,前端知识体系,技能树搭建,Javascript,CSS,CSS3,HTML,React,Vue,小程序,前端简历,职业交流,远程工作,英文交流,英文提升,外企,互联网,国企,大厂,牛客面试题,掘金面试题,面经,优质前端文章分享...

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 986

刷题记录

快速排序 快速排序模板 // 快速排序模板 void quick_sort(int q[], int l, int r) { if (l >= r) return; int x = q[l]; // 将中心点设为数组头元素 int i = l - 1; // 设置两个指针,分别指向数组外围外1个单位,因为这个代码是不管怎样,先让指针移动一个位置 int j = r + 1; while (i < j) {

weixin_43666788的博客 1201

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

一个长度为n的整数序列,a_1,...,a_n。然后考虑在一个空序列b上进行n次以下操作: 1、将a_i放入b序列的末尾 2、逆置b序列,输出操作n次的b序列。

public class Test7 {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        while (in.hasNextInt()) {            int n = in.nextInt();            int[] nums = n...

On_my_wayy的博客 7436

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JZOJ5600. 【NOI2018模拟3.26】Arg

Description 给出一个长度为 m 的序列 A, 请你求出有多少种 1…n 的排列, 满足 A 是它的一个 LIS. Input 第一行两个整数 n,m. 接下来一行 m 个整数, 表示 A. Output 一行一个整数表示答案. Sample Input 5 3 1 3 4 Sample Output 11 Data Constraint 对...

lijf2001的博客 510

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

更新中 //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

CDQ分治&整体二分九连测

整体二分好难a CDQ分治&amp;amp;amp;amp;整体二分九连: A[适者] 先来一个不是cdq分治的题(虽然也可以用分治做) 首先先来考虑按照什么顺序来搞掉这些机甲 对于两个相邻的机甲i,j,先i后j的代价是Ai∗Di+(Di+Dj)∗AjAi∗Di+(Di+Dj)∗AjA_i*D_i+(D_i+D_j)*A_j 那么如果i应该比j先消灭就有 Ai∗Di+(Di+Dj)∗Aj&amp;amp;amp;lt;A...

扩展の灰(Extended Ash/Cooevjnz) 757

Jzoj4727 挺进

题意:给你一颗树,要求断掉一条边,使得剩下两个联通快的直径之和最大 一看就是树形DP嘛,c1表示最长边c2次长,f表示父亲部分的最长路 上面做法不讲,我们讲一种比较新奇的方法 假设我们枚举断哪一条边,在lgn时间内求出两个联通快的直径不就行了嘛 怎么做呢,我们发现,可以用树的dfs序来维护,我们用一个线段树维护一个区间内的直径的端点和长度 额,如何合并? 我们假设两块的直径端点分别为x

扩展の灰(Extended Ash/Cooevjnz) 756

Jzoj1020 逆序对统计 ≈ Bzoj3295 动态逆序对

Jzoj1020: Dramatic是在太菜了。最近,他学习了有关逆序对的知识,并且掌握了计算一个序列逆序对个数的高效算法,因此,他兴冲冲的跑去向YY牛炫耀。YY牛对此不屑一顾,并打击Dramatic说:“这是在太小儿科了!”Dramatic很不甘心,于是在他的强烈要求下,YY牛给他出了一道跟逆序对有关的“难题”(显然,对于YY牛来说是简单题)。题目是这样的:YY牛首先给Dramatic一个长

扩展の灰(Extended Ash/Cooevjnz) 718

Jzoj5236 利普希茨

对于一个整数序列A,我们定义f(A)=max{floor(|Ai-Aj|/(j-i))},这里i 给出一个长度为n的序列A,有q此操作 1.修改一个元素的值 2.询问A的一段区间[l,r]组成的序列的f(A[l..r]) 这里有一个很显然的结论,那就是使得f取到最大的i,j一定满足j=i+1 为什么?可以证明一下,以下证明来自jefflyy:函数 " 用归纳法,若(长度为2⋯

扩展の灰(Extended Ash/Cooevjnz) 702

Jzoj5456【NOIP2017提高A组冲刺11.6】奇怪的队列

nodgd的粉丝太多了,每天都会有很多人排队要签名。 今天有n个人排队,每个人的身高都是一个整数,且互不相同。很不巧,nodgd今天去忙别的事情去了,就只好让这些粉丝们明天再来。同时nodgd提出了一个要求,每个人都要记住自己前面与多少个比自己高的人,以便于明天恢复到今天的顺序。 但是,粉丝们或多或少都是有些失望的,失望使她们晕头转向、神魂颠倒,已经分不清楚哪一边是“前面”了,于是她们可能是记

扩展の灰(Extended Ash/Cooevjnz) 586

Jzoj4604 树

子树的问题都是dfs序的工作啦,加上个线段树就ok了 #include #define mid (l+r>>1) struct Edge{ int v,nt; } G[200010]; int h[100010],cnt=0,clk=0,l[100010],r[100010]; int s[400040],n,m,d[100010]; char c[5]; void adj(int x,in

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值