Jzoj4846 行走

从412到200:一步步拆解瑞数6代jsvmp的cookie生成与验证流程 本文深入解析瑞数6代JSVMP的动态安全防护机制,详细拆解从412到200状态的cookie生成与验证流程。通过剖析JSVMP虚拟机核心机制、动态元数据解析及环境检测绕过策略,为逆向工程师提供实用的技术解决方案,帮助突破瑞数6代的高级防御体系。 阅读详情

这个题一看就是树剖的模型

但是有一些问题,比如权值的乘机太大了,可能会爆long long

一种解决的方法:我们考虑到,v<=10^18 所以最多经过60条大于1的边

对于权值为1的边我们可以用一个并查集合并(注意只会改小)

但是这种方法不好想,我们还是考虑树剖

若权值>=10^18 我们可以直接将其变为一个特殊的值(例如-1)表示“足够大”,这种情况直接输出0

若不够,我们有一个结论: [[a/b]/c] = [a/bc] 这个是显然的,所以可以将路径上的权值乘机求出并直接得到答案

CODE比较长但是比较好想(mul()这里做乘法的时候会爆long long ,一种方法是用除法,但是效率比较低所以用了int128)

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 100010
#define mid (l+r>>1) 
#define LL __int128
#define M 1000000000000000000ll 
using namespace std;
struct Edge{ int v,nt; LL c; } G[N<<1];
int h[N],sz[N],son[N],d[N],f[N],rk[N];
int top[N],b[N],n,m,cnt=0,clk=0; LL w[N<<2],val[N]; long long C,D;
LL mul(LL x,LL y){ return ~x&&~y?(x*y>=M?-1:x*y):-1; }
inline void adj(int x,int y,LL c){
	G[++cnt]=(Edge){y,h[x],c}; h[x]=cnt;
}
void dfs(int x,int p){
	f[x]=p; sz[x]=1; d[x]=d[p]+1;
	for(int v,i=h[x];i;i=G[i].nt)
		if((v=G[i].v)!=p){
			dfs(v,x); val[v]=G[i].c;
			sz[x]+=sz[v];
			if(sz[v]>sz[son[x]]) son[x]=v;
		}
}
void dijk(int x,int p){
	b[x]=++clk; rk[clk]=x; top[x]=p;
	if(son[x]) dijk(son[x],p);
	for(int v,i=h[x];i;i=G[i].nt)
		if((v=G[i].v)!=f[x] && v!=son[x]) dijk(v,v);
}
void build(int l,int r,int x){
	if(l==r){ w[x]=val[rk[l]]; return; }
	build(l,mid,x<<1);
	build(mid+1,r,x<<1|1);
	w[x]=mul(w[x<<1],w[x<<1|1]); 
}
void update(int l,int r,int x,int p,LL k){
	if(l==r){ w[x]=k; return; }
	if(p<=mid) update(l,mid,x<<1,p,k); 
	  else update(mid+1,r,x<<1|1,p,k);
	w[x]=mul(w[x<<1],w[x<<1|1]);
}
LL query(int l,int r,int x,int L,int R){
	if(L<=l && r<=R) return w[x];
	LL ans=1;
	if(L<=mid) ans=mul(ans,query(l,mid,x<<1,L,R));
	if(mid<R) ans=mul(ans,query(mid+1,r,x<<1|1,L,R));
	return ans;
}
LL gLca(int x,int y){
	LL A=1;
	for(;top[x]!=top[y]&&~A;y=f[top[y]]){
		if(d[top[x]]>d[top[y]]) swap(x,y);
		A=mul(A,query(1,n,1,b[top[y]],b[y]));
	}
	if(d[x]>d[y]) swap(x,y);
	A=mul(A,query(1,n,1,b[x]+1,b[y]));
	return A;
}
int main(){
	freopen("walk.in","r",stdin);
	freopen("walk.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int x,y,i=1;i<n;++i){
		scanf("%d%d%lld",&x,&y,&C);
		adj(x,y,C); adj(y,x,C);
	}
	dfs(1,0); dijk(1,1); build(1,n,1);
	for(int o,x,y;m--;){
		scanf("%d",&o);
		if(o==1){
			scanf("%d%d%lld",&x,&y,&C);
			D=gLca(x,y);
			if(D==-1 || D>C) puts("0");
			else printf("%lld\n",C/D);
		} else {
			scanf("%d%lld",&x,&C);
			y=G[x<<1].v; x=G[(x<<1)-1].v;
			if(f[y]==x) x=y;
			update(1,n,1,b[x],C);
		}
	}
}

Codex CLI 手机号验证失败?5 种接码平台实测对比与绕过地区限制的 3 步操作 揭示 Codex CLI 手机号验证失败的真实原因在于上下文污染而非网络问题,分析其通过 ASN、Accept-Language 和 TLS SNI 三重加权风控的机制,并实测对比 5 种接码平台在 DNS 解析路径、ASN 干净度和复用间隔上的差异,提出剥离浏览器指纹、固化 TLS SNI、隔离 阅读详情

相关推荐

Ubuntu20.04下 嵌入式 Qt 开发环境的搭建(适用于Tiny6410)

Ubuntu 下 Tiny6410 嵌入式 Qt 开发环境的搭建 目录导航Ubuntu 下 Tiny6410 嵌入式 Qt 开发环境的搭建前言1.安装前的准备工作2.安装交叉编译器 前言 这篇文章,主要是基于 Ubuntu19.10版本而写,写此文的初衷,是为了自己使用,因为最近正在以Tiny6410板子做实训,所以也是初学者一枚,只能保证我遇上的问题统统能够解决掉,至于一些没遇上的,欢迎各位看客给我留言,大家一起讨论,一起解决。 注:本文会持续更新 1.安装前的准备工作 环境要求 Linux系统:U

繁臻的小窝 4893

JZOJ4846【NOIP2016提高A组集训第5场11.2】行走

DescriptionData Constraint对于70%的数据保证 n <= 1000 对于100%的数据保证 n,q <= 10^5,c_i,v_i <= 10^{18} 保证每次修改后的边权小于等于原来的边权且不会小于1Solution这是一道树链剖分的模板题。只要将所有书取个对数,计算一下即可。代码#include<iostream> #include<cmath> #include

dance in th dark的博客 592

Deepseek:物理神经网络PINN入门教程

物理信息网络(Physics-Informed Neural Networks, PINN)是一种将物理定律(如偏微分方程、守恒定律等)嵌入神经网络训练过程的深度学习方法。其核心思想是通过神经网络同时拟合观测数据并满足物理约束,从而解决传统数值方法难以处理的高维、噪声数据或复杂边界条件问题。

金石软件 9297

【jzoj4846】【行走】【树链剖分】【线段树】

题目大意解题思路由于下取整不影响,用树链剖分维护边权积,超过最大值赋为最大值,用线段树单点修改区间查询。code#include<set> #include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define LL long long #define LD double #d

inklutcuah’s blog 486

京东礼品卡绑定技术解析与安全验证实践

电商系统开发中,卡券绑定是常见的业务场景,其核心在于安全验证机制的设计与实现。从技术原理来看,现代验证系统通常采用多层防护,包括前端数据加密、行为验证(如滑块验证)和风控校验等关键技术。这些机制通过设备指纹采集、请求签名验证等方式,有效防范自动化攻击。在实际工程实践中,开发者需要特别关注接口鉴权流程,正确处理安全令牌(如st/vt令牌)和请求签名。京东礼品卡绑定作为典型案例,展示了如何平衡用户体验与系统安全,其验证系统会持续升级,需要开发者跟踪接口变化。对于企业级应用,建议采用混合模式技术方案,结合浏览器自

weixin_28607671的博客 234

适航规章、标准,书籍资料下载汇总(更新中)

以下是一些收集到的适航相关的资料,分享给大家。(如果没有你想要的资料,请留言,等找到会及时更新!

qq_41854911的博客 2541

[jzoj4197]兔子走路

第一次做 NOI 难度 吓得我都不敢放传送门 (っ °Д °;)っ Solution可以发现,兔子间互相独立。因而,结果最多只和两只兔子有关。正难则反 考虑不合法的情况 可以用记忆化搜索或一类算法 处理出和某个位置不能同时出现的位置 最后注意避免重复即可 数据水到可以

FarmerJohn 601

YOLOv11改进 | Conv篇 | 2024最新轻量化自适应提取模块LAE助力边缘设备部署计算(附代码 + 修改教程 + 运行教程)

本文给大家带来的一个改进机制是最新由LSM-YOLO提出的轻量化自适应特征提取(Lightweight Adaptive Extraction, LAE)模块,其是LSM-YOLO模型中的关键模块,旨在进行多尺度特征提取,同时降低计算成本。LAE通过以下方式实现更有效的特征提取:多尺度特征提取、自适应特征提取。LAE模块可以在不增加额外参数的情况下提高了模型对ROI区域的检测性能。​欢迎大家订阅我的专栏一起学习YOLO!YOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备目录一、本文介绍。

Snu77的博客 4051

抓猫

题目大意 在某座垃圾堆成山的城市里,有很多流浪猫。恰好,他们把你一个Oler认成了动物学家,了解这些小猫咪的活动轨迹,问你最少要多少捕兽夹才能将猫抓住。 注:这是一个n*m的矩阵,表示这座城市,猫在这座城里浪来浪去,用"W"表示往西,"E”表示往东,"N"表示往北,"S"表示往南。 解题思路 好吧,看到这道题,我就高兴了,暴力模拟啊。 其实这道题想法很简单,但实现起来却十分复杂,一不小心

SportRiver的博客 563

微信小程序 - 最新获取用户昵称 / 头像(wx.getUserProfile 接口被废弃后的代替方案)详细教程,2022 年之后的所有微信小程序,获取用户信息最新详细教程,附带示例源代码

微信小程序wx.getUserProfile接口废了用什么代替,微信小程序wx.getUserProfile不能用了怎么办,wx.getUserProfile失效有什么替代方案吗,微信新规定头像昵称填写最新教程,目前微信小程序最新获取用户头像昵称教程,微信小程序用户头像昵称获取规则调整公告,2022改版后的微信小程序如何获取用户头像和昵称信息,微信小程序官方废弃getUserProfile后如何实现获取用户信息,微信小程序wx.getUserProfile接口返回了默认头像昵称,微信小程序获取用户信息不

🏆 前端领域优质创作者 2万+

YOLO26涨点改进 | 细节涨点篇 | 源自SCI一区 | YOLO26引入HWD小波下采样模块,而不会显著增加计算开销,(适合小目标分割任务、小目标检测任务)

本文提出了一种基于Haar小波变换的下采样模块HWD,用于改进YOLO26目标检测性能。HWD模块通过小波变换降低特征图分辨率,同时将空间信息编码到通道维度,有效保留了关键信息。相比传统下采样方法,HWD能显著减少信息不确定性,提升小目标检测精度。实验表明,该模块可无缝集成到CNN架构中,不增加计算开销。文章详细介绍了HWD的实现原理、代码结构以及在YOLO26中的集成方法,并提供了两种改进版yaml配置文件。该创新模块已在多种数据集上验证有效,特别适合语义分割和目标检测任务。

Ai缝合怪、助力小伙伴高效发论文 399

jzoj 6302. 提高组

Description 详见OJ Solution 对于\(limit1,2\)就是使序列\(1~n\)的排列。 对于\(limit3\),我们可以将其看做是两个最长上升子序列正好覆盖整个序列,证明显然。 我们可以做一个前缀\(max\)序列。这样对于\(max[i]\),保证\(max[i]>=i\)。 而且保证\(max[n]=n\)。 如此,我们可以将问题转化成图。 那么我们可以将问题...

Larry1118的博客 235

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【JZOJ4846】【NOIP2016提高A组集训第5场11.2】行走

题目描述数据范围对于70%的数据保证 n <= 1000 对于100%的数据保证 n,q <= 10^5,c_i,v_i <= 10^{18} 保证每次修改后的边权小于等于原来的边权且不会小于1解法由于c最大只有2642^{64},所以整除大于1的权值最多除64次,所以使用利用并查集将权值为1的边合并,然后每次询问只需寻找64条权值大于1的边即可。树链剖分也是可以的。代码#include<ios

=w= 398

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【JZOJ A组】斩杀计划

Description 众所周知,小J和小G是死对头,一天小G带领一群小弟找到了小J。 问题描述 小G有n个小弟,第i个小弟有ai点攻击力,小G有m点血量。 小J在小G找小第的时间里去找小Z学到了膜法,他在大战前配置了三种魔法药水 1:复用型药水:花费1法力值,选择小G的攻击力小于等于2的一个小弟让他跟随自己(变为自己的小弟并且攻击力和属于小G时一样) 2:猎人药水:花费4法力值,选择小G的攻击力...

Brute♂force 464

ACdream 1424 Diversion(树链剖分+线段树)

传送门:ACdream 1424 Diversion 题意:给一个边双联通图,n个点m条边,其中n-1条边构成树,点1为树根(值为1,以下称为黑边),其他m-n+1条边为普通边(值为0,以下称为白边)。。要求最多去掉一条黑边和一条白边使图不联通,求方案数。 思路:在树上把连接白边的两个节点进行路径染色,重复染色的边说明该边不止与一条白边相连,去掉该边和与之相连的其中一条白边图也依旧

obsolescence的博客 379

6353. 【NOIP2019模拟】给(ca)

题目描述 题解 虫合 由于前几天被教♂育了,所以大力找了一发规律 先把m-1,设f[i][j]表示m≤i,有j个叶子节点的答案 转移显然,也显然是O(n^3)的 把f打出来后长这样: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 1 1 2 5 13 34 89 23...

Alex_2016的博客 251

抓猫_KEY

抓猫题面如下:【 题目描述】 流浪猫布满城市的每一个角落, 非常影响市容市貌, 作为城市聘请的抓猫者, 你有一 种捕捉器, 一定可以捕捉到所有走到里面的猫, 更加幸运的是你有一个非常厉害的动物心理 学家, 他可以预测猫在不同位置的行走方向(共有东、 西、 南、 北四种情况) 为了节约经费, 问你最少需要多少个捕捉器才能把所有的猫都抓住。 【 输入格式】 输入第一行包含两个整数 N 和 M

Cptraser 1134

c11_3.老鼠在菜园出口处遇见一只猫"¤",吓得往回逃,沿着阶梯状路线逃到入口处。

//3.老鼠在菜园出口处遇见一只猫"¤",吓得往回逃,沿着阶梯状路线逃到入口处。 #include #include #include #include void gotoxy(int x, int y); void main() { //菜园 8行 26列 起点(2.1) char garden[10][31]={ {"┏━━━━━━━━━━━━━┓"},

chinnmt的专栏 798

NOIP 2000 方格取数 解题报告

  双线程动态规划,f[i][j][k]代表移动i次,两个点的横坐标分别是j, k,转移方程如下:   f[i][j][k] = max(f[i - 1][j][k],f[i - 1][j][k - 1],f[i - 1][j - 1][k],f[i - 1][j - 1][k - 1])   代码如下: #include <stdio.h> #includ...

aiechu6301的博客 148

[JZOJ5612]【NOI2018模拟3.29】第三题(move)

Description你在二维平面上行走,要从(0,0)走到(n,m) 你有三种走法,假设你当前在(x,y),你可以走到(x+1,y+1),(x+1,y-1)或者(x+2,y)求方案数模100003 n,m<=1e18Solution将坐标系逆时针旋转45度 原来的问题就变成在二维平面上行走,要从(0,0)(0,0)走到(n+m2,n−m2)({n+m\over 2},{n-m\over 2}

Never give in. 427

非常厉害的一个博客

http://kj.c-lstc.com/kj/luoshangping/blog/?action=show&id=12&page=1 转载于:https://blog.51cto.com/215363/212820

weixin_33816611的博客 152

【状压DP】剑之修炼(jzoj 2130)

剑之修炼 jzoj 2130 题目大意: 在一个位置上有一个人,同时还有N(N<=10)个怪物,这个人会不停地释放技能,技能可以瞬间杀死周围8个格子上的怪物,行走速度是每个单位时间走一个单位距离,现在问这个人最快要多久才能杀死所有怪物(还要输出路径)

ssllyf的博客 452

老鼠,猫,主人的问题(委托学习系列一)

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DelegateDEMO { //面试试题 老鼠,猫,主人的问题 //由老鼠的活动引起老猫的醒,然后老猫在捉老鼠的时候,把主人吵醒 //要保持类与类的低耦合,于...

weixin_30267785的博客 164
上一篇: Jzoj4845 寻找
下一篇: Jzoj4876 基因突变(红警系列)
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值