WOJ 18 动态无向图

一开始我是不会写的,后来点开了题解:

无话可说……那就写吧……然而第一发跑成暴力分,后来加了一个优化:就是在询问里面提到过的边都不用再加了。

然后……然后就过了呀……

其实还有面向数据的编程的骚操作……既然卡过了那也没什么好说了。

以前的巨佬们Orz

Code:

#include <cstdio>
#include <cstring>
using namespace std;const int N = 5005;
const int M = 8e5 + 5;int n, m, qn, tot = 0, head[N], ans = 0;
int pCnt = 0, id[N], idCnt = 0, ufs[N], cnt[N][N];
bool ex[N][N], men[N][N], vis[N];struct Edge {int to, nxt;
} e[M];inline void add(int from, int to) {e[++tot].to = to;e[tot].nxt = head[from];head[from] = tot;
}struct Pathway {int u, v;
} path[M];struct Query {int type, u, v;
} q[M];inline void read(int &X) {X = 0;char ch = 0;int op = 1;for(; ch > '9' || ch < '0'; ch = getchar())if(ch == '-') op = -1;for(; ch >= '0' && ch <= '9'; ch = getchar())X = (X << 3) + (X << 1) + ch - 48;X *= op; 
}inline void init() {for(int i = 1; i <= n; i++) ufs[i] = i;
}int find(int x) {return x == ufs[x] ? x : ufs[x] = find(ufs[x]);
}inline void merge(int x, int y) {int fx = find(x), fy = find(y);if(ufs[fx] != fy) ufs[fx] = fy;
}void dfs(int x) {vis[x] = 1;for(int i = head[x]; i; i = e[i].nxt) {int y = e[i].to;if(!ex[x][y]) continue;if(vis[y]) continue;dfs(y);}
}inline void reCnt() {ans = 0;for(int i = 1; i <= idCnt; i++) vis[i] = 0;for(int i = 1; i <= idCnt; i++)if(!vis[i]) {ans++;dfs(i);}
}inline void addEdge(int p) {int u = id[find(q[p].u)], v = id[find(q[p].v)];cnt[u][v]++, cnt[v][u]++;if(!ex[u][v]) {ex[u][v] = ex[v][u] = 1;add(u, v), add(v, u);}//    reCnt();
} inline void delEdge(int p) {int u = id[find(q[p].u)], v = id[find(q[p].v)];cnt[u][v]--, cnt[v][u]--;if(!cnt[u][v] && !cnt[v][u]) ex[u][v] = ex[v][u] = 0;    //    reCnt();
}inline void query(int p) {reCnt();printf("%d\n", ans);
}int main() {read(n), read(m);for(int i = 1; i <= m; i++) read(path[i].u), read(path[i].v);read(qn);for(int i = 1; i <= qn; i++) {char op[7];scanf("%s", op);if(op[0] == 'l') {q[i].type = 1, read(q[i].u), read(q[i].v);men[q[i].u][q[i].v] = men[q[i].v][q[i].u] = 1;}    if(op[0] == 'c') {q[i].type = 2;read(q[i].u), read(q[i].v);men[q[i].u][q[i].v] = men[q[i].v][q[i].u] = 1;}    if(op[0] == 'q') q[i].type = 3;} init();for(int i = 1; i <= m; i++) {if(men[path[i].u][path[i].v]) continue;merge(path[i].u, path[i].v);}for(int i = 1; i <= n; i++) {int nowf = find(i);if(!vis[nowf]) vis[nowf] = 1, id[nowf] = ++idCnt;}/*    for(int i = 1; i <= n; i++)printf("%d ", id[find(i)]);printf("\n");   */for(int i = 1; i <= m; i++) {if(!men[path[i].u][path[i].v]) continue;int x = id[find(path[i].u)], y = id[find(path[i].v)];add(x, y), add(y, x);ex[x][y] = ex[y][x] = 1;cnt[x][y]++, cnt[y][x]++;}//    reCnt();for(int i = 1; i <= qn; i++) {if(q[i].type == 1) addEdge(i);if(q[i].type == 2) delEdge(i);if(q[i].type == 3) query(i);}return 0;
}
View Code

 

转载于:https://www.cnblogs.com/CzxingcHen/p/9494992.html

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

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

相关文章

AI如何帮助我们理解意识——麻省理工最新大脑研究

来源&#xff1a;ScienceAI编辑&#xff1a;文龙麻省理工学院和麻省总医院的一组研究人员最近发表了一项将社会意识与单个神经元活动联系起来的研究。据悉&#xff0c;这是首次在单神经元级别下找到「心智理论」的证据。测量大量的神经元是神经学的基础。即使是普通的核磁共振成…

计算机操作系统——处理机调度算法

计算机操作系统——处理机调度算法 一、处理机调度的层次和调度算法的目标 1.处理及调度的层次 高级调度&#xff1a;&#xff08;周期较长&#xff0c;大约几分钟一次&#xff09; 又称为长程调度或作业调度 调度对象&#xff1a;作业 功能&#xff1a;根据算法决定将外存中…

宇宙即计算~一种新科学:斯蒂芬·沃尔夫勒姆

编辑 &#xff1a;Gemini来源&#xff1a;人机与认知实验室斯蒂芬沃尔夫勒姆这个名字&#xff0c;在中文世界里可能远谈不上家喻户晓&#xff1b;但他的英文名Stephen Wolfram恐怕反而却要熟悉得多。他是Mathematica软件的发明者和首席设计师&#xff0c;被广泛地认为是当今科学…

maven安装与项目创建

maven安装与项目创建 Maven是一个软件项目管理和理解工具。基于项目对象模型的概念&#xff0c;Maven可以管理项目的根据一条中心信息构建、报告和记录。 文件 最新的文件可以在https://maven.apache.org/.找到 系统需求 JDK: 1.7或更高版本(这是为了执行Maven -它仍然允许…

windows 安装zip 压缩

* 到sourceforge上下载 zip-3.0-bin.zip https://sourceforge.net/projects/gnuwin32/files/zip/3.0/zip-3.0-bin.zip/download?use_mirrorjaist 或者http://pan.baidu.com 链接: https://pan.baidu.com/s/1HObxhQUdbsl8J-B-IeeRUg 密码: 9922 * 解压 * 把bin目录下面的exe文件…

应对全球粮食危机 AI、5G与机器视觉联手“养鱼”

来源&#xff1a;Forbes编译&#xff1a;科技行者时至今日&#xff0c;全球粮食挑战已经成为现实难题&#xff0c;环境危机的恶化又进一步加剧了这个挑战。而在这样一波重压之下&#xff0c;人工智能、机器视觉与5G网络等新兴技术能否指明新的解决方案?挪威鲑鱼养殖公司Cermaq…

cache命中率、平均访问时间、访问效率的计算公式

cache命中率、平均访问时间、访问效率的计算公式 cache命中率 平均访问时间 访问效率 使用cache可以提高计算机的性能&#xff0c;也提高了主存访问的效率

全息技术“量子飞跃”或彻底改变成像技术

作者&#xff1a;冯卫东 来源&#xff1a;科技日报科技日报北京2月9日电 &#xff08;记者冯卫东&#xff09;据最新一期《自然物理学》报道&#xff0c;英国格拉斯哥大学的物理学家首次找到使用量子纠缠光子来将信息编码为全息图的方法。这一突破了传统全息方法局限性的新型量…

定点数与浮点数的表示方法

计算机组成原理——定点数与浮点数 计算机中常用的数据表示格式有两种&#xff0c;一是定点格式&#xff0c;二是浮点格式。一般来说&#xff0c;定点格式容许的数值范围有限&#xff0c;要求的处理硬件比较简单。而浮点格式容许的数值范围很大&#xff0c;要求的处理硬件比较…

AI 3.0》王飞跃教授推荐序——未来智能:人有人用,机有机用

☉ 王飞跃中国自动化学会监事长中国科学院自动化研究所复杂系统管理与控制国家重点实验室主任来源&#xff1a;德先生转自&#xff1a;中国自动化学会初见梅拉妮米歇尔之名&#xff0c;还是20世纪80年代末研究她与侯世达关于类比推理的开创性程序“Copycat”&#xff08;拷贝猫…

计算机组成原理——计算机系统的性能指标(机器字长、存储容量、运算速度)

计算机组成原理——计算机系统的性能指标 计算机系统的性能指标&#xff08;机器字长、存储容量&#xff0c;运算速度&#xff09;&#xff1a; 1. 吞吐量&#xff1a; 一台计算机在某一时间间隔内能够处理的信息量。 2. 响应时间&#xff1a; 从输入有效到系统产生响应之间…

自动驾驶发展调查:产业化还需技术“破冰”

来源&#xff1a;机器学习研究组订阅/ 导读 /在汽车产业转入存量博弈时代的关键节点&#xff0c;出行领域的变革也随之蓄势待发。汽车制造厂商、出行平台以及科技公司纷纷抢滩自动驾驶赛道。作为一个处于发展初期的产业&#xff0c;自动驾驶从技术路线到落地场景&#xff0c;从…

【剑指offer】面试题35:复杂链表的复制(Java 实现)

请实现函数ComplexListNode* Clone(ComplexListNode * pHead),复制一个复杂链表。在复杂链表中&#xff0c;每个结点除了有一个m_pNext指针指向下一个结点外&#xff0c;还有一个m_pSibling指向链表中的任意结点或者NULL。结点的C定义如下&#xff1a; struct ComplexListNode…

人类倾向于高估人工智能的进步,低估自身智能的复杂性-读《AI 3.0》

有很多关于人工智能的书。亚马逊网站上就有20,000本。其中很多书都有戏剧性的标题&#xff0c;比如《生命3.0》 &#xff0c;《终极算法》 &#xff0c;尤其是《奇点来临》。梅勒妮 米切尔的新书的标题更加谦虚&#xff0c;但是在我看来&#xff0c;在这个主题上&#xff0c;它…

计算机操作系统——死锁(产生的必要条件与处理死锁的四个关卡)

计算机操作系统——死锁 前言&#xff1a;死锁&#xff1a;指多个进程因竞争共享资源而造成的一种僵局&#xff0c;若无外力作用&#xff0c;这些进程都将永远不能再向前推进。如果死锁发生&#xff0c;会浪费大量的系统资源&#xff0c;甚至会导致系统崩溃。 关于死锁的结论…

科学难题的形成

来源&#xff1a;肖建华科学网博客传统上&#xff0c;把科学理论分为两类&#xff1a;唯象性科学理论和哲学性科学理论。大致而言&#xff0c;工程科学是以具体现象类来划分学科&#xff0c;此类学科的理论一般称为唯象性理论。而把各学科的共性特征抽象出来作为研究对象而建立…

冯·诺依曼计算机特点

冯诺依曼计算机特点 冯诺依曼&#xff0c;20世纪最重要的数学家之一。在现代计算机、博弈论、核武器和生化武器等众多领域内有杰出建树的最伟大的科学全才之一&#xff0c;被后人称为“计算机之父”和“博弈论之父”。 一、冯诺依曼计算机结构&#xff08;以运算器为中心&…

计算机操作系统——经典进程的同步问题

计算机操作系统——信号量机制与经典进程的同步问题 信号量机制 随着发展&#xff0c;信号量从整型信号量经记录型信号量&#xff0c;进而发展为“信号量集”机制。 一般来说&#xff0c;信号量的值与相应的资源的使用情况有关。 信号量的值仅由P、V操作改变。 信号量的初值…

2020年度全球人工智能十大事件

该文章内容转载自战略前沿技术当前&#xff0c;新一代人工智能技术在全球蓬勃兴起&#xff0c;迅猛发展&#xff0c;与大数据、区块链、5G等新技术相互融合、相互因应&#xff0c;为经济社会发展尤其是数字经济发展注入新动能&#xff0c;正在深刻改变社会生产生活方式。与此同…

当贝叶斯,奥卡姆和香农一起来定义机器学习

来源&#xff1a;数学中国【导读】当贝叶斯、奥卡姆和香农一起给机器学习下定义&#xff0c;将统计学、信息理论和自然哲学的一些核心概念结合起来&#xff0c;我们便会会发现&#xff0c;可以对监督机器学习的基本限制和目标进行深刻而简洁的描述。令人有点惊讶的是&#xff0…