首页 > 其他分享 >2024北京集训trick合集

2024北京集训trick合集

时间:2024-08-08 19:39:41浏览次数:15  
标签:node trick diss int ed dfs 2024 3000 合集

atcoder ARC092F

给定一张 \(n\) 个点 \(m\) 条边的有向图,判断每一条边反向后是否改变图中强连通分量的数量。

数据范围: \(n\le1000 \ \ \ \ m\le200000\)

先跑一遍tarjan,然后问题转化为判断每个直接相连的两点在不经过其连边的情况下是否互通。
对每个点dfs维护前缀和后缀能否回到该点,若都不能则不能,反之则能

因为每条边都要遍历
所以在图上的dfs复杂度是边数 $ m $
$ O(n*m) $ 可以通过本题。

cf472D

给定图上所有点对距离,判断是否存在合法生成树
\(n\le2000\)
注意到若存在则必定为最小生成树,kruscal建图,$ n^{2} $ dfs判定,结束

#include<bits/stdc++.h>
using namespace std;
int n,tot,cnt;
int fa[4001000];
struct node{
	int u,v,w;
}b[4001000];
int dis[3000][3000];
bool cmp(node a,node b){
	return a.w<b.w;
}
int find(int a){
	if(fa[a]==a) return a;
	return fa[a]=find(fa[a]);
}
struct nodde{
	int v,w;
};
bool flag=0;
vector<nodde>e[3000];
void dfs(int u,int fa,int s,int diss){
	if(diss!=dis[s][u]) flag=1;
	for(auto ed:e[u]){
		int v=ed.v,w=ed.w;
		if(v==fa) continue;
		dfs(v,u,s,diss+w);
	}
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			int u;
			scanf("%d",&u);
			dis[i][j]=u;
			b[++tot].u=i;
			b[tot].v=j;
			b[tot].w=u;
			if(i!=j&&u==0) flag=1;
		}
	}
	for(int i=1;i<=n;i++) fa[i]=i;
	sort(b+1,b+1+n*n,cmp);
	for(int i=1;i<=n*n;i++){
		int u=b[i].u,v=b[i].v;
		if(find(u)!=find(v)){
			e[u].push_back({v,b[i].w});
			e[v].push_back({u,b[i].w});
			cnt++;
			fa[find(u)]=find(v);
			if(cnt==n-1) break;
		}
	}
	for(int i=1;i<=n;i++) dfs(i,0,i,0);
	if(flag) cout<<"NO";
	else cout<<"YES";
	return 0;
}

简单移动

给两个长度相等的字符串 \(A,B\) 每次可以在中任选一个字符并移到串的开头。求将 \(A\) 变成
\(B\) 的最小操作次数。

等价于最长后缀和。

姨外孙女婿舅妈的妹夫

你有面值分别为$ 1\ 5\ 10\ 50 $的纸币,每种都有无穷多张。
给定 \(n\) 求使用 \(n\) 张纸币能够得到多少种不同的面值和。
表哥发现11之后n每加一ans加49
输入一个输出一个先想打表好吧

标签:node,trick,diss,int,ed,dfs,2024,3000,合集
From: https://www.cnblogs.com/keqing-/p/18349589

相关文章

  • 2024睿抗机器人开发者大赛(RAICOM) CAIP编程技能赛 国一
    最后91分,国一。前几题都AK了,最后一题先是输出0,得了个1分。花了一个小时都没解决这题,难受ing,其实到最后差不多要改对了(降落那一部分没时间改),但是没时间了,hhhh。拿到国一,简直圆梦啦!!!本科拿的国三,差0.02秒就是国二,从此内心蒙上阴影。哭死ing研一终于拿了个编程比赛的国一,也算......
  • 2024年深圳市工业设计发展扶持计划申报时间
    为了进一步提升深圳市工业设计水平,加快工业设计与制造业的深度融合,2024年深圳市工业设计发展扶持计划现已全面启动。该计划旨在通过资金支持、政策优惠等多种方式,鼓励和支持工业设计企业及个人进行技术创新和产品开发,以增强深圳工业设计在全球市场的竞争力。对于符合条件的企业......
  • 2024年苏州市跨国公司地区总部和功能性机构申报临近截止时间
    苏州市跨国公司地区总部和功能性机构申报的截止时间已经迫在眉睫——8月12日。对于尚未提交申报材料的企业,现在是时候加快步伐,把握这最后的申报机会了。项目介绍苏州市一直致力于吸引和培育跨国公司地区总部及功能性机构,以推动外资总部经济的发展。截至目前,苏州已成功吸引了......
  • 2024年度勘察设计注册工程师资格考试报考条件
    2024年度勘察设计注册工程师资格考试报考条件一.注册土木工程师(岩土)资格考试条件(一)参加注册土木工程师(岩土)基础考试,应具备下列条件之一:⑴取得本专业或相近专业大学本科及以上学历或学位。⑵取得本专业或相近专业大学专科学历,从事岩土工程专业工作满1年。⑶取得其他工科专......
  • 2024年TI杯E题-三子棋游戏装置方案分享-jdk123团队-第一弹赛题的选择与前期方案的准备
    赛前准备本来我们团队前几个月的准备都在小车上,赛前也完成了STM32,树莓派4B,Openmv等几款常见主控板来对小车完成基本的模块封装控制。我们团队的大部分精力以及预算都准备在了小车上面。赛题选择由于在赛题公布的的那一天,我们发现H题,自动行驶小车,要求指定使用TI板子,此时......
  • 2024-08-07 多校联合暑假训练赛第四场 补题+分析
    A.小盒子题意+思路:题意其实概括的不是非常准确简要题意:圆盒有n个格子,格子自带ai个棋子.是否通过任意起点通过顺时针-1,-2,...,-n的操作使得圆盒中所有所有的棋子都为0思路:贪心对于所有棋子通过顺时针操作的时候每一次都是(1+n)*n/2次是一个等差公式所以......
  • 2024-8-7 算法学习
    P6136【模板】普通平衡树(数据加强版)题意:1,插入一个数;2,删除一个数3,查询一个数的排名4,查询第x个数5,查询x的前驱和后继重点在于分裂split和合并merge操作:1:分裂为X[0,x],Y[x+1,n],后rt=merge(X,x,Y)2:分裂为X[0,x-1],Y[x,x],Z[x+1,n]后Y=merge(Y.l,Y.r),后rt=merge(X,Y,Z);3......
  • CSP模拟 小 trick 总结 (持续施工中)
    虽然这篇博客来的有点晚,但还是写了,欢迎dalao补充(1、分块、莫队有关:(1):一个真正的回滚莫队(感谢Qyun的讲解)$\\\\\\\\$学习回滚莫队的时候,我们经常会在回滚时使用memcpy来恢复以前的版本,但众所周知--memset和memcpy常数巨大,破坏了莫队$O(n\sqrtn)$的时间复杂度,导......
  • VB.NET钢琴MIDI简谱播放器代码QZQ2024-8-7
    ImportsSystem.Runtime.InteropServicesPublicClassForm1'义WindowsAPI函数<DllImport(“winmm.dll”)>PrivateSharedFunctionmidiOutGetNumDevs()AsIntegerEndFunction<DllImport("winmm.dll")>PrivateSharedFunctionmidiOutGet......
  • 20240808题解
    话说T2写了个动态树结果考场调不出来,这下大炮打蚊子了。森林(forest)题面:符合条件的森林中深度相同的点度数相同,\(1\lei\len\),求点数为\(i\)的符合条件的森林的种类数。题解:将森林中每一个根节点连到同一个节点上变成一棵树。令\(f(i)\)表示符合条件的树的种类数,那么\(f(i......