首页 > 其他分享 >洛谷 P2886 [USACO07NOV] Cow Relays G 做题记录

洛谷 P2886 [USACO07NOV] Cow Relays G 做题记录

时间:2024-10-17 14:44:07浏览次数:6  
标签:node cnt 洛谷 Cow USACO07NOV int res mp awa

设矩阵 \(M^1=\begin{bmatrix} dis_{1,1} & \dots & dis_{1,n}\\ \vdots & \ddots & \vdots \\ dis_{1,n} & \cdots & dis_{n,n} \end{bmatrix}\),其中 \(dis_{i,j}\) 表示 \(i\) 是否能在 \(1\) 步内走到 \(j\)。

让我们回忆一下矩阵乘法,\(c_{i,j}=\sum_{k=1}^{n} a_{i,k}+b_{k,j}\),这个很像我们的最短路转移。于是我们用矩乘加速,计算即可。

点击查看代码
struct node {
	int x[201][201];
}awa;
int n,t,st,ed;
unordered_map<int,int>mp; int cnt;
node mul(node a,node b){
	node res; mem(res.x,0x3f);
	For(i,1,cnt) For(j,1,cnt) For(k,1,cnt)
		res.x[i][j]=min(res.x[i][j],a.x[i][k]+b.x[k][j]);
	return res;
}
node qpo(node a,int b) {
	node res=a; b--;
	while(b) {
		if(b&1) res=mul(res,a);
		a=mul(a,a);
		b>>=1;
	}
	return res;
}
signed main() {
	in2(n,t); in2(st,ed);
	mem(awa.x,0x3f);
	For(i,1,t) {
		int u,v,d;
		in3(d,u,v);
		if(!mp[u]) mp[u]=++cnt;
		if(!mp[v]) mp[v]=++cnt;
		awa.x[mp[u]][mp[v]]=awa.x[mp[v]][mp[u]]=min(awa.x[mp[u]][mp[v]],d);
	}
//	For(i,1,cnt) For(j,1,cnt) cout<<awa.x[i][j]<<(j==cnt?'\n':' ');
	awa=qpo(awa,n);
	cout<<awa.x[mp[st]][mp[ed]];
}

标签:node,cnt,洛谷,Cow,USACO07NOV,int,res,mp,awa
From: https://www.cnblogs.com/CodingGoat/p/18472301

相关文章

  • 洛谷题单指南-字符串-P2922 [USACO08DEC] Secret Message G
    原题链接:https://www.luogu.com.cn/problem/P2922题意解读:已知M个01串,给出N个01串,对于N个串的每一个,求在M个串中有多少与其有公共前缀,且前缀长度是两个串中较小者。解题思路:用Trie树存储M个01串,用cnt1[]记录某个节点结束的01串个数,cnt2[]记录经过某个节点的01串的数量对于N个0......
  • 洛谷题单指南-字符串-P2375 [NOI2014] 动物园
    原题链接:https://www.luogu.com.cn/problem/P2375题意解读:计算字符串所有子串的不重叠相同前后缀数量。解题思路:1、KMP+暴力通过Next数组,可以计算所有子串相同前后缀的数量然后枚举Next数组,通过回跳Next[j]、Next[Next[j]-1]、Next[Next[Next[j]-1]-1]......来统计长度小于......
  • 20241016每日一题洛谷P1115
    普及-洛谷P1115最大子段和读题可知需要在一段一维数组中寻找一段唯一的区间,使区间内的数和最大,即寻找和最大区间可以想到前缀和的算法假设输入数组a[n]则前缀和数组b[n]=b[n-1]+a[n]那么从什么时候开始的一段区间才能使区间内的数和最大?从前缀和数组逐步来判断这一条......
  • 洛谷题单指南-字符串-P3435 [POI2006] OKR-Periods of Words
    原题链接:https://www.luogu.com.cn/problem/P3435题意解读:定义字符串a是b的周期,当a是b的真前缀,且b是aa的前缀。给定字符串s,求s每一个前缀的最大周期长度之和。解题思路:针对字符串babababa进行样例模拟:前缀子串  最大周期  周期长度b空0ba空0babba2......
  • 洛谷 P5175 数列 题解
    纯纯数学题。看到\(n\le10^{18}\)不难想到矩乘,但是\(\log_210^{18}\approx60\),再加上\(T=30000\)的多测,运算量已经来到了\(1.8\times10^6\),所以我们最多有一个\(\sqrt[3]{\frac{1.5\times10^8}{6\times10^6}}\approx4\)的矩阵。\[\becausea_i=xa_{i-1}+ya_{......
  • 洛谷题单指南-字符串-Test
    原题链接:https://www.luogu.com.cn/problem/CF25E https://codeforces.com/contest/25/problem/E题意解读:给定a,b,c三个字符串,求包含a、b、c的最短字符串长度。解题思路:要得到包含a、b、c的字符串,可以通过a、b、c连接形成,而要使得连接后的字符串最短,可以尽可能的利用重叠部分......
  • 清除openstack导出的qcow2格式的Windows16镜像的管理员密码
    由于公司使用的openstack版本太老,无法使用cloudbase-init传递元数据修改win16镜像的管理员密码,所以琢磨其它办法,搞了一个星期。原理:使用kpartx挂载镜像,然后使用chntpw清空密码,并修改cloudbase-init配置文件里的重置密码选项。准备环境系统:centos7.5磁盘80G(转换win16镜像由qcow......
  • 洛谷题单指南-字符串-P1470 [USACO2.3] 最长前缀 Longest Prefix
    原题链接:https://www.luogu.com.cn/problem/P1470题意解读:求s最长前缀长度,使得可以拆解成p集合中的字符串解题思路:动态规划:设s字符串下标从1开始,p集合用set<string>保存所有的元素状态表示:设f[i]表示前i个字符s[0~i-1]是否能拆解成p中的元素状态计算:对于j=i-1开始往后倒......
  • 洛谷P1638逛画展
    逛画展题目链接题目描述博览馆正在展出由世上最佳的\(m\)位画家所画的图画。游客在购买门票时必须说明两个数字,\(a\)和\(b\),代表他要看展览中的第\(a\)幅至第\(b\)幅画(包含\(a,b\))之间的所有图画,而门票的价钱就是一张图画一元。Sept希望入场后可以看到所有名师的图......
  • 洛谷P1644跳马问题
    跳马问题题目链接题目背景在爱与愁的故事第一弹第三章出来前先练练四道基本的回溯/搜索题吧……题目描述中国象棋半张棋盘如图\(1\)所示。马自左下角\((0,0)\)向右上角\((m,n)\)跳。规定只能往右跳,不准往左跳。比如图\(1\)中所示为一种跳行路线,并将路径总数打印出来......