用html制作网站代码/智能营销系统

用html制作网站代码,智能营销系统,淘宝刷单网站建设,网页翻译浏览器C \color{green}{\texttt{C}} C [Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription] 给定一棵以 1 1 1 为根的树,记 a i a_{i} ai​ 表示节点 i i i 的权值, lca( i , j ) \text{lca(}i,j) lca(i,j) 表示节…

C \color{green}{\texttt{C}} C

[Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription]

给定一棵以 1 1 1 为根的树,记 a i a_{i} ai 表示节点 i i i 的权值, lca( i , j ) \text{lca(}i,j) lca(i,j) 表示节点 i i i j j j 的最近公共祖先,求下面矩阵的行列式,对 998244353 998244353 998244353 取模。

A = ( a lca(1,1) a lca(1,2) … a lca(1,n) a lca(2,1) a lca(2,2) … a lca(2,n) … … a lca(n,1) … … a lca(n,n) ) A = \left ( \begin{matrix} a_{\text{lca(1,1)}} & a_{\text{lca(1,2)}} & \dots & a_{\text{lca(1,n)}} \\ a_{\text{lca(2,1)}} & a_{\text{lca(2,2)}} & \dots & a_{\text{lca(2,n)}} \\ & \dots & \dots & \\ a_{\text{lca(n,1)}} & \dots & \dots & a_{\text{lca(n,n)}}\end{matrix} \right ) A= alca(1,1)alca(2,1)alca(n,1)alca(1,2)alca(2,2)alca(1,n)alca(2,n)alca(n,n)

[Analysis] \color{blue}{\texttt{[Analysis]}} [Analysis]

线代题。

随便取出一个叶子节点 u u u,其实有 lca(v,u) = lca(v,fa(u)) \text{lca(v,u)}=\text{lca(v,fa(u))} lca(v,u)=lca(v,fa(u)),其中 v ≠ u , fa(u) v \not = u, \text{fa(u)} v=u,fa(u) 表示 u u u 的父亲。

不妨设 u = n u=n u=n

det A = ∣ a lca(1,1) a lca(1,2) … a lca(1,n) a lca(2,1) a lca(2,2) … a lca(2,n) … … a lca(n,1) … … a lca(n,n) ∣ = ∣ a lca(1,1) a lca(1,2) … a lca(1,n) − a lca(1,fa(n)) a lca(2,1) a lca(2,2) … a lca(2,n) − a lca(2,fa(n)) … … a lca(n,1) … … a lca(n,n) − a lca(n,fa(n)) ∣ = ∣ a lca(1,1) a lca(1,2) … 0 a lca(2,1) a lca(2,2) … 0 … … a lca(n,1) … … a n − a fa(n) ∣ \text{det} A= \left | \begin{matrix} a_{\text{lca(1,1)}} & a_{\text{lca(1,2)}} & \dots & a_{\text{lca(1,n)}} \\ a_{\text{lca(2,1)}} & a_{\text{lca(2,2)}} & \dots & a_{\text{lca(2,n)}} \\ & \dots & \dots & \\ a_{\text{lca(n,1)}} & \dots & \dots & a_{\text{lca(n,n)}}\end{matrix} \right | = \left | \begin{matrix} a_{\text{lca(1,1)}} & a_{\text{lca(1,2)}} & \dots & a_{\text{lca(1,n)}}-a_{\text{lca(1,fa(n))}} \\ a_{\text{lca(2,1)}} & a_{\text{lca(2,2)}} & \dots & a_{\text{lca(2,n)}}-a_{\text{lca(2,fa(n))}} \\ & \dots & \dots & \\ a_{\text{lca(n,1)}} & \dots & \dots & a_{\text{lca(n,n)}}-a_{\text{lca(n,fa(n))}}\end{matrix} \right | = \left | \begin{matrix} a_{\text{lca(1,1)}} & a_{\text{lca(1,2)}} & \dots & 0 \\ a_{\text{lca(2,1)}} & a_{\text{lca(2,2)}} & \dots & 0 \\ & \dots & \dots & \\ a_{\text{lca(n,1)}} & \dots & \dots & a_{n}-a_{\text{fa(n)}} \end{matrix}\right | detA= alca(1,1)alca(2,1)alca(n,1)alca(1,2)alca(2,2)alca(1,n)alca(2,n)alca(n,n) = alca(1,1)alca(2,1)alca(n,1)alca(1,2)alca(2,2)alca(1,n)alca(1,fa(n))alca(2,n)alca(2,fa(n))alca(n,n)alca(n,fa(n)) = alca(1,1)alca(2,1)alca(n,1)alca(1,2)alca(2,2)00anafa(n)

由 Laplace 展开,可以转化为 ( n − 1 ) (n-1) (n1) 阶的问题进行递归。最终答案就是

∏ i = 1 n ( a i − a fa(i) ) \prod\limits_{i=1}^{n} \left ( a_{i} - a_{\text{fa(i)}} \right ) i=1n(aiafa(i))


D \color{green}{\texttt{D}} D

[Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription]

给定一个 n n n 个点, ( 2 n − 2 ) (2n-2) (2n2) 条边的有向图,每条边有边权。前 ( n − 1 ) (n-1) (n1) 条边构成一棵以 1 1 1 为根的树,边的方向远离根;后 ( n − 1 ) (n-1) (n1) 条边为每个点到 1 1 1 的边。每次操作修改其中一条边的边权,或求出从 u u u v v v 的最短路。

边权为 [ 1 , 1 × 1 0 6 ] [1,1 \times 10^{6}] [1,1×106] 间的整数。

[Analysis] \color{blue}{\texttt{[Analysis]}} [Analysis]

u u u v v v 的路径其实很少。

  1. 如果 u u u 能沿着树上的边走到 v v v,那肯定沿着树走最优。
  2. 否则 u u u 必须先回到 1 1 1,再从 1 1 1 沿着树走到 v v v

维护 1 1 1 沿着树到每个点的距离(基为 Len ( u ) \text{Len}(u) Len(u)),当修改一条树上边的时候,整棵子树内所有点的距离都将发生变化,但是变化量相同。利用树的深度优先遍历序(即 dfs \text{dfs} dfs 序)连续的性质,可以用线段树维护这个距离。

然后第 1 1 1 种情况的答案其实就是 Len ( v ) − Len ( u ) \text{Len}(v)-\text{Len}(u) Len(v)Len(u)

这里其实利用了差分的思想,将区间求和的问题转化为了前缀和相减。

考虑求出 u u u 回到 1 1 1 的最短路。

从直觉上讲,很容易以为就是后 ( n − 1 ) (n-1) (n1) 条边的权值。但是显然 too young too simple 了。

u u u 虽然不能沿着树的父亲回到 1 1 1,但它可以先到自己的某个子孙再回到 1 1 1。假设 u u u 走到子树内的节点 w w w 再从 w w w 回到 1 1 1,那么路径的长度就是:

l u , w + val w l_{u,w}+\text{val}_w lu,w+valw

其中 l u , w l_{u,w} lu,w 表示在树上从 u u u w w w 的距离, val w \text{val}_{w} valw 表示 w w w 1 1 1 的边的长度。

显然这样是求不出来的。但是 l u , w = Len w − Len u l_{u,w}=\text{Len}_{w}-\text{Len}_{u} lu,w=LenwLenu,于是上面式子改写成:

( Len w + val w ) − Len u \left ( \text{Len}_{w} + \text{val}_{w} \right )-\text{Len}_{u} (Lenw+valw)Lenu

括号内的项仅和 w w w 有关,括号外仅和 u u u 有关。可以用线段树维护括号内的项,这样就可以单次 O ( log ⁡ n ) O(\log n) O(logn) 地求出所需结果。

这也是一个经典的 trick。如果一个式子里含有两个变量,那一般的数据结构都是无法维护的。分离变量是一个很好的方法。

具体实现看代码。

考场上那些傻瓜错误:

  1. 有向图看成无向图(但其实主体思路没有太大变化!)。
  2. 没有考虑到 u u u 可以先走到子树再回根。
  3. 数组开太小了……

[Code] \color{blue}{\text{[Code]}} [Code]

int Fa[22][N],n,dep[N],q;
int u[N<<1],v[N<<1],w[N<<1],len[N];
int End[N],rec[N],dfscnt,Trans[N];
ll Len[N];
//len[i] 表示从 i 到 1 的直接边的长度 
//Len[i] 表示初始时 1 沿着树到 i 的总长度 struct Segment_Tree{int ls[N<<1],rs[N<<1],rt,ndcnt;ll sum[N<<1],tag[N<<1],minn[N<<1];void pushup(int o){sum[o]=sum[ls[o]]+sum[rs[o]];minn[o]=min(minn[ls[o]],minn[rs[o]]);}void pushdown(int o,int l,int r){tag[ls[o]]+=tag[o];tag[rs[o]]+=tag[o];minn[ls[o]]+=tag[o];minn[rs[o]]+=tag[o];int mid=(l+r)>>1;sum[ls[o]]+=tag[o]*(mid-l+1);sum[rs[o]]+=tag[o]*(r-mid);tag[o]=0;}void build(int &o,int l,int r,int tpe){o=++ndcnt;tag[o]=sum[o]=minn[o]=0;if (l==r){if (tpe==1) sum[o]=minn[o]=Len[Trans[l]];else sum[o]=minn[o]=Len[Trans[l]]+len[Trans[r]];return;}int mid=(l+r)>>1;build(ls[o],l,mid,tpe);build(rs[o],mid+1,r,tpe);return pushup(o);}void modify(int o,int l,int r,int p,int q,int v){if (p<=l&&r<=q){tag[o]+=v;minn[o]+=v;sum[o]+=1ll*v*(r-l+1);return;}if (tag[o]) pushdown(o,l,r);int mid=(l+r)>>1;if (p<=mid) modify(ls[o],l,mid,p,q,v);if (mid<q) modify(rs[o],mid+1,r,p,q,v);return pushup(o);}ll query(int o,int l,int r,int p){if (l==r) return sum[o];if (tag[o]) pushdown(o,l,r);int mid=(l+r)>>1;if (p<=mid) return query(ls[o],l,mid,p);else return query(rs[o],mid+1,r,p);}ll query(int o,int l,int r,int p,int q){if (p<=l&&r<=q) return minn[o];if (tag[o]) pushdown(o,l,r);int mid=(l+r)>>1;ll ans=1e18;if (p<=mid) ans=min(ans,query(ls[o],l,mid,p,q));if (mid<q) ans=min(ans,query(rs[o],mid+1,r,p,q));return ans;}
}SGT,sgt;struct edge{int nxt,to,len;
}e[N<<1];int h[N],ecnt;
void add(int u,int v,int w){e[++ecnt]=(edge){h[u],v,w};h[u]=ecnt;
}void dfs(int u,int fa){rec[u]=++dfscnt;Trans[dfscnt]=u;dep[u]=dep[fa]+1;Fa[0][u]=fa;for(int i=1;i<=20;i++)Fa[i][u]=Fa[i-1][Fa[i-1][u]];for(int i=h[u];i;i=e[i].nxt){int v=e[i].to;if (v==fa) continue;Len[v]=Len[u]+e[i].len;dfs(v,u);}End[u]=dfscnt;//记录 dfs 序 
}
int LCA(int u,int v){if (dep[u]<dep[v]) swap(u,v);for(int i=20;i>=0;i--)if (dep[Fa[i][u]]>=dep[v])u=Fa[i][u];if (u==v) return u;for(int i=20;i>=0;i--)if (Fa[i][u]!=Fa[i][v]){u=Fa[i][u];v=Fa[i][v];}return Fa[0][v];
}ll query(int u){return sgt.query(sgt.rt,1,n,rec[u],End[u])-SGT.query(SGT.rt,1,n,rec[u]);
}
ll query(int u,int v){ll res;if (u==v) return 0;if (LCA(u,v)==u) res=SGT.query(SGT.rt,1,n,rec[v])-SGT.query(SGT.rt,1,n,rec[u]);else res=query(u)+SGT.query(SGT.rt,1,n,rec[v]);return res;
}int main(int argv,char *argc[]){n=read();q=read();for(int i=1;i<n;i++){u[i]=read();v[i]=read();w[i]=read();add(u[i],v[i],w[i]);add(v[i],u[i],w[i]);}for(int j=1;j<n;j++){int i=j+(n-1);//真实边标号 u[i]=read();v[i]=read();//v[i] == 1w[i]=read();len[u[i]]=w[i];}dfs(1,0);SGT.build(SGT.rt,1,n,1);sgt.build(sgt.rt,1,n,2);for(int i=1;i<=q;i++){int opt=read(),s=read(),t=read();if (opt==1){if (s<n){//修改树上的边 SGT.modify(SGT.rt,1,n,rec[v[s]],End[v[s]],t-w[s]);sgt.modify(sgt.rt,1,n,rec[v[s]],End[v[s]],t-w[s]);//v[s] 的子树内所有点到 1 的距离发生变化 w[s]=t;}else{sgt.modify(sgt.rt,1,n,rec[u[s]],rec[u[s]],t-len[u[s]]);len[u[s]]=t;}}else printf("%lld\n",query(s,t));}return 0;
}

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

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

相关文章

组件日志——etcd

目录 一、简介 二、安装【Ubuntu】 安装etcd 安装CAPI 三、写一个示例 3.0写一个示例代码 3.1获取一个etcd服务 3.2获取租约(写端操作) 3.3使用租约(写端操作) 3.4销毁租约(写端操作) 3.5获取etcd服务中的服务列表(读端操作) 3.6监听状态变化(读端操作) 一、简介 Et…

python网络爬虫开发实战之网页数据的解析提取

目录 1 XPath的使用 1.1 XPath概览 1.2 XPath常用规则 1.3 准备工作 1.4 实例引入 1.5 所有节点 1.6 节点 1.7 父节点 1.8 属性匹配 1.9 文本获取 1.10 属性获取 1.11 属性多值匹配 1.12 多属性匹配 1.13 按序选择 1.14 节点轴选择 2 Beautiful Soup 2.1 简介…

理解操作系统(一)冯诺依曼结构和什么是操作系统

认识冯诺依曼系统 操作系统概念与定位 深⼊理解进程概念&#xff0c;了解PCB 学习进程状态&#xff0c;学会创建进程&#xff0c;掌握僵⼫进程和孤⼉进程&#xff0c;及其形成原因和危害 1. 冯诺依曼体系结构 我们常⻅的计算机&#xff0c;如笔记本。我们不常⻅的计算机&am…

Tomcat常见漏洞攻略

一、CVE-2017-12615 漏洞原理&#xff1a;当在Tomcat的conf&#xff08;配置⽬录下&#xff09;/web.xml配置⽂件中添加readonly设置为false时&#xff0c;将导致该漏洞产 生&#xff0c;&#xff08;需要允许put请求&#xff09; , 攻击者可以利⽤PUT方法通过精心构造的数据包…

Linux上位机开发实战(camera视频读取)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 关于linux camera&#xff0c;一般都是认为是mipi camera&#xff0c;或者是usb camera。当然不管是哪一种&#xff0c;底层的逻辑都是v4l2&#x…

Python实现deepseek接口的调用

简介&#xff1a;DeepSeek 是一个强大的大语言模型&#xff0c;提供 API 接口供开发者调用。在 Python 中&#xff0c;可以使用 requests 或 httpx 库向 DeepSeek API 发送请求&#xff0c;实现文本生成、代码补全&#xff0c;知识问答等功能。本文将介绍如何在 Python 中调用 …

山东大学数据结构课程设计

题目&#xff1a;全国交通咨询模拟系统 问题描述 处于不同目的的旅客对交通工具有不同的要求。例如&#xff0c;因公出差的旅客希望在旅途中的时间尽可能地短&#xff0c;出门旅游的旅客则期望旅费尽可能省&#xff0c;而老年旅客则要求中转次数最少。编织一个全国城市间的交…

内网渗透技术 Docker逃逸技术(提权)研究 CSMSF

目录 如何通过上传的webshell判断当前环境是否是物理环境还是Docker环境 方法一&#xff1a;检查文件系统 方法二&#xff1a;查看进程 方法三&#xff1a;检查网络配置 方法四&#xff1a;检查环境变量 方法五&#xff1a;检查挂载点 总结 2. 如果是Docker环境&#x…

数据结构与算法-数据结构-树状数组

概念 树状数组&#xff0c;也叫二叉索引树&#xff08;Binary Indexed Tree&#xff0c;BIT&#xff09;&#xff0c;它是用数组来模拟树形结构。树状数组的每个节点存储的是数组中某一段的和&#xff08;或其他可合并的信息&#xff09;&#xff0c;通过巧妙的索引方式和树形…

使用 patch-package 优雅地修改第三方依赖库

在前端开发中&#xff0c;有时我们需要对第三方依赖库进行修改以满足项目需求。然而&#xff0c;直接修改 node_modules 中的文件并不是一个好方法&#xff0c;因为每次重新安装依赖时这些修改都会丢失。patch-package 是一个优秀的工具&#xff0c;可以帮助我们优雅地管理这些…

马科维茨均值—方差理论推导过程

下面给出一个详细的、符号严谨、公式连贯的马科维茨均值—方差理论推导过程&#xff0c;假设你输入了 nnn 列股票的历史收盘价数据。我们从数据符号的定义开始&#xff0c;逐步构建所有公式&#xff0c;并详细解释每个符号的意义。

仅靠prompt,Agent难以自救

Alexander的观点很明确&#xff1a;未来 AI 智能体的发展方向还得是模型本身&#xff0c;而不是工作流&#xff08;Work Flow&#xff09;。还拿目前很火的 Manus 作为案例&#xff1a;他认为像 Manus 这样基于「预先编排好的提示词与工具路径」构成的工作流智能体&#xff0c;…

【css酷炫效果】纯CSS实现悬浮弹性按钮

【css酷炫效果】纯CSS实现悬浮弹性按钮 缘创作背景html结构css样式完整代码效果图 想直接拿走的老板&#xff0c;链接放在这里&#xff1a;https://download.csdn.net/download/u011561335/90492020 缘 创作随缘&#xff0c;不定时更新。 创作背景 刚看到csdn出活动了&…

决策树基础

决策树 定义 从根节点开始&#xff0c;也就是拥有全部的数据&#xff0c;找一个维度对根节点开始划分&#xff0c; 划分后希望数据整体的信息熵是最小的&#xff0c; 针对划分出来的两个节点&#xff0c;我们继续重复刚才的划分方式寻找信息熵最小的维度和阈值。 递归这个…

动态查找表

1.问题分析&#xff1a; 动态查找表是一种可以动态地插入、删除和查找元素的数据结构。它是基于二叉搜索树实现的&#xff0c;具有快速的查找和插入操作。 以下是一些关于动态查找表的问题分析&#xff1a; 1. 插入操作&#xff1a;在动态查找表中插入一个元素时&#xff0c…

得分匹配的朗之万动力学——Score-Matching Langevin Dynamics (SMLD)

得分匹配的朗之万动力学——Score-Matching Langevin Dynamics (SMLD) 文章目录 得分匹配的朗之万动力学——Score-Matching Langevin Dynamics (SMLD)摘要Abstract周报内容0. 上期补充1. 本期的基本思想2. 从一个分布中采样&#xff08;Sampling from a Distribution&#xff…

字节DAPO算法:改进DeepSeek的GRPO算法-解锁大规模LLM强化学习的新篇章(代码实现)

DAPO算法&#xff1a;解锁大规模LLM强化学习的新篇章 近年来&#xff0c;大规模语言模型&#xff08;LLM&#xff09;在推理任务上的表现令人瞩目&#xff0c;尤其是在数学竞赛&#xff08;如AIME&#xff09;和编程任务中&#xff0c;强化学习&#xff08;RL&#xff09;成为…

【Qt】QWidget的styleSheet属性

&#x1f3e0;个人主页&#xff1a;Yui_ &#x1f351;操作环境&#xff1a;Qt Creator &#x1f680;所属专栏&#xff1a;Qt 文章目录 前言1. styleSheet属性2. 利用styleSheet属性实现简单的日夜模式切换2.1 知识补充-计算机中的颜色表示 3. 总结 前言 style?好像前端的st…

QT Quick(C++)跨平台应用程序项目实战教程 2 — 环境搭建和项目创建

目录 引言 1. 安装Qt开发环境 1.1 下载Qt安装包 1.2 安装Qt 1.3 安装MSVC编译器 2. 创建Qt Quick项目 2.1 创建新项目 2.2 项目结构 2.3 运行项目 3. 理解项目代码 3.1 main.cpp文件 3.2 Main.qml文件 引言 在上一篇文章中&#xff0c;我们介绍了本教程的目标和结…

macOS Sequoia 15.3 一直弹出“xx正在访问你的屏幕”

&#x1f645; 问题描述 macOS 系统升级后&#xff08;15.2或者15.3均出现过此问题&#xff09;&#xff0c;不管是截图还是开腾讯会议&#xff0c;只要跟捕捉屏幕有关&#xff0c;都一直弹出这个选项&#xff0c;而且所有软件我都允许访问屏幕了&#xff0c;这个不是询问是否…