【Gym 102059A】Coloring Roads(树链剖分+单调栈)

rag综述——RAG技术发展流程、最新技术挑战与系统级优化 RAG技术发展综述:本文系统梳理了检索增强生成(RAG)技术的演进历程,从2017年开放域问答中的早期探索,到2020年正式提出RAG架构并与大模型深度融合,再到2025年向系统化、可信化和智能体化发展。当前RAG面临检索可靠性、系统效率和生成可信度三大核心挑战,解决方案包括领域自适应训练、强化语义编码、迭代检索策略等优化方向。未来RAG将向GraphRAG、SafeRAG等方向发展,从单纯性能优化转向构建可控、可审计的语言系统框架,成为高可靠大模型应用的基础设施。 阅读详情

https://codeforc.es/gym/102059/problem/A

题意

给出一棵树。
询问u, c, m: 将结点u到根节点路径上的边都染色成c,询问染色边数为m的颜色有多少种。

题解

每次都是从一个结点到根,所以可以对这颗树进行树链剖分(heavy-light decompose)

维护
has[col]代表颜色col有多少条边。
cnt[m]边数为m的颜色有多少个。
dfn[v]:结点v的dfs编号。
对于每条链的头维护一个dfn的单调递增栈。
栈中的内容为(dfn,c),从dfn处用颜色c染色到链头。

对于一个染色操作,模拟树链跑到根结点的过程。

如果当前的结点dfn大于栈头的dfn,那就要将栈头的这个颜色的影响去掉,并弹出。

如果当前的结点的dfn小于栈头的dfn,那就将当前dfn到链头的之前颜色的影响去掉。

将dfn到链头染色为c,然后加入单调栈中。

代码

官方std

#include <bits/stdc++.h>
using namespace std;
using lint = long long;
using pi = pair<int, int>;
const int MAXN = 200005;

int n, c, q, dfn[MAXN], chn[MAXN], sz[MAXN], par[MAXN], piv;
vector<int> gph[MAXN];

void dfs0(int x){
	sz[x] = 1;
	for(auto &i : gph[x]){
		gph[i].erase(find(gph[i].begin(), gph[i].end(), x));
		par[i] = x;
		dfs0(i);
		sz[x] += sz[i];
	}
}

void dfs1(int x){
	dfn[x] = ++piv;
	if(gph[x].empty()) return;
	chn[gph[x][0]] = chn[x];
	dfs1(gph[x][0]);
	for(int i=1; i<gph[x].size(); i++){
		chn[gph[x][i]] = gph[x][i];
		dfs1(gph[x][i]);
	}
}

int has[MAXN], cnt[MAXN];
vector<pi> stk[MAXN];

void change_color(int col, int c){
	cnt[has[col]]--;
	has[col] += c;
	cnt[has[col]]++;
}

int main(){
	scanf("%d %d %d",&n,&c,&q);
	cnt[0] = c;
	for(int i=0; i<n-1; i++){
		int s, e;
		scanf("%d %d",&s,&e);
		gph[s].emplace_back(e);
		gph[e].emplace_back(s);
	}
	dfs0(1);
	chn[1] = 1;
	for(int i=1; i<=n; i++){
		sort(gph[i].begin(), gph[i].end(), [&](const int &a, const int &b){
			return sz[a] > sz[b]; 
		});
	}
	dfs1(1);
	while(q--){
		int v, c;
		scanf("%d %d",&v,&c);
		while(v){
		    int ch = chn[v];
			int prv = dfn[ch] - 1;
			while(!stk[ch].empty() && stk[ch].back().first <= dfn[v]){
				auto val = stk[ch].back();
				stk[ch].pop_back();
				change_color(val.second, -(val.first - prv));
				prv = val.first;
			}
			if(!stk[ch].empty()){
				auto val = stk[ch].back();
				change_color(val.second, -(dfn[v] - prv));
			}
			change_color(c, dfn[v] - dfn[ch] + 1);
			stk[ch].emplace_back(dfn[v], c);
			v = par[ch];
		}
		int m;
		scanf("%d",&m);
		printf("%d\n", cnt[m] - (has[c] == m) + (has[c] == m + 1));
	}
}

Nginx/OpenResty目录穿越漏洞复现 Nginx/OpenResty目录穿越漏洞复现 漏洞背景: 2020年03月18日, 360CERT监测发现 openwall oss-security 邮件组披露了两枚漏洞。在特定配置下 nginx/openresty 存在 内存泄漏漏洞/目录穿越漏洞。 Nginx 是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。 OpenResty是一个基于nginx的Web平台,它对nginx增加LuaJIT引擎使其运行Lua脚本。 影响版本: nginx <= v1.17 阅读详情

相关推荐

手把手教你用ADS优化肖特基二极管检波电路(附RC参数避坑指南)

本文详细介绍了如何使用ADS软件优化肖特基二极管检波电路,包括RC参数设置、常见失真问题分析与解决方案。通过实战案例和参数优化技巧,帮助射频工程师避免设计陷阱,提升电路性能。特别附有RC参数避坑指南,适用于调幅解调、功率检测等应用场景。

m2n3o4p5的博客 196

codeforces gym102059 Timsort 思维

https://codeforces.com/gym/102059/problem/L 题目大意:给定一个包含nnn个元素的序列,qqq次询问,每次询问给一个值disdisdis,然后把原序列分段:每次分段从当前下标开始(初始为111),选择最长的且连续的单调非降序列或者单调下降序列,设其长度为lenlenlen,若len>=dislen>=dislen>=dis,则这一段的长度...

xiji333的博客 352

【Unity动画系统】详解Root Motion动画在Unity中的应用(一)

什么时候勾选Bake into pose,当不希望动画带动游戏对象旋转时。在旋转的动画中一般是不用勾选的,因为就需要用它来带动我们的角色对象旋转。但在比如前进、后退、待机等动画来说,我们就可以勾选这里,以避免因动画文件本身的瑕疵而给我们带来的旋转。loop match:代表了这个动画在角度上的吻合度。如果这个动画在播放中转角过大,那么就会显示红色,告诉我们如果勾选bake into pose,则会带来不好的效果。

weixin_60154963的博客 6803

Open cup 2019 Korea Gym 102059A Coloring Roads

树链剖分。 先做轻重链剖分后,维护每一条链上的信息。初始树为空。 以每一条重链的头top为基点,建立单调栈。栈内维护,从大到小,该链上修改的深度,以及对应颜色。 每一次修改,如果栈内有比他浅的点,即,若我们把当前的颜色涂上,会使得之前的颜色覆盖掉,故我们清除掉该颜色。不断弹栈,直到为空或者栈顶比他深度深。若栈顶比他深,优先修改,当前的颜色的深度,即,把深度更深的颜色,给修改为空,我们才能重新计算并且涂上颜色。 然后每一个跳top的father的时候,我们单独把所有的,这样的top-father拿出来计算即可

weixin_44019404的博客 262

ABB机器人C#二次开发实战:从通信打通到数据读写的落地指南(附完整工程)

最近在做自动化产线升级项目时,遇到一个核心需求:用C#上位机实时读取ABB机器人的关节角度、IO信号,同时下发运动指令和参数配置。翻遍全网,要么是Robot Studio的基础操作教程,要么是C++/VC++的老旧案例,C#相关的实操内容要么只给片段代码,要么跳过通信配置、权限设置等关键步骤,导致刚上手时踩了无数坑——连接超时、数据读不到、写入无响应,甚至误触发机器人安全保护。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1391

Vue3 - Element Plus 表格组件 el-table “表格行数据中又嵌套了二维对象数组“,按平级循环渲染(嵌套数组视为同级行数据), 对嵌套的数组循环展示为表格,智能合并行或列详细教程

vue3,nuxt3,element-plus,table表格组件,el-table,vue3element表格组件,数据中有二维数组怎么遍历循环显示,表格数据带二级数组怎么循环渲染显示,表格数据中存在一个数组要怎么才能显示到表格,el-table表格合并详细教程示例,table表格如果对象里面还有对象数组那该怎么去渲染,平常都是数组中一个对象渲染成一行,每行中还有嵌套数组怎么办,每个行数据下还有一个数组怎么显示,怎么把表格相同的数据合并为一行,合并上下两行相同数据单元格,合并行或列如果遇到相同单元格就合

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

【GYM 102059】2018-2019 XIX Open Cup, Grand Prix of Korea

vp了一场gym,我又开心地划水了。 A. Coloring Roads 题意:给定一棵树,树边一开始都是无色的,每次操作可以把一个点到根的路径染成某个颜色,每次询问当前树上出现过某个次数的颜色种数。 题解:看到操作与$Access$类似,考虑使用$lct$解决。由于一条重链的颜色一定是相同的,也就是一棵$splay$中的颜色都是相同的,所以$Access$时每次把整棵$splay$修改掉算...

weixin_30843605的博客 494

[cshell]个性化配置你的cshrc/tcshrc

本文介绍了csh/tcsh shell的配置优化方法,主要包括:1. 配置文件管理(全局和个人配置);2. 按键绑定设置(解决远程登录按键问题);3. 提示符个性化(包含颜色配置方案);4. 环境变量设置(如LSCOLORS、CLICOLOR等);5. 安全防护措施(防误删、防覆盖等);6. 实用alias命令集(简化操作、提高效率)。文章提供了详细的配置示例,并建议通过man tcsh获取更多帮助信息。这些配置能显著提升shell使用体验和工作效率。

元直的博客 6111

Gym102059A Coloring Roads

Gym102059A Coloring Roads 题意:\(n\)点的树,一开始每条边都没有颜色,有\(Q\)个操作,每次将从\(u\)到\(1\)路径上的所有边全部染色为颜色\(c\),之后询问整棵树上,出现了\(m\)次的颜色有多少种。数据范围均是\(200000\)。 做法:询问的东西十分奇怪没有办法下手,于是注意到每次的修改都是染色,而且染色的路径也很特殊。于是我们猜测在这种...

dehukun0483的博客 211

[QMT和ptrade量化交易小白入门]-120、卖出深度虚值期权的三重过滤策略

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 281

Python爬虫实战:抓取CVE安全漏洞数据库

在网络安全领域,CVE(Common Vulnerabilities and Exposures)是一个非常重要的安全漏洞字典,它为每个安全漏洞提供了唯一的标识符。安全研究人员、开发人员和系统管理员都需要及时了解最新的CVE信息,以便采取相应的防护措施。本文将详细介绍如何使用Python爬虫技术从专业CVE网站抓取漏洞数据,并构建一个完整的CVE信息采集系统。本文详细介绍了如何使用Python爬虫技术从专业CVE网站抓取安全漏洞数据。多种爬虫技术反爬虫策略:User-Agent轮换、代理IP、请求延迟。

2201_76125261的博客 367

A - Coloring Roads Gym - 102059A

用lct中的access操作来维护链。因为每一次更新到根节点所以不用split操作。 注意下传标记和统计的时候影响。 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<cstdlib> #include<climits> #include<stack> #include<vector> #includ

weixin_44019404的博客 203

Android 13.0 USB 麦克风音频采集优化:解决延时、杂音和无声问题

摘要:本文针对Android智能会议设备中USB麦克风存在的三大问题(录音延时、概率性杂音和无声)进行了深入分析和优化。通过预填充静音帧降低90%启动延时,分离采集/播放互斥锁消除杂音,采用持久化配置解决无声问题,并新增状态通知机制提升用户体验。优化后测试显示:录音延时从1200-2000ms降至100-200ms,故障率降至0%,CPU占用降低30%。该方案适用于各类USB音频设备和视频会议系统,为低延时音频采集提供了可靠解决方案。

ip0417的博客 228

Histogram Sequence Gym - 102059J

题目传送门:[https://codeforces.com/gym/102059/problem/J](https://codeforces.com/gym/102059/problem/J) 题意: 给定一个直方图,一个长度为n的序列表示每个柱子的高度,有一个数组A记录着直方图中每个不同子矩形的面积,A数组是按从小到大排序好的,给你L和R,让你输出A[L]到A[R]。思路:单调栈+二...

weixin_30274627的博客 218

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Gym - 102059H 思维题

题目链接:https://codeforces.com/gym/102059/problem/H 思路:采取倒推的手段,我们根据题目给出的条件,可以知道(x+y)/gcd(x,y)<1000,那么x/gcd(x,y)+y/gcd(x,y)<1000,两个互质的数相加小于1000,那么这两个数一定都小于1000且互质,我们假设x/gcd(x,y)=i,y/gcd(x,y)=j,那么题目就转换成了在1000内找两个互质的数,并且在给定的范围内满足a<=igcd(x,y)<=b且c<

数据结构实验之栈与队列十一:refresh的停车场 235

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Coloring Dominoes

问题 E: Coloring Dominoes 时间限制: 1 Sec内存限制: 128 MB提交: 279解决: 95[提交] [状态] [讨论版] [命题人:] 题目描述 We have a board with a 2×N grid. Snuke covered the board with N dominoes without overlaps. Here, a domi...

weixin_30699741的博客 195

android 蓝牙通讯demo

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

gym 102059 C.Dstorv题解

gym 102059 C.Dstorv题解 首先可以发现最终一定是一个分界点i,(i<n)i,(i<n)i,(i<n)满足下标≤i的中留下AAA个全部向左,其余的留下BBB个全部向右。特殊的iii是那AAA中的一个,i+1i+1i+1是那BBB中的一个。 我们可以想到dpdpdp状态,fi,jf_{i,j}fi,j​表示考虑第iii位,右边有jjj个向左过来。 转移: (ai=′H′)(a_i='H')(ai​=′H′),fi−1,j+1→fi,jf_{i-1,j+1}\rightarr

qq_42925924的博客 318

gym 102059A 树链剖分后odt维护区间

题意 一棵树 多次修改,每次修改一个点到根的所有边的颜色,并询问现在有哪些颜色染了恰好$m$条边 题解: 稍加思考可以知道,从某个点到根节点的颜色数,均摊复杂度很低,因此,可以考虑珂朵莉树维护重链剖分 这里也记录一下珂朵莉树的代码 代码: #include<bits/stdc++.h> #define endl '\n' #define ll long long ...

weixin_30873847的博客 185

Dumae Gym - 102058A (贪心)

题目 https://cn.vjudge.net/problem/Gym-102058A 题意 让你构造一数组 满足给定的每个数的区间 和 相对关系 思路 贪心 先拓扑判环和找出拓扑序 然后找出每个点的真正的区间 即对于给定的 u->v 那么要满足ur <= vl-1 和 vl >= ul+1 (按拓扑序顺序缩区间) 然后依次贪心求每个位置的数 即对与满足当前位...

七九河开的博客 429

Gym 102059 B Dev, Please Add This! 题解

首先可以根据题目信息建立有向图GGG,如果存在边u→vu\rightarrow vu→v则点uuu可以通过一步到达vvv。 然后我们在根据边建立一个有向图G′G\primeG′ 其中边u→vu\rightarrow vu→v表示边走完uuu这条边可以立刻走vvv这条边。 然后我们将G′G\primeG′跑一遍SCCSCCSCC。然后预处理出每一个SCCSCCSCC能取到的星星集合SSS,这个可以bitsetbitsetbitset搞。 这样我们暴力跑一边,看能不能拿到所有星星是会TLETLETLE的。我这题

qq_42925924的博客 687

【Gym-102059 G】Fascination Street【亏欠型DP思想】

题意: 一条街上一共 NNN 个点,需要在某些点上建路灯,使得整条街被照亮,一个路灯可以照亮左右两个点,每个点都有一个建路灯的花费。现在你还有 KKK 次机会,可以交换两个路灯的建造费用,求使得整条街被照亮的最小花费。(1≤N≤250000,0≤k≤9)(1\leq N\leq 250000,0\leq k\leq 9)(1≤N≤250000,0≤k≤9) 思路: 如果这道题没有 KKK 次交换...

lucius-liu.cn 635

Gym 102536 B C.U.P.S. —— 想法,模拟

This way 题意: 给你一个01串 长n,你有n次机会,每次flip其中恰好m个位置(也就是异或一个01串,恰好有m个1),如果原来的串变成全1了就结束,让你输出一个方案。 题解: 我。。懒得在敲一遍了,反正是队友写的代码,我就直接都复制粘贴了,为什么要写博客呢,,是因为看上去好像做了题目的样子,不写白不写 思路对了就行了,至于代码应该顺着写下去就好了 #include<bits...

天翼之城的博客 383

2018.09.22 atcoder Snuke's Coloring 2(线段树+单调栈)

传送门 就是给出一个矩形,上面有一些点,让你找出一个周长最大的矩形,满足没有一个点在矩形中。 这个题很有意思。 考虑到答案一定会穿过中线。 于是我们可以把点分到中线两边。 先想想暴力如何解决。 显然就是枚举矩形的上下边的坐标然后求两边的最大宽度。 用单调栈搞一下这样的效率是O(n2)O(n^2)O(n2)的。 考虑继续优化。 干脆我们只枚举一条边,另...

weixin_30553837的博客 198

HYSBZ 2243 染色(树链剖分+线段树)

2243: [SDOI2011]染色Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 9954  Solved: 3773[Submit][Status][Discuss]Description给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同...

记录一些思考的过程。 405

Gym - 101652W I - Grid Coloring (dp)

原题地址:http://codeforces.com/gym/101652/attachments 参考博客:https://blog.youkuaiyun.com/Shili_Xu/article/details/79701749 #include &lt;bits/stdc++.h&gt; #define eps 1e-8 #define INF 0x3f3f3f3f #define PI acos...

yiqzq的博客 650

codeforces gym 102058——————HPU ICPC国庆训练1

题目来源:https://codeforces.com/gym/102058 目录E. FractionsL. Repetitive PalindromeM. Coke Challenge E. Fractions 官方题解: #include<bits/stdc++.h> using namespace std; typedef long long ll; ll A,B,C,...

鸿杰 的博客 722
上一篇: 【Gym 102059D】 Dumae(拓扑排序+区间分配)
下一篇: 【2019西安邀请赛J】And And And(树链贡献)
Link_Ray
博客等级 码龄9年 44粉丝 156原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值