当前位置: 首页 > news >正文

题解:P6798 「StOI-2」简单的树

简单的树:

题意:

一颗树,每个节点有一个权值 \(c_i\)
\(val_i\)\(i\) 为根的子树内所有 \(c_i\) 的最大值。
\(f(x,y)\)\(c_{x}\) 改为 \(y\)\(val_i\) 之和。
每次询问给定 \((l,r,a)\) ,求 \(\sum\limits_{i=l}^{r}{f(a,i)}\)

思路

首先一眼看出来几个性质:

  1. 每次修改只会影响当前节点到根路径上的 \(val_i\)
  2. 当前节点到根路径上的 \(val_i\) 是递增的。
  3. 我们只关心子树最大值,但是如果 \(c_x\) 修改了,不得不取不严格次大值
  4. 我们可以猜出当前节点到根路径的 \(val_i\) 的变化是规律的,并且 \(c_x\) 对当前节点到根路径 \(val_i\) 的影响也是连续的(一个后缀)。
  5. 询问满足可差分性,所以下面我们考虑 \(ans_{[1,r]}-ans_{[1,l-1]}\)

话说回来,我们考虑当前节点到根路径上单独一个节点 \(val_i\)\(ans_{[1,r]}\) 的贡献(这里的 \(r\) 不是询问的 \(r\),原谅我这一生不羁放纵,爱自由):

性质三、四说了这么多,意思是:先刨除 \(val_x\) 影响。(因为后面要单独考虑它)这里我们直接把 \(c_x\) 作为子树最大值的节点和其他的分开处理,
对于前者,我们明显是要在非严格次大值的序列上统计,后者明显是在最大值序列(\(val_i\))上统计。

兄弟们,我来盗个图:(此图甚好,想必此图原作者一定非常厉害!我对此图稍作解释,如果大佬介意可以私信骂我并让我删掉这个图,被骂我也是快哉快哉)

犹如上图,上图何意?
从左到右是从当前节点到根路径的刨除 \(x\) 影响的子树最大值序列。

为什么分成次大值和最大值区域?
因为我们 \(x\) 对最大值影响在这个序列上相当于一段前缀,也就是红色区域我们用次大值相当于刨除 \(x\) 影响,蓝色区域则选取最大值即可,总之,刨除 \(x\) 的影响。

上图出处:

下面的 \(val_i\) 默认为刨除了 \(x\) 影响后的最大值。

当前节点到根路径上一个节点 \(val_i\)\(ans_{[1,r]}\) 贡献:

  • \(r\le val_i\),给 \(ans_{[1,r]}\) 贡献 \(r×val_i\)
  • 若 $r>val_i $,那么相当于一个分段函数(左先平后增):
    关于这种类型的东西,我们画一个柱状图就好了(因为你画分段函数真的很容易算错,尤其是重叠的边)
    会给 \(ans_{[1,r]}\) 贡献:
    \(val_i×val_i+[r-(val+1)+1]×(val+1+r)÷2\)
    优秀的拆分:
    \((r^2+val_i^2+r-val_i)÷2\)

又因为 \(r\) 在这次询问固定,\(val_i\) 随着深度减小而递增,所以 \(r\le val_i\)\(r>val_i\) 的区域在序列上是一个前缀一个后缀。

重剖 + 线段树就可以很快地到根路径查了,当然你会发现这题只有向上倍增,所以可以直接写倍增,写倍增也是快哉快哉,写重剖也是应在江湖悠悠。

小言如何维护:
在线段树上维护 \(val_i^2\)\(val_i\)\(次val_i^2\)\(次val_i\),然后 \(r\) 有关的东西都提出来处理。(原谅我的中文变量名,况且现在 c++20 可以用中文变量名了)。

算法流程(综上):

把给你的树重链剖分,并在线段树上维护最大值平方和,最大值和,次大值平方和、次大值。

给你一组询问 \((l,r,a)\),答案为 \((ans_{[1,r]}-ans_{[1,l-1]})\)
对于 \(ans_{[1,k]}\),我们把先找到非严格次大值小于 \(val_x\) 且深度最小的节点 \(p\),对于 \(a\)\(p\) 的路径我们用次大值维护的线段树数组计算,对于 \(fa[p]\) 到根节点的路径我们用最大值维护的线段树数组计算。注意下面的 \(val_i\) 一个路径指次大值一个路径指最大值,在这两条路径上,我们都倍增出深度最小的 \(val_i< r\) 的位置 \(q\),那么对于当前路径从这个路径起点 到 \(q\) 查 $r>val_i $ 时的贡献,对于 \(fa[q]\) 到这个路径终点查另一个丑式子(线段树查询)。
最后别忘了是整棵树的 \(val_i\) 之和(下面的 \(val_i\) 都是子树最大值),所以要把除了 \(a\) 到根路径的 \(val_i\) 加上并乘 \((r-l+1)\),这里可以容斥:用全树的 \(val_i\) 减去 \(a\) 到根路径上的 \(val_i\),然后再乘 \((r-l+1)\),再加上就行了。

至于倍增做法,非常简单,把上面的线段树都改成倍增数组,跳链都改成倍增就可以了,不得不说倍增是真简洁,至于为什么全篇尽是树剖……老师讲的树剖 QAQ,我这种蒟蒻也是倍增倍增~

代码

代码也是呼之欲出~

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int QAQ=5e5+7;
const ll mo=998244353;
int n,q,op,s[QAQ],ma[QAQ][21],cima[QAQ][21],ma2[QAQ][21],cima2[QAQ][21],f[QAQ][21],shen[QAQ],all,ni;
vector<int> dian[QAQ];
inline void dfs1(int x,int fa)
{shen[x]=shen[fa]+1,f[x][0]=fa,ma[x][0]=s[x],cima[x][0]=0;for(int i=1;i<=20;i++) f[x][i]=f[f[x][i-1]][i-1];for(int i=0;i<(int)dian[x].size();i++){int v=dian[x][i];if(v==fa) continue;dfs1(v,x);if(ma[v][0]>ma[x][0]) cima[x][0]=max(ma[x][0],cima[v][0]),ma[x][0]=ma[v][0];else cima[x][0]=max(cima[x][0],ma[v][0]);}ma2[x][0]=1ll*ma[x][0]*ma[x][0]%mo,cima2[x][0]=1ll*cima[x][0]*cima[x][0]%mo;all=(all+ma[x][0])%mo;
}
inline void dfs2(int x,int fa)
{for(int i=1;i<=20;i++)ma[x][i]=(ma[x][i-1]+ma[f[x][i-1]][i-1])%mo,cima[x][i]=(cima[x][i-1]+cima[f[x][i-1]][i-1])%mo,ma2[x][i]=(ma2[x][i-1]+ma2[f[x][i-1]][i-1])%mo,cima2[x][i]=(cima2[x][i-1]+cima2[f[x][i-1]][i-1])%mo;for(int i=0;i<(int)dian[x].size();i++){int v=dian[x][i];if(v==fa) continue;dfs2(v,x);}
}
inline int ksm(int shi,int k)
{ll da=1,x=shi;for(;k;k=k/2,x=x*x%mo) if(k&1) da=da*x%mo;return da;
}
inline int ans(int x,int r)
{if(!r) return 0;int p=x,o1=x,o2,o3,o4;for(int i=20;i>=0;i--) if(f[p][i]&&shen[f[p][i]]>=shen[1]&&cima[f[p][i]][0]<s[x]) p=f[p][i];o2=p,o3=f[p][0],o4=1;if(cima[p][0]>=s[x]) o2=-114514,o3=x;// 下面是次大值区域 int da=0,nw;int da2=0,len=0;if(o2!=-114514){p=o1;for(int i=20;i>=0;i--)if(f[p][i]&&shen[f[p][i]]>=shen[o2]&&cima[f[p][i]][0]<r) p=f[p][i];if(cima[p][0]<r) nw=f[p][0];else nw=p;for(int i=20;i>=0;i--) if(f[nw][i]&&shen[f[nw][i]]>=shen[o2]) da=(da+1ll*r*cima[nw][i]%mo)%mo,nw=f[nw][i];if(nw==o2) da=(da+1ll*r*cima[nw][0]%mo)%mo,nw=f[nw][0];if(cima[p][0]<r){nw=o1;for(int i=20;i>=0;i--) if(f[nw][i]&&shen[f[nw][i]]>=shen[p]) da2=(da2+cima2[nw][i]-cima[nw][i]+mo)%mo,len+=(1<<i),nw=f[nw][i];if(nw==p) da2=(da2+cima2[nw][0]-cima[nw][0]+mo)%mo,nw=f[nw][0],len++;da2=((da2+1ll*len*r*r%mo+1ll*len*r%mo)*ni)%mo;da=(da+da2)%mo;}}//下面是最大值区域 if(o3){p=o3;for(int i=20;i>=0;i--)if(f[p][i]&&shen[f[p][i]]>=shen[o4]&&ma[f[p][i]][0]<r) p=f[p][i];if(ma[p][0]<r) nw=f[p][0];else nw=p;for(int i=20;i>=0;i--) if(f[nw][i]&&shen[f[nw][i]]>=shen[o4]) da=(da+1ll*r*ma[nw][i]%mo)%mo,nw=f[nw][i];if(nw==o4) da=(da+1ll*r*ma[nw][0]%mo)%mo,nw=f[nw][0];da2=0,len=0;if(ma[p][0]<r){nw=o3;for(int i=20;i>=0;i--) if(f[nw][i]&&shen[f[nw][i]]>=shen[p]) da2=(da2+ma2[nw][i]-ma[nw][i]+mo)%mo,len+=(1<<i),nw=f[nw][i];if(nw==p) da2=(da2+ma2[nw][0]-ma[nw][0]+mo)%mo,nw=f[nw][0],len++;da2=((da2+1ll*len*r*r%mo+1ll*len*r%mo)*ni)%mo;da=(da+da2)%mo;}}//下面是统计其余部分。 da=(da+1ll*all*r%mo)%mo;nw=o1;for(int i=20;i>=0;i--)if(f[nw][i]&&shen[f[nw][i]]+1>=shen[1]) da=((da-1ll*r*ma[nw][i]%mo)%mo+mo)%mo,nw=f[nw][i];if(nw==1) da=((da-1ll*r*ma[nw][0]%mo)%mo+mo)%mo,nw=0;return da;
}
inline int read()
{int x=0;char c=getchar();while(c<'0'||c>'9') c=getchar();while(c>='0'&&c<='9') x=(x<<3)+(x<<1)+(c^48),c=getchar();return x;
}
signed main()
{n=read(),q=read(),op=read();for(int i=1;i<=n;i++) s[i]=read();for(int i=1,u,v;i<n;i++) u=read(),v=read(),dian[u].push_back(v),dian[v].push_back(u);dfs1(1,0),dfs2(1,0),ni=ksm(2,mo-2);for(int i=1,shang=0,l,r,a;i<=q;i++){l=read(),r=read(),a=read(),l=((l+op*shang)%n)+1,r=((r+op*shang)%n)+1,a=((a+op*shang)%n)+1;if(l>r) swap(l,r);printf("%d\n",(shang=(((ans(a,r)-ans(a,l-1))%mo+mo)%mo)));}return 0;
}

这个代码写得过于傻,导致被卡了,可以循环展开一下再加上评测机波动就可以过,但是为了美感(实际上也没有),所以我在这里放的是正解代码,我已经申请增大时限了。

相关文章:

题解:P6798 「StOI-2」简单的树

简单的树: 题意: 一颗树,每个节点有一个权值 \(c_i\)。 \(val_i\):\(i\) 为根的子树内所有 \(c_i\) 的最大值。 \(f(x,y)\):\(c_{x}\) 改为 \(y\) 后 \(val_i\) 之和。 每次询问给定 \((l,r,a)\) ,求 \(\sum\limits_{i=l}^{r}{f(a,i)}\)。 思路 首先一眼看出来几个性质:…...

题解:P11704 [ROIR 2025] 旅行路线

旅行路线: 很有参考价值的一道题,其他题解有点抽象,我来。 转化题意 题意转化为 \((1,2)→(n-1,m),(2,1)→(n,m-1)\) 的两条链不相交且经过所有关键点的方案数。 其他点没用,我们以下的点指关键点。 无不能相交限制的 DP 由于 \(x_i\le x_j,y_i\le y_j\),\(i\) 才可以转移…...

题解:P11292 【MX-S6-T4】「KDOI-11」彩灯晚会

彩灯晚会:\(n\) 点 \(m\) 边 \(k\) 种颜色,给每个点染色。 \(cnt_i\):第 \(i\) 种颜色长度为 \(l\) 的链的数量。其中 \(l\) 为题目给的一个常量。 求 \(\sum_{染色方案}\sum_{i=1}^k cnt_i^2\) 的和。一\(\sum_{染色方案}cnt_i\) 值都一样,钦定 \(pos\) 作为代表颜色,那么…...

算法课程第一周作业

《数学之美》第一章启示 《数学之美》的第一章,在算法工程师眼中,并非传授某个具体算法.而是重构了我们理解、设计和应用算法的底层思维框架,世界的基本问题是算法问题,而数学是寻找最优算法的终极语言。 启示一:所有问题本质上都是建模与算法选择问题.意味着世界是一个巨大的待…...

实测对比:权威榜单之微信排版Top 5编辑器大揭秘

在新媒体运营的世界里,微信排版可是重中之重,它直接影响着文章的视觉效果和读者的阅读体验。很多运营人都有这样的痛点:写作慢、排版耗时、跨平台排版不统一、配图难还可能有侵权风险等。为了帮大家解决这些难题,我亲测了有一云AI编辑器、智撰AI编辑器等多款主流编辑器。在…...

自建仓库推送到NAS采用 Docker Registry 工作流

放弃手动 `save` 和 `load` 的方式,改用行业标准的 Registry(仓库)模式。这是最专业、最高效的方案。 **优点**: - **彻底解决版本兼容性问题**,因为 push/pull 协议是标准化的。 - 传输效率高,再次推送时只会上传有变动的层(layer)。 - 是 DevOps 和自动化流程的基础,…...

【汇编和指令集 . 第2025 . 9期】发现大牛

【编者按】在计算机、互联网风行半个世纪之后,我们发现:科技预言家越来越多了,思想家缺位了。生活节奏变快了,思想退步了;书写减少了,纸张缺没少;知识泛滥了,思考没有深入......我们有可能遭AI时代的反噬。时代呼唤跨文理的大家,呼唤有温度的电子产品。发刊词: …...

Opencompass避坑日记

安装首先执行pip安装 再下载源代码第一句是为了安装opencompass的依赖包,第二句是为了在当前目录引入本地目录的opencomass模块。 因为有很多修改的地方。 测评VLLM 放弃吧,这个框架对VLLM的支持很差。测评方式:稳定的有且只有这一种python run.py \--datasets demo_gsm8k_c…...

随笔 | 农场、小猴子、香蕉

在一个偏西部的农场中,有着一群猴子,他们每天的任务,是将香蕉树上的香蕉摘下来,而他们的报酬是仅仅九根香蕉,每天早上四根,每天晚上五根。某一天,其中一只猴子报怨,每天早上只能吃到四根香蕉,他提议说,改成每天早上五根香蕉,其他猴子都纷纷表示同意,仅有一只小猴子…...

Day17数组的使用

package com.cc.array;public class ArrayDemo4 {public static void main(String[] args) {int [] arrays = {1,2,3,4,5};//jdk1.5之后的版本可以通果增强for寻循环来遍历数组或集合中的每一个元素//缺点在于没有下标//for(int array:arrays){// System.out.println(array);p…...

完整教程:缓存与数据库一致性的4大坑及终极解决方案

完整教程:缓存与数据库一致性的4大坑及终极解决方案pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monosp…...

Rust的Cargo用法详解 - 详解

Rust的Cargo用法详解 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-si…...

串行通信接口标准(TTL、CMOS、RS232、RS422、RS485、CAN等)

TTL电平 引言 TTL是 Transistor-Transistor Logic(晶体管-晶体管逻辑)的缩写,是早期基于双极性晶体管(BJT)技术的逻辑家族。 电平特点 1. 电源电压:+5V 2. 电平标准:Voh:≥ 2.4V; Vol: ≤ 0.4V; Vih:≥ 2.0V; Vil: ≤ 0.8V;核心特点: 1. 输入悬空:TTL输入引脚如…...

攻防世界-IgniteMe - xxx

先查壳,发现没加壳,拖入ida-32反汇编了得到主函数 粗略看一下,能得到的信息有 输入的字符串长度为29,前四个字符是EIS{,最后一个字符是}想要输出Congratulations!关键的函数就是这个 4011C0函数,我们点进去看一下函数逻辑很明显,for循环之前就是把之前输入的字符串str除…...

C 语言 之 面向对象(一)

C 语言 之 面向对象(一)C 语言 之 面向对象(一) 了解C语言面向对象之前首先需要对C语言的指针、结构体有基本了解。 指针 正常使用数组: void hello(){#define count 10// shint a[count] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};for(int i = 0; i < count; i ++ ){printf(…...

for_switch

func forCase() {for i := 0; i < 10; i++ {if i == 5 {continue}fmt.Println("位置1 执行 for 语句块 i:", i)}fmt.Println("-------循环 slice ------")list := []int{1, 2, 3, 4, 5}for index, value := range list {fmt.Println("循环切片 执…...

快速幂

前题引入 我们平时用的pow函数速度太慢了怎么办,我就就需要快速幂(意思废话) 题目分析 前题铺垫 你只是需要知道一个非常简单的东西 a^b + a^c =a^(b+c) 思路 既然暴力是O(b)的,那我们是不是可以考虑O(log b) 那我们尝试将b除以2 那么就可以知道a^b = a^b/2 + a^b/2 但是我…...

模拟退火

#include<bits/stdc++.h> using namespace std; double kai=10000,eps=1,jiang=0.92,fw;//fw 记得赋值 mt19937 rd(time(0)); #define bu t*(rd()%(2*(int)fw)*1.0-fw) #define gl 1.0*rand()/RAND_MAX int ans,sx;//题目要求时开 double int cha(int x) {/**/return a…...

记录我见过的神人

魔丸《待审核》 注:团长高仿号申请进团焯神观察兵古风 古风...

DOS指令学习

打开CMD的方式 1.开始+系统+命令指示符 2.Win键+R 输入cmd 打开控制台(推荐使用) 3.在任意的文件下面,按住shift键+鼠标右键点击,在此处打开命令窗口 4.资源管理器的地址栏前面加上cmd路径 管理员方式运行:选择以管理员方式运行 常用的Dos命令 #盘符切换 #查看当前目录下的…...

【Azure环境】使用ARM Template部署Policy模板时候报错不支持filed函数: The template function field is not valid.

问题描述 Azure Policy可以帮助治理Azure上的资源, 也可以通过ARM 模板部署。只是当Policy中包含了field 函数的时候,会出现错误!"parameters": {"keyVaultName": {"value": "[field(name)]"}} 错误信息:Unable to process temp…...

CDQ分治

一、解决偏序问题 不言即默认非严格偏序问题。 严格偏序,未有此题。 若汝要学,小点三维。 同 \(a\) 者并,\(b\) \(c\) 小改。 幸甚至哉,歌以咏志。 三维偏序 按第一维排序,通过只计算左对右造成的贡献来满足第一维偏序条件。 第二维对于左右两个区间分别独自按第二维排序然…...

开源AI大模型、AI智能名片与S2B2C商城小代码:从“不出现=不存在”到“精准存在”的数字化转型路径

开源AI大模型、AI智能名片与S2B2C商城小代码:从“不出现=不存在”到“精准存在”的数字化转型路径pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…...

202509 组合数学与计数类 DP 笔记

1. P2051 [AHOI2009] 中国象棋 一格一格进行考虑做 DP 想不出来,考虑到一行实际上只需要选两格进行操作,因此可以一行一行操作。 设 \(f_{i,j,k}\) 表示考虑到第 \(i\) 行,有 \(m-j-k\) 列有 \(0\) 个棋子,有 \(j\) 列有 \(1\) 个棋子,有 \(k\) 列有 \(2\) 个棋子。边界条…...

edu 106 E(LCS dp + 多源bfs优化)

E 先考虑对两个固定串怎么做:可以确定形成串的末尾一定是 \(a_{i}\) 或者 \(b_{j}\),直接子序列 \(dp\) 即可:\(dp_{i,j,0/1}\) 表示只考虑 \(a\) 长度为 \(i\) 的前缀和 \(b\) 长度为 \(j\) 的前缀,\(0\) 表示形成的串以 \(a_{i}\) 结尾;\(1\) 表示形成的串以 \(b_{j}\) …...

ABC310E NAND repeatedly 题解

https://atcoder.jp/contests/abc310/tasks/abc310_e 一个奇怪的递归式 + \(N \le 10^6\), 试试动态规划 设 \(dp_{i,j}\) 为对于所有 \(1 \le l \le i\) 满足 \(f(l, i)=j\) 的数量, 其中 \(j \in \{0,1\}\). 最后答案就是 \(\sum\limits_{i=1}^{n}dp_{i,1}\) 分情况讨论:当 \…...

MyBatis插入语句配置

MyBatis 插入语句配置 <sql id="Manage_field"> id,userName,passWord,realName</sql> <!-- 实体类属性--><sql id="Manage_insert">#{id},#{userName},#{passWord},#{realName}</sql><insert id="insert" …...

操作运算符

package _caseimport "fmt"// 关系运算 func RelationCase() {var a = 21var b = 10fmt.Println("a == b", a == b)fmt.Println("a != b", a != b)fmt.Println("a > b", a > b)fmt.Println("a < b", a < b)fmt.…...

看 NOI2025 游记记

我很久以前看过 50+ 篇让我印象深刻的 NOI 游记,里面有句话让我在看游记前的某次梦里想起:“看游记好爽,心潮在荡漾”。 Day0(2025.7.31) 状态不是很好,看了几篇游记复习了一下。 Day1(2025.8.1) 早上 6:15 起床,6:30 到机房,老师宣读早读板子,登上洛谷,我迅速打开…...

整体二分

前言 注意:以下的 “元素” 都代表原题中的一个操作。 大说 把当前值域一分为二,把当前元素集合,每个元素的决策只有左区间 or 右区间,可以把同决策的元素放在一起去分治子区间(类似于线段树的结构)。 如下图(左边是值域区间,右边是元素集合):上图每个询问的答案: ①…...

得力 - Bruce

@echo off title Win10 游戏下载速度优化脚本 echo ===================================== echo Win10 游戏下载慢 - 优化工具 echo (请以管理员身份运行) echo ===================================== echo.:: 关闭 Windows 更新的传递优化 echo [1/6] 正在关闭 Windows …...

短视频营销运营导师张伽赫,绳木传媒AI+短视频引领企业数字化变革

在当下企业数字化转型的浪潮中,短视频营销已成为关键赛道。张伽赫,这位深耕短视频领域十年的实战派导师,同时也是东莞绳木传媒的创始人,凭借 “AI+短视频” 的创新模式,在行业内异军突起,为众多传统企业提供了数字化转型的全新思路与解决方案。一、方法论革新:从流量思维…...

详细介绍:还在重启应用改 Topic?Spring Boot 动态 Kafka 消费的“终极形态”

详细介绍:还在重启应用改 Topic?Spring Boot 动态 Kafka 消费的“终极形态”pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "C…...

用 TensorFlow 和 CNN 实现验证码识别

在本教程中,我们将使用 TensorFlow 和 卷积神经网络(CNN) 来构建一个验证码识别系统。TensorFlow 是一个流行的深度学习框架,支持构建和训练神经网络。通过构建卷积神经网络(CNN),我们可以自动从图像中提取特征并执行字符分类任务。环境准备首先,我们需要安装 TensorFl…...

用 PyTorch 和 CNN 进行验证码识别

在本教程中,我们将使用 PyTorch 和 卷积神经网络(CNN) 来构建一个验证码识别系统。PyTorch 是一个广泛使用的深度学习框架,特别适合研究和原型设计。卷积神经网络(CNN)是处理图像数据的强大工具,它可以自动从图像中学习特征,并执行图像分类等任务。环境准备首先,确保你…...

用 Keras 和 CNN 进行验证码识别

在本教程中,我们将利用 Keras 和 卷积神经网络(CNN) 来构建一个验证码识别系统。Keras 是一个高层神经网络 API,它运行在 TensorFlow、Microsoft Cognitive Toolkit(CNTK)或 Theano 之上,能够让我们快速构建深度学习模型。CNN 是一种常用于图像识别任务的深度学习架构,…...

从 Bank Conflict 数学表示看 Buffer 设计 Trade-Off

在并行处理器设计中,我们希望最大化访存吞吐,让更多的数据分布在不同的 bank,而非在一个 bank 中产生堵塞。一种场景是面对多应用并行,这往往可以通过划分上下文基地址隔离;而另一种场景则是高并行同一个数据共用基地址,本文针对该场景下常见情形 Tensor Data Layout 进行…...

被彼此笼罩 任泪水将我们缠绕 深陷入恶魔的拥抱 在阴冷黑暗处灼烧 吞下这毒药

方格染色grid 不难发现按着行顺着来,odt 那样维护即可。数字图graph 为什么本可做这个题做了很久(? 首先显然可以二分降低难度,然后就是观察。...

mysql无法连接服务器的mysql #mysql8

1、云服务器要开放tcp 3306端口 登录云服务器提供商的,添加开放端口2、配置mysql允许非本地连接 编辑:/etc/my.cnf 或(如果配置了不生效) /etc/mysql/mysql.conf.d/mysqld.cnf 修改: ... [mysqld]bind-address = 0.0.0.0 ... 验证:mysql> SHOW GLOBAL VARIABLES LIKE …...

DAG 最小路径覆盖问题 笔记

原来我还学过这么个玩意。 一、笔记 P2764 最小路径覆盖问题 首先让 \(n\) 个点每个点都是单独的一条路径,接着考虑合并路径。 把每个点拆成只有入度的点和只有出度的点,合并就相当于连接一个只有出度的点和另一个只有入度的点。 显然合并完成后每个拆开的点都最多只能连一条…...

SP3D c# 开发独立的exe

此方法避免了启动S3D的过程 S3D.net API允许编写独立应用程序,即外部自动化TaskHost可执行文件。 在独立应用程序中可以编写哪些自动化?检查自动化-检查对象/数据,并采取一些行动,如生成报告文件/输出文件。数据挖掘-对对象和相关对象进行一些数据处理/数据挖掘,生成报告。…...

python错误code

没有遍历完,就打印了结果模拟商品购物shopp_user = [] user_buy = [] for i in range(0,5):name_shop = input("请输入商品名称:")shopp_user.append(name_shop)for i in shopp_user:print(i)while True:user_choose=input("请输入购买的商品编号:")# 输入…...

瑞 ping 我

ping瑞 ping 我...

java八股文笔记 - 指南

java八股文笔记 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: 1…...

NOIP 模拟赛十六

BIT/构造+DP+bitset/DP+平衡树/欧拉序A. 发现答案只有 \(0, 1, 2\) 三种。 将 \(0\) 直接判掉,\(1\) 可以通过树状数组+双指针解决。 记 \(k\) 为需要减少的逆序对数量。 具体的,枚举左端点 \(l\) ,加入右端点 \(r\) ,判断逆序对数 \(cnt\) 是否 \(\ge k\) ,如果是,结束。…...

【AT_dp_y】Grid 2 - Harvey

题意 要求从 \((1,1)\) 走到 \((n,m)\),不能经过障碍物,问方案数。 \(1 \leq n,m \leq 10^5,1 \leq k \leq 3000\)。 思路 首先先解决弱化版,若没有障碍物的方案数,显然是 \(\binom{n+m-2}{n-1}\)。 则我们可以用总 - 非法,考虑经过多少个障碍物进行容斥。 如果按个数去枚…...

C#十五天 026多态重写 027抽象类与开闭原则 028接口,依赖反转,单元测试

在类的重写当中 父类需要加入一个关键字叫:Virtual,子类需要加一个关键字叫:override例: 父类 public virtual void FuLei(){} 子类 public override void ZiLei如果用父类变量去引用子类实例不用v和o的话就叫隐藏这样声明的实例方法还是运行父类方法,加了o和v的才…...

解题报告-P11844 [USACO25FEB] Friendship Editing G

P11844 [USACO25FEB] Friendship Editing G 题目描述 Farmer John 的 \(N\) 头奶牛编号为 \(1\) 到 \(N\)(\(2\le N\le 16\))。奶牛之间的朋友关系可以建模为一个有 \(M\)(\(0\le M\le N(N-1)/2\))条边的无向图。两头奶牛为朋友当且仅当图中她们之间存在一条边。 在一次操作…...

CSP-S模拟23

\(T1:\) 选彩笔(rgb) 思路: 签到题 (但是没签上),二分答案,在写一个三维前缀和\(check\)一下就搞定了。如果忘记三维前缀和的话,请看这里 代码:$code$ #include<iostream> using namespace std; const int N=1e4+5; int n,m,b,g,r,x,y,z,ans,num,maxn,sum[260]…...

CF1413F Roads and Ramen

结论是,路径中有一个端点是直径端点。 你这么想,设 \(dis_i\) 为 \(1\) 到 \(i\) 的 \(1\) 的个数,如果对于一条直径 \(p \to q\),若 \(dis_p = dis_q\) 直接取直径即可。 否则,对于每个点 \(u\),总有 \(p, q\) 中的一个与其 \(dis\) 相等,一个点到直径端点的距离最远,…...