首页 > 其他分享 >关于 Floyd 的卡常

关于 Floyd 的卡常

时间:2023-08-24 16:24:49浏览次数:41  
标签:AC int color Floyd 关于 卡常 1001

众所周知,Floyd 是一个复杂度为 \(O(n^3)\) 的算法,通常用于求两点之间的最短路径。

其代码如下:

for(int k=1;k<=n;k++){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++) dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);
		}
	}

在比赛和测试中,\(500 \leq n \leq 1000\) 的数据可能无法通过 Floyd 取得 \(\color{green}AC\) or 较不错的部分分,所以我们需要卡常。

卡常代码如下,与正常代码只有细微的差别。

for(int k=1;k<=n;k++){
		for(int i=1;i<=n;i++){
			if(dp[i][k]==INF) continue;
			for(int j=1;j<=n;j++) dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);
		}
	}

P2912 [USACO08OCT]Pasture Walking G

这是一道树上 LCA 问题,不过我们可以用 Floyd \(+\) 卡常通过此题。

非卡常 (\(\color{red}70\) 分)

卡常 (\(\color{green}AC\))

AC Code

#include<bits/stdc++.h>
using namespace std;
int n,q,dp[1001][1001];
int main()
{
	scanf("%d%d",&n,&q);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++) dp[i][j]=1e9;
	}
	for(int i=1;i<n;i++){
		int x,y,z;
		scanf("%d%d%d",&x,&y,&z);
		dp[x][y]=dp[y][x]=min(dp[x][y],z);
	}
	for(int k=1;k<=n;k++){
		for(int i=1;i<=n;i++){
			if(dp[i][k]==1e9) continue;
			for(int j=1;j<=n;j++) dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);
		}
	}
	while(q--){
		int x,y;
		scanf("%d%d",&x,&y);
		printf("%d\n",dp[x][y]);
	}
	return 0;
}

标签:AC,int,color,Floyd,关于,卡常,1001
From: https://www.cnblogs.com/GaodeSean/p/17654402.html

相关文章

  • 简单记录关于DBbridge迁移bigint类型数据变为负数的问题
    在DBbridge中测试迁移tdsqlpcloud_monitor库时发现部分表迁移失败:根据报错Datatruncation:Outofrangevalueforcolumn'checksum'atrow1,手动在目标库中dropproxy_classes_analysis表,然后用DBbridge的手动补正功能去掉checksum的unsigned限制后重新建表:建表完成......
  • 关于公用方法的参数校验和异常抛出
    通常来说,比较规范的写法和定义:1、公用方法,尤其是业务上的公用方法是不做参数校验的,由调用方校验参数,因为公用方法通常简短且正确性要有保障,导致出错的原因通常是外部导致的,所以参数校验和日志的打印由调用方去写。2、公用方法对于参数进行操作以后,那么还是会打印一些日志的,比如......
  • 关于前端接口的formData传参
    工作中遇到个简单的问题,后端提供接口需要前端用formdata传文件和普通对象参数拼接的参数;本来是个简单的问题,记录一下做个简单的总结顺便梳理下相关基础性知识点:1.formdata将数据转换成键值对进行传参,key是唯一,一个key可以对应多个value,如果是使用表单初始化,每个表单字段对......
  • 视频云存储平台EasyCVR视频汇聚平台关于机电设别可视化管理平台可实施设计方案
    随着工业化进程的不断发展,机电设备在各行各业中扮演着重要的角色。然而,由于机电设备种类繁多、数量庞大,包括生产机械、建筑器械、矿用器械、制药器械、食品机械等,传统的手动管理方式已经无法满足对设备进行精细化管理的需求。因此,设备生产厂家、设备维保商和设备使用单位正在寻求......
  • 由P7914括号序列(A题)引发的关于区间DP的思考
    和CF149DColoringBrackets(B题)一样,都是关于括号的区间DP。在B题中,有一个细节,就是在枚举断点时枚举到第一个就要break,这是为了使每种方案只贡献一次,防止一种方案中有多个符合条件的断点。此题中,因为序列的字符是不变的,所以直接break就行了。但是在A题中,情况变得比较复杂,比如一......
  • python3_关于数字的一些操作记录
    1、数字整数、小数部分分离方法1:math模块提供的floor方法xs=num-math.floor(num)zs=num-xsreturn 'zhengShu: {0}, xiaoShu: {1}'.format(str(zs),str(xs))方法2:将浮点类型的数字转化为字符串zs,xs=str(num).split('.')return 'zhengShu: {0}, xiaoShu: {1}'.fo......
  • 与gpt关于路由问答
    问:if(store.getters.roles.length===0){//判断当前用户是否已拉取完user_info信息store.dispatch("GetInfo").then(()=>{store.dispatch("GenerateRoutes").then((accessRoutes)=>{......
  • 科技政策 | 四川省科学技术厅关于发布2024年第一批省级科技计划项目申报指南的通知
    原创|文BFT机器人近日,四川省科学技术厅发布了2024年第一批省级科技计划项目申报指南;其中包括自然科学基金项目、重点研发计划、科技成果转移转化引导计划、科技创新基地(平台)和人才计划。01自然科学基金项目实施周期重大项目实施周期为3年;重点项目实施周期为3年;面上项目实施周期......
  • 关于灾备系统中的完全备份,增量备份,差异备份是什么?
    完全备份:完全备份就是用存储介质对整个系统进行备份,包括系统和数据。这种备份方式的好处就是很直观,容易被人理解。而且当发生数据丢失时,只要用备份数据,就可以恢复丢失的数据。然而它也有不足之处:首先由于每次都对系统进行完全备份,因此在备份数据中有大量重复数据,例如操作系统与应......
  • 关于时间的工具类
    importcn.hutool.core.text.StrPool;importcom.scggic.hr.service.common.Constant;importcom.scggic.hr.service.common.ServiceException;importcom.scggic.hr.service.ov.common.DateVo;importjava.sql.Timestamp;importjava.text.ParseException;importjava.text.S......