首页 > 其他分享 >平邑2024高算(补题)

平邑2024高算(补题)

时间:2024-07-25 19:53:37浏览次数:8  
标签:node fx return int 平邑 2024 fa 补题 dp

Day 1

risk

题目描述

image

image

image

解法

考虑最后的集结,不妨考虑找出所有集结过程中可能经过的边,不难发现是一棵树,所以答案就是最小生成树。

代码

点击查看代码
struct node
{
	int u,v,w;
}e[3000001];
int n,m;
int fa[3000001];
int find(int x)
{
	return x==fa[x]?fa[x]:fa[x] = find(fa[x]);
}
int cnt;
long long ans;
bool cmp(node a,node b)
{
	return a.w<b.w;
}
void kru()
{
	sort(e+1,e+1+m,cmp);
	int i;
	int fu,fv;
	for(i=1;i<=m;i++)
	{
		fu = find(e[i].u);
		fv = find(e[i].v);
		if(fu==fv)
			continue;
		ans += e[i].w;
		fa[fu] = fv;
		if(++cnt==n-1)
		{
			cout<<ans<<endl;
			return;
		}
	}
	return;
}

void solve()
{
	cin>>n>>m;
	int i,j;
	for(i=1;i<=n;i++)
		fa[i] = i;
	for(i=1;i<=m;i++)
		cin>>e[i].u>>e[i].v>>e[i].w;
	kru();
	return;
}

magic

题目描述

image

image

image

解法

考虑设 \(dp_{i,j}\) 为经过了前 \(i\) 次操作,特殊球放到 \(j\) 位置所需要删掉的最少的步数,这个显然是好求的。注意到每次 dp 只会改变 \(dp_{i,x}\) 和 \(dp_{i,y}\) 的值,因此可以优化到 \(O(n+m)\)。

代码

点击查看代码
int n,m,k;
int f[1000001];

void solve()
{
	cin>>n>>m>>k;
	for (int i = 1; i <= m; i++)
		f[i] = 1e9;
	f[k] = 0;
	for (int i = 1; i <= m; i++)
	{
		int x,y;
		cin>>x>>y;
		int fx = f[x];
		int fy = f[y];
		f[x] = min(fx + 1, fy);
		f[y] = min(fy + 1, fx);
	}
	for (int i = 1; i <= n; i++)
	{
		if (f[i] == 1e9)
			cout<<-1<<' ';
		else
			cout<<f[i]<<' ';
	}
	return;
}

letters

题目描述



解法

标签:node,fx,return,int,平邑,2024,fa,补题,dp
From: https://www.cnblogs.com/OoXiaoQioO/p/18324010

相关文章

  • 2024 暑假友谊赛-热身2
    TreeDestruction-洛谷|计算机科学教育新生态(luogu.com.cn)思路:树的直径。定理:在一棵树上,从任意节点y开始进行一次DFS,到达的距离其最远的节点z必为直径的一端。第一次dfs1(),从任意一个点,到达的最远的点必然是直径两端的其中一个。再从找到的端点开始dfs1(),......
  • NOIP2024/7/25模拟赛
    T4题意:答案对\(2^{16}\)取模。分析:根节点\(1\)选到\(1\)的概率为\(\frac{1}{n}\),然后随便把剩下的\(n-1\)分配给它的所有子树,记\(1\)的其中一个儿子为\(y\),那么\(y\)选到它所被分配到的数中最小值的概率为\(\frac{1}{siz_{y}}\),然后\(y\)再继续分配给它的子......
  • 河南萌新联赛2024第(二)场:南阳理工学院
    1.D-A*BBBB原题链接:https://ac.nowcoder.com/acm/contest/87255/D根据乘法的原理,且b的每一位都相同,最终答案则是错位相加得出的结果,于是我们将a翻转,从个位开始计算,如果当前位置小于a.size就往前累加,但如果大于或等于b.size就从头开始一个一个的减(这个过程可以通过纸上手写乘法计......
  • 2024.7.25(Git、gitlab以及分支管理)
    分布式版本控制系统一、Git概述Git是一种分布式版本控制系统,用于跟踪和管理代码的变更。它是由LinusTorvalds创建的,最初被设计用于Linux内核的开发。Git允许开发人员跟踪和管理代码的版本,并且可以在不同的开发人员之间进行协作。Github用的就是Git系统来管理它们的网......
  • Metasploit Pro 4.22.2-2024071901 (Linux, Windows) - 专业渗透测试框架
    MetasploitPro4.22.2-2024071901(Linux,Windows)-专业渗透测试框架Rapid7Penetrationtesting,releaseJul19,2024请访问原文链接:https://sysin.org/blog/metasploit-pro-4/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org世界上最广泛使用的渗透测试框架......
  • 2024年CRM系统选型:9款最强推荐
    文章介绍的工具有:纷享销客、ZohoCRM、八百客、红圈通、简道云、简信CRM、Salesforce、HubSpotCRM、Apptivo。在选择合适的CRM系统时,许多企业面临着功能繁多、选择困难的痛点。对于中小企业来说,找到一个既能提高客户关系管理效率,又能适应业务扩展的CRM系统尤为重要。本文将介......
  • 2024企业网站源码|网站后台管理系统 带搭建教程
    在网站搭建前需要考虑的问题了解完网站的搭建基本流程后,我们需要知道,网站该怎么设计,怎么搭建?在建站的时候需要从哪些方面考虑?网站的需求,是用来干什么的,比如:展示产品、品牌宣传、营销推广等;打算用什么方式建站,外包公司还是SaaS产品甚至是自己开发;网站内容,标准的企业网站需要包......
  • 2024 山东省夏令营高算班【讲课】
    Day1数论数论入门欧几里得算法若\(a\perpb\),则\(\gcd(a^m-b^m,a_n-b^n)=a^{\gcd(n,m)}-b^{\gcd(n,m)}\),证明用辗转相减做到指数上。若\(n^a\equiv1(\modm)\)且\(n^b\equiv1(\modm)\),则\(n^{\gcd(a,b)}\equiv1(\modm)\),同理可证。[CF1656H]EQUALLCMSUBSETS......
  • 【2024-ZR-C Day 8】动态规划(2):状压 DP、数位 DP
    【2024-ZR-CDay8】动态规划(2)1.状压DP1.1.子集枚举for(ints=m;s;s=(s-1)&m);1.2.状态压缩1.2.1.快速高维前缀和对于一个\(k\)维数组,设每维的大小分别为\((m_1,m_2,\cdots,m_k)\),要访问的位置为\((i_1,i_2,\cdots,i_k)\),则用\((\cdots(i_1\c......
  • 20240724模拟赛订正题笔记
    (T1)lnsyoj2208逆流而上/P10737[SEERC2020]ReverseGame考虑到失败时字符串应为前面都是0,后面都是1(例如"0000001111111")所以可以将原串的逆序对数求出,记为m,对于每个可翻转的串进行分类讨论:1."10"->"01"可以将原串的逆序对减1。2."100"->"001""110"->"011......