NOIP模拟测试8「匹配·回家」

匹配

哈希能A

水到爆炸

回家

事实上我做过一个原题,甚至比这个回家难的多,而且那个题多组询问必经点

然后我做一组询问就打炸了

大约就是删了很多东西,然后自己想的太简单了

直接统计了割点,懒得打lca和树上差分,懒得打dfs,偷懒让我付出很大代价

最后只有10,

打代码一定不能偷懒,一定不能偷懒

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define A 810000
ll dfn[A],low[A],ver[A],nxt[A],head[A],s[A],fa[A],belong[A],kx[A];
ll Head[A],Nxt[A],Ver[A],To[A],vst[A];
ll tot=0,tot2=0,num=0,n,m,t,root;
vector<ll> dcc[A],ans;
bool cut[A];
void add(ll x,ll y){nxt[++tot]=head[x],head[x]=tot,ver[tot]=y;
}
void Add(ll x,ll y){Nxt[++tot2]=Head[x],Head[x]=tot2,Ver[tot2]=y;
}
inline ll read(){ll f=1,x=0;char c=getchar();while(!isdigit(c)){if(c=='-') f=-1;c=getchar();}while(isdigit(c)){x=(x<<1)+(x<<3)+(c-'0');c=getchar();}return f*x;
}
void tarjan(ll x)
{ll flag=0;dfn[x]=low[x]=++tot;s[++s[0]]=x;for(ll i=head[x];i;i=nxt[i]){ll y=ver[i];if(!dfn[y]){tarjan(y);low[x]=min(low[x],low[y]);if(low[y]>=dfn[x]){flag++;num++;if(flag>1||x!=root)cut[x]=1;while(s[0]){ll p=s[s[0]--];dcc[num].push_back(p);if(p==y)break;}dcc[num].push_back(x);}}else low[x]=min(low[x],dfn[y]);}
}
void dfs(ll x)
{if(x==belong[n])return ;vst[x]=1;for(ll i=Head[x];i;i=Nxt[i]){ll y=Ver[i];if(vst[y])continue;fa[y]=x;dfs(y);}return ;
}
void re(){num=0,tot=0;ans.clear();tot2=0;for(ll i=0;i<=800000;i++)    dcc[i].clear();memset(nxt,0,sizeof(nxt));memset(Head,0,sizeof(Head));memset(Nxt,0,sizeof(Nxt));memset(fa,0,sizeof(fa));memset(vst,0,sizeof(vst));memset(head,0,sizeof(head));memset(ver,0,sizeof(ver));memset(dfn,0,sizeof(dfn));memset(low,0,sizeof(low));memset(cut,0,sizeof(cut));memset(kx,0,sizeof(kx));
}
int main()
{t=read();while(t--){re();n=read(),m=read();for(ll i=1;i<=m;i++){ll x=read(),y=read();add(x,y);add(y,x);}for(ll i=1;i<=n;i++)if(!dfn[i]) root=i,tarjan(i);ll nu=num;for(ll i=1;i<=n;i++)if(cut[i])belong[i]=++nu,kx[nu]=i;for(ll i=1;i<=num;i++)for(ll j=0;j<dcc[i].size();j++){ll x=dcc[i][j];if(cut[x]) Add(belong[x],i),Add(i,belong[x]);else belong[x]=i;}
/*        for(ll i=1;i<=n;i++){cout<<"belong="<<belong[i]<<endl;}
*/        dfs(belong[1]);ll x=fa[belong[n]];while(x!=belong[1]){if(x==0) break;if(x>num) ans.push_back(kx[x]);x=fa[x];}printf("%lld\n",1ll*ans.size());sort(ans.begin(),ans.end());for(ll i=0;i<ans.size();i++)printf("%lld ",ans[i]);cout<<endl;}
}

 

转载于:https://www.cnblogs.com/znsbc-13/p/11248153.html

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

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

相关文章

将CloudWatch Logs与Cloudhub Mule集成

在此博客中&#xff0c;我将解释如何为您的Mule CloudHub应用程序启用AWS Cloudwatch日志 。 AWS提供了Cloudwatch Logs Services&#xff0c;以便您可以更好地管理日志。 它比松散便宜。 由于cloudhub会自动翻转超过100 MB的日志&#xff0c;因此我们需要一种机制来更有效地管…

android网络重试机制,okhttp源码解析(四):重试机制

前言这一篇我们分析okhttp的重试机制&#xff0c;一般如果网络请求失败&#xff0c;我们会考虑连续请求多次&#xff0c;增大网络请求成功的概率&#xff0c;那么okhttp是怎么实现这个功能的呢&#xff1f;正文首先还是回到之前的InterceptorChain&#xff1a;Response getResp…

构造入门

构造死磕 什么是构造 小学中学奥数先用数学解决再编程实现的构造题一般算法无法解决\(NOI\)难度\(PJ-\)代码量坑构造举例 CF743C Vladik and fractions 题目让我们构造一组数字,满足\(\frac{2}{n} \frac{1}{x} \frac{1}{y} \frac{1}{z}\)第一眼看到就想到听老师讲了半天才知…

王成录华为鸿蒙系统,华为手机销量仍在增长!华为王成录:手机会是鸿蒙OS系统的中心...

【天极网手机频道】由于制裁&#xff0c;华为遭到前所未有的断供&#xff0c;外界有不少声音都在担心华为手机出货量将会出现暴跌。不过昨日华为开发者大会举办期间&#xff0c;华为消费者业务软件部总裁王成录表示&#xff0c;华为手机销量仍在增长中。昨天的华为开发者大会&a…

28线程

进程&#xff1a;计算机执行的任务 线程&#xff1a;执行任务中的小任务 多线程 计算机再执行过程中&#xff0c;再同一时间只能让cpu的一个核执行一个进程。进程有多个线程构成&#xff0c;再同一时刻Cpu只能处理一个线程。 引入多线程 当线程被cpu执行时cpu开始工作&#xff…

什么是javax.ws.rs.core.context? [第3部分]

如何使用Context批注 在什么是javax.ws.rs.core.context的第2部分中&#xff1f; 您学习了如何使用Context批注从SecurityContext类的注入实例检索安全信息&#xff0c;以及如何通过ResourceContext实例使用JAX-RS资源类。 在本文中&#xff0c;您将学习如何将Context批注与请…

html 字幕飘动效果,html 滚动字幕 制作滚动字幕效果 参数

制作滚动字幕效果&#xff1a;marquee标签 如下:&#xff1c;MARQUEE directionup height146 οnmοuseοutstart() οnmοuseοverstop() scrollAmount4&#xff1e; &#xff1c;/marquee&#xff1e;参数说明&#xff1a;direction滚动方向&#xff1a;up向上滚动&#xff0…

静态点分治总结

点分治是世界上最好的算法QwQ 点分治可以解决各种树上的边权点权问题&#xff0c;然后如果你发现这个题好像问的特别玄学&#xff0c;lca&#xff0c;树差都做不了&#xff0c;树上动‘龟’更做不了&#xff0c;只能暴力时&#xff0c;这个题大多数情况就是点分治了 点分治的思…

html节点上下移动,关于前端:数组元素上下移动

/*** 上、下挪动* param {number} code 下标* param {number} dir 1上移 0下移*/onMove(code, dir) {let moveComm (curIndex, nextIndex) > {let arr this.commodityInfoarr[curIndex] arr.splice(nextIndex, 1, arr[curIndex])[0]return arr}this.commodityInfo.some((…

mybatis插入数据后返回自增主键ID详解

1.场景介绍: ​ 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后返回的是插入成功的条数,那么这个时候我们想要得到相应的这条新增数据的ID,该怎…

spring 属性占位符_Spring属性占位符配置器–一些不太明显的选项

spring 属性占位符Spring的PropertySourcesPlaceholderConfigurer用于从XML或Java Config中定义的Spring bean定义外部化属性。 PlaceholderConfigurer支持的一些选项在文档中并不明显&#xff0c;但很有趣&#xff0c;并且可能有用。 首先&#xff0c;以Spring文档中的示例为…

红包雨效果html,js+css实现红包雨效果

//每一个红包都是相对于父元素定位&#xff0c;通过z-index来设置层级let zIndex 1;function bindEvent() {$redPackage.on(click,.js-RedPackageBox,function() {//拿到每个红包的数据const data $(this).data(txt);}}//生成mix-max的随机数function getRandom(min,max) {re…

Delphi下实现全屏快速找图找色 二、矩阵遍历

二、矩阵遍历  矩阵遍历是一个数据结构方面的问题。假设有一个矩阵Matrix&#xff0c;它共有RowCount行&#xff0c;每行有ColCount列&#xff0c;当利用y表示行数&#xff0c;x表示列数&#xff0c;那么利用Matrix[y,x]就可以访问矩阵中的任意元素。假设有一个1010大小的矩阵…

Eclipse MicroProfile:您需要了解的5件事

针对微服务架构优化企业Java Eclipse MicroProfile计划是在JavaOne 2016上发起的&#xff0c;JavaOne是服务器供应商和Java用户组的创意&#xff0c;目的是解决企业Java微服务领域的缺点。 Java EE的发布速度减慢到无法应对Swift发展的微服务趋势的挑战的程度。 MicroProfile通…

html 选择不能重复,人生,就是一次无法重复的选择(深度好文)

作者&#xff1a;彩云追月欧洲著名的政治家托马斯 莫尔说&#xff1a;“在人生中最艰难的是选择”。漫漫人生路&#xff0c;有无数的选择&#xff0c;不同的选择&#xff0c;可能会决定我们不同的人生道路。下面的故事也许对你有所启迪&#xff1a;一天&#xff0c;几个学生问…

用HTML做软件UI用到的的一些技术

做WEB开发的想把网页做成应用程序的界面&#xff0c;开发应用程序的又想把程序界面做得和WEB一样。本文介绍一下用HTML做软件UI用到的的一些技术。 其实HTML UI也不是什么新鲜事了&#xff0c;Norton Antivirus从几年前的版本就开始用了&#xff0c;vs.net2002中的开始页也用了…

html css导航栏字体图标,HTML+CSS入门之两种图标字体库

本篇教程介绍了HTMLCSS入门之两种图标字体库&#xff0c;希望阅读本篇文章以后大家有所收获&#xff0c;帮助大家HTMLCSS入门。<## 0. 前言比较基础的图标加载&#xff1a;和块元素的背景background: url(./x.png).页面多图标时&#xff0c;使用雪碧图(多个png压缩成一个png…

垃圾收集算法,垃圾收集器_弱,弱,最弱,利用专家参考来管理垃圾收集器

垃圾收集算法,垃圾收集器何时以及何时不使用Java中的专家引用 弱引用&#xff0c;软引用和幻像引用既危险又强大。 如果以错误的方式使用它们&#xff0c;则会破坏JVM性能。 但是&#xff0c;如果使用正确的方法&#xff0c;它们可以大大提高性能和程序清晰度。 弱引用和软引用…

ESP8266—“ICACHE_FLASH_ATTR”宏

问&#xff1a;ESP8266_NONOS_SDK中ICACHE_FLASH_ATTR宏的用途是什么&#xff1f;我看到它取决于ICACHE_FLASH&#xff0c;但我不知道何时应该定义该符号。什么时候需要包括它&#xff1f;答&#xff1a;对于ESP8266_NONOS_SDK&#xff0c;用ICACHE_FLASH_ATTR编译的函数编译到…

layui网页html编辑器,layui使用富文本编辑器

HTML代码&#xff1a;这里的原理是你输入的内容会经过处理插入到文本区域textarea中js代码&#xff1a;/*** 文本编辑器*/layui.use([form, layedit], function(){var layedit layui.layedit;//上传图片,必须放在 创建一个编辑器前面layedit.set({uploadImage: {url: upload /…