首页 > 其他分享 >2024寒假年后集训日记

2024寒假年后集训日记

时间:2024-02-14 18:44:20浏览次数:23  
标签:cnt dep ll memset 2024 fa 寒假 集训 dis

2.14

闲话

做题纪要

SP913 QTREE2 - Query on a tree II

  • \(LCA\) 板子。

    点击查看代码
    struct node
    {
    	ll nxt,to,w;
    }e[20002];
    ll head[20002],dep[20002],dis[20002],fa[20002][25],N,cnt=0;
    void add(ll u,ll v,ll w)
    {
    	cnt++;
    	e[cnt].nxt=head[u];
    	e[cnt].to=v;
    	e[cnt].w=w;
    	head[u]=cnt;
    }
    void dfs(ll x,ll father,ll w)
    {
    	fa[x][0]=father;
    	dep[x]=dep[father]+1;
    	dis[x]=dis[father]+w;
    	for(ll i=1;(1<<i)<=dep[x];i++)
    	{
    		fa[x][i]=fa[fa[x][i-1]][i-1];
    	}
    	for(ll i=head[x];i!=0;i=e[i].nxt)
    	{
    		if(e[i].to!=father) 
    		{
    			dfs(e[i].to,x,e[i].w);
    		}
    	}
    }
    ll lca(ll x,ll y)
    {
    	if(dep[x]>dep[y])
    	{
    		swap(x,y);
    	}
    	for(ll i=N;i>=0;i--)
    	{
    		if(dep[x]+(1<<i)<=dep[y])
    		{
    			y=fa[y][i];
    		}			
    	}
    	if(x==y) 
    	{
    		return x;
    	}
    	else
    	{
    		for(ll i=N;i>=0;i--)
    		{
    			if(fa[x][i]!=fa[y][i])
    			{
    				x=fa[x][i];
    				y=fa[y][i];
    			}
    		}
    		return fa[x][0];
    	}
    }
    ll query_fa(ll x,ll y,ll k)
    {	
    	ll rt=lca(x,y);
    	if(dep[x]-dep[rt]+1<=k)
    	{
    		k=dep[y]-dep[rt]+1-(k-(dep[x]-dep[rt]+1));
    		swap(x,y);
    	}
    	for(ll i=N;i>=0;i--)
    	{
    		if((1<<i)+1<=k)
    		{
    			x=fa[x][i];
    			k-=(1<<i);
    		}
    	}
    	return x;
    }
    int main()
    {
    	ll t,n,u,v,w,k,i,j;
    	string pd;
    	cin>>t;
    	for(j=1;j<=t;j++)
    	{
    		cin>>n;
    		N=log2(n)+1;
    		cnt=0;
    		memset(e,0,sizeof(e));
    		memset(head,0,sizeof(head));
    		memset(dep,0,sizeof(dep));
    		memset(dis,0,sizeof(dis));
    		memset(fa,0,sizeof(fa));
    		for(i=1;i<=n-1;i++)
    		{
    			cin>>u>>v>>w;
    			add(u,v,w);
    			add(v,u,w);
    		}
    		dfs(1,0,0);
    		while(cin>>pd)
    		{
    			if(pd=="DONE")
    			{
    				break;
    			}
    			if(pd=="DIST")
    			{
    				cin>>u>>v;
    				cout<<dis[u]+dis[v]-2*dis[lca(u,v)]<<endl;
    			}
    			if(pd=="KTH")
    			{
    				cin>>u>>v>>k;
    				cout<<query_fa(u,v,k)<<endl;
    			}
    		}
    	}
    	return 0;
    }
    

luogu P3216 [HNOI2011]数学作业

luogu P2233 [HNOI2002] 公交车路线

luogu P4159 [SCOI2009] 迷路

  • 令 \(f_{i,j}\) 表示第 \(i\) 时刻走到 \(j\) 的不同路径数量。状态转移方程为 \(f_{i,j}=\sum\limits_{(k,j) \in E}^{}[i-dis_{k,j} \ge 0] \times f_{i-dis_{k,j},k}\) ;特别地,规定 \(f_{0,1}=1\) 。

luogu P2151 [SDOI2009] HH去散步

luogu P3193 [HNOI2008]GT考试

标签:cnt,dep,ll,memset,2024,fa,寒假,集训,dis
From: https://www.cnblogs.com/The-Shadow-Dragon/p/18015410

相关文章

  • 2024第一篇
    在今天写篇,希望今年财神会爱我。把网易云下回来了,翻了翻以前的动态,又看了看以前写过的博客……真有种跨越时空和从前自己对话的感觉。年复一年,无意间看到前前任发的微博,说现在很好,没什么特别的期望。羡慕,这种生活状态也太好了,我对未来还有很多期望,也还有很多想要的......
  • 2024九省联考数学备用卷选填解析
    答案\(1-5\)\(CADCA\)\(6-8\)\(DBD\)\(9\)\(ABD\)\(10\)\(AC\)\(11\)\(ACD\)\(12.\)\({(\frac{\sqrt{6}}{3},\frac{\sqrt{6}}{3}),(-\frac{\sqrt{6}}{3},-\frac{\sqrt{6}}{3})}\)\(13.\)奇\(\pi\)\(14.\)\(4+\frac{......
  • 迟来的HIT2024和reaworld2024体验赛WP
    目录前言碎语2024.2.14中午rwctf2024体验赛vision哈工大青训营2024结营赛计算器小技巧神奇玩意gdb!再也不用苦哈哈往回翻跟踪fork赛后复现rwpwnhttp搜索字符串,github找源码具体构造GET路径穿越POST栈溢出构造ROP前言碎语2024.2.14中午过年玩也玩了,休息也休息了,终于把之前......
  • 2024牛客寒假算法基础集训营3
    M题智乃的36倍数(normalversion)错解幂运算写成了乘~#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'#defineintlonglong#definedebug(x)cout<<x<<""<<endl;#define_debug(a,n)for(inti=0;i<n;i++)......
  • 2024年初找新SAP项目的几个体会
    2024年初找新SAP项目的几个体会 1.一定要找业界知名大型乙方实施公司的项目。比如IBM,AC,凯捷或者印度公司比如TCS,InfoSys等业界知名外企乙方公司的项目,都是相对靠谱的。这些大公司能够拿下业界土豪客户比如跨国外企的项目,因为他们牌子大业界口碑好,能得到不差钱大客户的亲赖和......
  • 2024/2/12学习进度笔记
    sparkrdd持久化frompysparkimportSparkContext,SparkConfimportosimportrefrompyspark.storagelevelimportStorageLevelos.environ['SPARK_HOME']='/export/server/spark'PYSPARK_PYTHON="/root/anaconda3/envs/pyspark_env/bin......
  • WC 2024 游记
    WC2024游记Day-2~Day-1在酒店颓废。Day0不存在的一天。Day1报到日。上午从酒店搬了出来(行李箱好重qvq)。坐上了cq神奇的地铁(轻轨),看着地铁上天下地的感觉还是很奇妙的。大抵是中午的时候到了育才。离育才最近的地铁口可以坐环线(转圈圈!),cq地铁真神奇。到了门口发现每......
  • 2024牛客寒假算法基础集训营1
    2024牛客寒假算法基础集训营1A解题思路:按照\(dfs\)出现顺序暴力判断即可。代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;usingpii=pair<ll,ll>;#definefifirst#definesesecondusingi128=__int128_t;usingpiii=pair<ll,pai......
  • 2024牛客寒假算法基础集训营2个人补题题解(K、D)
    比赛链接:2024牛客寒假算法基础集训营2K、TokitsukazeandPassword(easy)题面看着很难实际上只要暴力的东西,赛时看了眼题面就溜了血亏爆搜,枚举\(abcd\)和_可能的值,枚举的情况只有\(9*8*7*6*9=27216\)种。判断按照枚举出的对应值排列出的密码是否满足条件,满足就\(ans++\)写完......
  • 2024-02-12 闲话
    昨天去避暑山庄看夜灯。灯展确实蛮漂亮照片选摘,虽然有点虚但是我妈妈在路上跟我说“诶看前面的马!”我往左扭头看到了这个,不觉得意外。但是我妈说不对,是你右边的那个!然后我看到了个这不禁让我想起来这个知乎回答虽然我妈并不是说啥是啥,但是确实有这样的桥段是......