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

田阳县建设局网站/sem和seo的关系

田阳县建设局网站,sem和seo的关系,网页源代码怎么打开快捷键,wordpress修改表前缀题目大意 有一个有 n n n个点 n n n条边的无向连通图,一开始每条边都有一个颜色 c c c。 有 m m m次操作,每次操作将一条两个端点为 x , y x,y x,y的边的颜色修改为 c c c。求每次修改之后,图中有多少个颜色相同的连通块。 一个颜色相同的…

题目大意

有一个有 n n n个点 n n n条边的无向连通图,一开始每条边都有一个颜色 c c c

m m m次操作,每次操作将一条两个端点为 x , y x,y x,y的边的颜色修改为 c c c。求每次修改之后,图中有多少个颜色相同的连通块。

一个颜色相同的连通块指的是一个由一些相同颜色的边组成的连通块。

T T T组数据。

1 ≤ T ≤ 10 , 3 ≤ n , m ≤ 1 0 5 , 1 ≤ c ≤ n 1\leq T\leq 10,3\leq n,m\leq 10^5,1\leq c\leq n 1T10,3n,m105,1cn


题解

我们可以发现,这个图是一个基环树。

下面先考虑这个图是一棵树的情况。

我们考虑将一条边的修改看成给这条边删去颜色和给这条边加上颜色两个部分,那么一开始加边时处理边的颜色也可以看作给没有颜色的边加上颜色。

我们先考虑删去一条边的颜色对答案的贡献,设这条边的两个端点为 x , y x,y x,y,颜色为 c c c

  • 如果 x x x有另外一条颜色为 c c c的边, y y y也有,则删去这条边后,原本的这个连通块会变成两个连通块,答案加一
  • 如果 x x x有另外一条颜色为 c c c的边, y y y没有,则删去这条边后,原本的这个连通块会少一个点 x x x,答案不变
  • 如果 x x x没有另外一条颜色为 c c c的边, y y y有,则删去这条边后,原本的这个连通块会少一个点 y y y,答案不变
  • 如果 x x x没有另外一条颜色为 c c c的边, y y y也没有,则删去这条边后,这个只由 x x x y y y构成的连通块就没了,答案减一

再考虑加上一条边的颜色对答案的贡献,设这条边的两个端点为 x , y x,y x,y,颜色为 c c c

  • 如果 x x x有另外一条颜色为 c c c的边, y y y也有,则加上这条边后,原本的这两个连通块会变成一个连通块,答案减一
  • 如果 x x x有另外一条颜色为 c c c的边, y y y没有,则加上这条边后,原本的这个连通块会多一个点 y y y,答案不变
  • 如果 x x x没有另外一条颜色为 c c c的边, y y y有,则加上这条边后,原本的这个连通块会多一个点 x x x,答案不变
  • 如果 x x x没有另外一条颜色为 c c c的边, y y y也没有,则加上这条边后,就会构成一个只由 x x x y y y构成的连通块,答案加一

而当这个图是基环树的时候,有一些特殊情况需要特判:

  • 如果边在环上,且环上的边的颜色都是 c c c,则删去这条边后答案不变
  • 如果边在环上,且环上除了这条边之外的边的颜色都是 c c c,则加上这条边后答案不变

我们先找出环,然后按上面说的做就可以了。

注意在查找两个端点为 x , y x,y x,y的边的编号和每个点是否有每种颜色的边的时候,可以用 m a p map map来储存。

时间复杂度为 O ( n log ⁡ n ) O(n\log n) O(nlogn)

code

#include<bits/stdc++.h>
using namespace std;
const int N=100000;
int T,n,m,tot,d[2*N+5],l[2*N+5],r[N+5],c[N+5];
int ans,top,st[N+5],lp[N+5],dep[N+5],z[N+5],sum[N+5];
map<int,int>mp[N+5],hv[N+5];
struct node{int x,y,v;
}w[N+5];
void add(int xx,int yy){l[++tot]=r[xx];d[tot]=yy;r[xx]=tot;
}
void dfs(int u,int fa){dep[u]=dep[fa]+1;st[++top]=u;for(int i=r[u];i;i=l[i]){if(d[i]==fa) continue;if(dep[d[i]]&&dep[d[i]]<dep[u]){while(st[top]!=d[i]){lp[++lp[0]]=st[top];--top;}lp[++lp[0]]=d[i];}if(!dep[d[i]]) dfs(d[i],u);}if(st[top]==u) --top;
}
void pt(int x,int y,int v,int zt){int tmp=(hv[x][v]!=0)+(hv[y][v]!=0);++hv[x][v];++hv[y][v];if(zt) ++sum[v];if(zt&&sum[v]==lp[0]) --tmp;ans+=1-tmp;
}
void del(int x,int y,int v,int zt){--hv[x][v];--hv[y][v];int tmp=(hv[x][v]!=0)+(hv[y][v]!=0);if(zt&&sum[v]==lp[0]) --tmp;if(zt) --sum[v];ans-=1-tmp;
}
int main()
{freopen("tour.in","r",stdin);freopen("tour.out","w",stdout);scanf("%d",&T);while(T--){scanf("%d%d",&n,&m);tot=0;ans=0;for(int i=0;i<=N;i++){r[i]=dep[i]=z[i]=c[i]=sum[i]=0;mp[i].clear();hv[i].clear();}for(int i=1,x,y,v;i<=n;i++){scanf("%d%d%d",&x,&y,&v);w[i]=(node){x,y,v};add(x,y);add(y,x);mp[x][y]=mp[y][x]=i;}top=0;lp[0]=0;dfs(1,0);for(int i=1,x,y;i<=lp[0];i++){x=lp[i];y=lp[i%lp[0]+1];z[mp[x][y]]=1;}for(int i=1;i<=n;i++){pt(w[i].x,w[i].y,w[i].v,z[i]);c[i]=w[i].v;}for(int i=1,x,y,v,p;i<=m;i++){scanf("%d%d%d",&x,&y,&v);p=mp[x][y];del(x,y,c[p],z[p]);pt(x,y,v,z[p]);c[p]=v;printf("%d\n",ans);}}return 0;
}

相关文章:

NOIP2023模拟6联测27 旅行

题目大意 有一个有 n n n个点 n n n条边的无向连通图&#xff0c;一开始每条边都有一个颜色 c c c。 有 m m m次操作&#xff0c;每次操作将一条两个端点为 x , y x,y x,y的边的颜色修改为 c c c。求每次修改之后&#xff0c;图中有多少个颜色相同的连通块。 一个颜色相同的…...

【表面缺陷检测】钢轨表面缺陷检测数据集介绍(2类,含xml标签文件)

一、介绍 钢轨表面缺陷检测是指通过使用各种技术手段和设备&#xff0c;对钢轨表面进行检查和测量&#xff0c;以确定是否存在裂纹、掉块、剥离、锈蚀等缺陷的过程。这些缺陷可能会对铁路运输的安全和稳定性产生影响&#xff0c;因此及时进行检测和修复非常重要。钢轨表面缺陷…...

SHCTF 2023 新生赛 Web 题解

Web [WEEK1]babyRCE 源码过滤了cat 空格 我们使用${IFS}替换空格 和转义获得flag [WEEK1]飞机大战 源码js发现unicode编码 \u005a\u006d\u0078\u0068\u005a\u0033\u0074\u006a\u0059\u006a\u0045\u007a\u004d\u007a\u0067\u0030\u005a\u0069\u0030\u0031\u0059\u006d\u0045…...

二叉树题目合集(C++)

二叉树题目合集 1.二叉树创建字符串&#xff08;简单&#xff09;2.二叉树的分层遍历&#xff08;中等&#xff09;3.二叉树的最近公共祖先&#xff08;中等&#xff09;4.二叉树搜索树转换成排序双向链表&#xff08;中等&#xff09;5.根据树的前序遍历与中序遍历构造二叉树&…...

dbeaver配置es连接org.elasticsearch.xpack.sql.jdbc.EsDriver

查看目标es服务版本&#xff0c;下载对应驱动...

有监督学习线性回归

1、目标分析&#xff08;回归问题还是分类问题&#xff1f;&#xff09; 2、获取、处理数据 3、创建线性回归模型 4、训练模型 5、模型测试 x_data [[6000, 58], [9000, 77], [11000, 89], [15000, 54]] # 样本特征数据 y_data [30000, 55010, 73542, 63201] # 样本目标数…...

如何在vscode中添加less插件

Less &#xff08;Leaner Style Sheets 的缩写&#xff09; 是一门向后兼容的 CSS 扩展语言。它对CSS 语言增加了少许方便的扩展&#xff0c;通过less可以编写更少的代码实现更强大的样式。但less不是css&#xff0c;浏览器不能直接识别&#xff0c;即浏览器无法执行less代码&a…...

mediapipe 训练自有图像数据分类

参考&#xff1a; https://developers.google.com/mediapipe/solutions/customization/image_classifier https://colab.research.google.com/github/googlesamples/mediapipe/blob/main/examples/customization/image_classifier.ipynb#scrollToplvO-YmcQn5g 安装&#xff1a…...

【pytorch】torch.gather()函数

dim0时 index[ [x1,x2,x2],[y1,y2,y2],[z1,z2,z3] ]如果dim0 填入方式为&#xff1a; index[ [(x1,0),(x2,1),(x3,2)][(y1,0),(y2,1),(y3,2)][(z1,0),(z2,1),(z3,2)] ]input [[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12] ] # shape&#xff08;3,4&#xff09; input torch.…...

Mac 安装psycopg2,报错Error: pg_config executable not found.

在mac 上安装psycopg2的方法&#xff1a;执行&#xff1a;pip3 install psycopg2-binary。 如果执行pip3 install psycopg2&#xff0c;无法安装psycopg2 报错信息如下&#xff1a; Collecting psycopg2Using cached psycopg2-2.9.9.tar.gz (384 kB)Preparing metadata (set…...

域名系统 DNS

DNS 概述 域名系统 DNS(Domain Name System)是因特网使用的命名系统&#xff0c;用来把便于人们使用的机器名字转换成为 IP 地址。域名系统其实就是名字系统。为什么不叫“名字”而叫“域名”呢&#xff1f;这是因为在这种因特网的命名系统中使用了许多的“域(domain)”&#x…...

Vue $nextTick 模板解析后在执行的函数

this.$nextTick(()>{ 模板解析后在执行的函数 })...

VBA技术资料MF76:将自定义颜色添加到调色板

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…...

zilong-20231030

1)k个反转 2)n&#xff01;转12进制 求末尾多少0 一共有几位 &#xff08;考虑了溢出问题&#xff09; 3)大量数据获取前10个 4)reemap地城结构 5)红黑树规则特性 6)热更 7)压测 8)业务 跨服实现 9)有哪些线程以及怎么分配...

目标检测算法发展史

前言 比起图像识别&#xff0c;现在图片生成技术要更加具有吸引力&#xff0c;但是要步入AIGC技术领域&#xff0c;首先不推荐一上来就接触那些已经成熟闭源的包装好了再提供给你的接口网站&#xff0c;会使用别人的模型生成一些图片就能叫自己会AIGC了吗&#xff1f;那样真正…...

React 生成传递给无障碍属性的唯一 ID

useId() 在组件的顶层调用 useId 生成唯一 ID&#xff1a; import { useId } from react; function PasswordField() { const passwordHintId useId(); // ...参数 useId 不带任何参数。 返回值 useId 返回一个唯一的字符串 ID&#xff0c;与此特定组件中的 useI…...

十种排序算法(1) - 准备测试函数和工具

1.准备工作 我们先写一堆工具&#xff0c;后续要用&#xff0c;不然这些写在代码里可读性巨差 #pragma once #include<stdio.h>//为C语言定义bool类型 typedef int bool; #define false 0 #define true 1//用于交互a和b inline void swap(int* a, int* b) {/*int c *a…...

IRF联动 BFD-MAD

文章目录 IRF堆叠一、主设备配置二、备设备配置三、验证 MAD检测一、MAD检测二、MAD验证 本实验以2台设备进行堆叠示例&#xff0c;按照配置顺序&#xff0c;先配置主设备&#xff0c;再配置备设备。在IRF配置前暂时先不接堆叠线&#xff0c;按步骤提示接线。 IRF堆叠 一、主设…...

双向链表的初步练习

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇: Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”…...

IDE的组成

集成开发环境&#xff08;IDE&#xff0c;Integrated Development Environment &#xff09;是用于提供程序开发环境的应用程序&#xff0c;一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务…...

项目解读_v2

1. 项目介绍 如果使用task2-1作为示例时&#xff0c; 运行process.py的过程中需要确认 process调用的是函数 preprocess_ast_wav2vec(wav, fr) 1.1 任务简介 首个开源的儿科呼吸音数据集&#xff0c; 通过邀请11位医师标注&#xff1b; 数字听诊器的采样频率和量化分辨率分…...

杀毒软件哪个好,杀毒软件有哪些

安全杀毒软件是一种专门用于检测、防止和清除计算机病毒、恶意软件和其他安全威胁的软件。这类软件通常具备以下功能&#xff1a; 1. 实时监测&#xff1a;通过实时监测计算机系统&#xff0c;能够发现并防止病毒、恶意软件等安全威胁的入侵。 2. 扫描和清除&#xff1a;可以…...

Ubuntu上安装配置Nginx

要在 Ubuntu 上安装 Nginx&#xff0c;请按照以下步骤进行操作&#xff1a; 打开终端&#xff1a;可以使用快捷键 Ctrl Alt T 打开终端&#xff0c;或者在开始菜单中搜索 “Terminal” 并点击打开。 更新软件包列表&#xff1a;在终端中运行以下命令&#xff0c;以确保软件包…...

C++之string

C之string #include <iostream>using namespace std;/*string();//创建一个空的字符串string(const char* s);//使用字符串s初始化string(const string& str);//使用一个string对象初始化另外一个string对象string(int n,char c);//使用n个字符c初始化*/void test1()…...

多线程---单例模式

文章目录 什么是单例模式&#xff1f;饿汉模式懒汉模式版本一&#xff1a;最简单的懒汉模式版本二&#xff1a;考虑懒汉模式存在的线程安全问题版本三&#xff1a;更完善的解决线程安全问题版本四&#xff1a;解决指令重排序问题 什么是单例模式&#xff1f; 单例模式&#xf…...

SpringBoot相比于Spring的优点(自动配置和依赖管理)

自动配置 例子见真章 我们先看一下我们Spring整合Druid的过程&#xff0c;以及我们使用SpringBoot整合Druid的过程我们就知道我们SpringBoot的好处了。 Spring方式 Spring方式分为两种&#xff0c;第一种就是我们使用xml进行整合&#xff0c;第二种就是使用我们注解进行简化…...

SAP SPAD新建打印纸张

SAP SPAD新建打印纸张 1.事务代码SPAD 2.完全管理&#xff0d;设备类型&#xff0d;页格式-显示(创建格式页) 3.按标准A4纸张为模板参考创建。同一个纸张纵向/横向各创建1次(创建格式页) 4.完全管理&#xff0d;设备类型&#xff0d;格式类型-显示(创建格式类型&#xff0…...

C# 图解教程 第5版 —— 第11章 结构

文章目录 11.1 什么是结构11.2 结构是值类型11.3 对结构赋值11.4 构造函数和析构函数11.4.1 实例构造函数11.4.2 静态构造函数11.4.3 构造函数和析构函数小结 11.5 属性和字段初始化语句11.6 结构是密封的11.7 装箱和拆箱&#xff08;*&#xff09;11.8 结构作为返回值和参数11…...

车载电子电器架构 —— 基于AP定义车载HPC

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…...

Redis原理-IO模型和持久化

高性能IO模型 为什么单线程Redis能那么快 一方面&#xff0c;Redis 的大部分操作在内存上完成&#xff0c;再加上它采用了高效的数据结构&#xff0c;例如哈希表和跳表&#xff0c;这是它实现高性能的一个重要原因。另一方面&#xff0c;就是 Redis 采用了多路复用机制&#…...