首页 > 其他分享 >临时错板子

临时错板子

时间:2023-12-14 21:57:24浏览次数:21  
标签:临时 register long 板子 int define getchar

#include<bits/stdc++.h>
#define endl '\n'
#define int long long 
using namespace std;
const int N=5e5+1;
int n,m,s,a,b;
int fa[N],son[N],dep[N],top[N],sz[N];
vector<int>e[N];
template<typename Tp> inline void read(Tp&x)
{
    x=0;register bool z=1;
    register char c=getchar();
    for(;c<'0'||c>'9';c=getchar()) if(c=='-') z=0;
    for(;'0'<=c&&c<='9';c=getchar()) x=(x<<1)+(x<<3)+(c^48);
    x=(z?x:~x+1);
}
void dfs1(int x,int father)
{
    fa[x]=father,dep[x]=dep[father]+1,sz[x]=1;
    for(int y:e[x])
        if(y!=father)
        {
            dfs1(y,x);
            sz[x]+=sz[y];
            if(sz[son[x]]<sz[y]) son[x]=y;
        } 
}
void dfs2(int x,int t)
{
    top[x]=t;
    if(!son[x]) return ;
    dfs2(son[x],t);
    for(int y:e[x])
        if(y!=fa[x]&&y!=son[x])
            dfs2(y,y);
}
int lca(int x,int y)
{
    while(top[x]!=top[y])
    {
        if(dep[top[x]]<dep[top[y]]) swap(x,y);
        x=fa[son[x]];
    }
    return dep[x]<dep[y]?x:y;
}
signed main()
{
    #ifndef ONLINE_JUDGE
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
    #endif
    read(n),read(m),read(s);
    for(int i=1;i<n;i++)
        read(a),read(b),
        e[a].push_back(b),
        e[b].push_back(a);
    dfs1(s,0),dfs2(s,s);
    while(m--)
        read(a),read(b),
        cout<<lca(a,b)<<endl;
}

标签:临时,register,long,板子,int,define,getchar
From: https://www.cnblogs.com/Charlieljk/p/17902082.html

相关文章

  • 临时命令行传输数据
    起因服务器为内部服务器,从本机没有直连渠道,只能基于novncweb管理,与本地之间无法互传文件。思路从本地启动临时http服务,可以通过命令行上传,下载文件,可以限制非服务器IP无法连接。本地临时http代码1、share.py(将服务器公网出口IP填入ALLOWED_IPS)importhttp.serverimport......
  • 可视化监控云平台/智能监控EasyCVR如何使用脚本创建ramdisk挂载并在ramdisk中临时运行
    视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。安防管理视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、......
  • 可视化监控云平台/智能监控EasyCVR如何使用脚本创建ramdisk挂载并在ramdisk中临时运行
    视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。安防管理视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、......
  • arkui获取屏幕高度临时解决方案
    利用创建canvas对象来获取privatesettings:RenderingContextSettings=newRenderingContextSettings(true)privatecontext:CanvasRenderingContext2D=newCanvasRenderingContext2D(this.settings)将context对象传递给canvas对象,然后在回调函数中获取长宽数据......
  • 使用 Kubernetes 为 CI/CD 流水线打造高效可靠的临时环境
    介绍在不断发展的科技世界中,快速构建高质量的软件至关重要。在真实环境中测试应用程序是及早发现和修复错误的关键。但是,在真实环境中设置CI/CD流水线进行测试可能既棘手又昂贵。 Kubernetes是一个流行的容器编排平台,提供临时环境解决方案。在Kubernete的帮助下,用户能根......
  • 临时文件夹控制器
    应用中,有时候需要创建一个临时文件夹进行操作,操作完以后需要删除临时文件夹。创建一个控制类,自动创建和删除临时夹。控制类代码:publicclassTempDirectoryController:IDisposable{ privatestring_tempDir; privatereadonlystring_rootPath; ///<summary> ///临......
  • tarjan无向图割点板子
    //无向图割点模板#include<bits/stdc++.h>#defineintlonglong#defineendl'\n'#defineN20001usingnamespacestd;template<typenameTp>inlinevoidread(Tp&x){x=0;registerboolf=1;registercharc=getchar();for(;c&......
  • 代码临时存放
    #include<bits/stdc++.h>usingnamespacestd;#definelllonglongconstintN=505;constllinf=1e18;lln,m,mp[N][N],matched[N];llslack[N],pre[N],ex[N],ey[N];//ex,ey顶标boolvisx[N],visy[N];voidmatch(llu){llx,y=0,yy=0......
  • 99年的连接写法 on 只负责连接的条件 where 拼接其他的条件 临时表 自己拼自己
    --显示员工和上级领导员工表的领导编号=领导表的员工编号不能写反了selecte.empnoas'员工号',e.enameas'员工姓名',e.mgras'领导的员工号',l.enameas'领导的姓名'fromempeleftjoinemplone.mgr=l.empno;员工号|员工姓名|领导的员工号|领导的姓......
  • PHP临时文件命令执行
    来自于ctfshow的一道题例题if(isset($_GET['c'])){$c=$_GET['c'];if(!preg_match("/\;|[a-z]|[0-9]|\\$|\(|\{|\'|\"|\`|\%|\x09|\x26|\>|\</i",$c)){system($c);}}过滤了所有小写字母和数字但是放出了./准......