首页 > 其他分享 >Greg and Graph

Greg and Graph

时间:2024-07-09 20:00:29浏览次数:8  
标签:删除 int Graph long vis Greg 1000

https://www.luogu.com.cn/problem/CF295B?contestId=180677
Greg 有一个有边权的有向图,包含 n 个点。这个图的每两个点之间都有两个方向的边。Greg 喜欢用他的图玩游戏,现在他发明了一种新游戏:
游戏包含 n 步。第 i 步 Greg 从图中删掉编号为 xi的点。当删除一个点时,这个点的出边和入边都会被删除。在执行每一步之前,Greg 想知道所有点对间最短路长度的和。
最短路可以经过任何没删掉的点。换句话说,如果我们假设 (,,)d(i,v,u) 是在删掉 xi 前 v 和 u 间的最短路长度,那么Greg想知道下面这个求和的值:∑,,≠(,,)∑ v,u,v=u
d(i,v,u) 。帮帮 Greg,输出每一步之前要求的值。
题意大概
正常按题意来讲是根据先算出一个点走向所有点的最小值后再删除一个点算出除了那一个点后的走过所有点的最小值,一次类推将一个个点删除后除了这些点以后的最小值
但无疑这样子写对我们而言十分困难去写他,所以我们用逆向思维先将所有点的点删除,然后删除的点进行倒叙得到一个新的顺序根据这个新的顺序我们将我们的点一个个加回来
一个个进行计算并将他们倒叙进行存储下面献上代码
思路
将题目的所有点进行删除,我们相当于在空白的纸上,从后往前将删除的点恢复并用floyd进行计算最小值
并进行记录

点击查看代码
`#include<bits/stdc++.h>
using namespace std;
long long dis[1000][1000],x[1000],vis[1000],judge[1000],ans[1000];//judge来判断该点是否被恢复 ,vis来记录删除的顺序
int main()
{
	long long n;//记得开 long long 题目中给出提示
	cin >> n;
	for(int i  = 1; i <= n; i++)
	{
		for(int j = 1; j <= n; j++)
		{
			cin >> dis[i][j]; 
		}
	}
	for(int i = 1; i <= n; i++)
	{
		cin >> vis[i];
		judge[vis[i]]=1;//将这些点进行删除 
	}
	for(int i = n;i >=1; i--)
	{
		long long k = vis[i];//进行倒叙从后往前进行恢复 
		judge[vis[i]]=0;//将删除的最后一点-》1开始恢复 
		for(int j = 1; j <= n; j++)
		{
			for(int q = 1;  q<= n; q++)
			{
				if(q==j)continue;//当出发点等于到达点时无意义所以跳过 
				dis[j][q]=min(dis[j][q],dis[j][k]+dis[k][q]); //计算起点到我要去的点的最小值。并将恢复的跳点进行对比,起点-》终点
                //和起点-》到恢复的点-》终点的最小值进行对比取得最小值 
				if(judge[j]==0 && judge[q]==0)ans[i]+=dis[j][q];//判断上述最小值是否成立(这两个点是否已经恢复是否已经存在 )将他存起来 
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		cout << ans[i] <<" ";//答案要正序输出所以正常输出即可 
	}
	return 0;
}`

标签:删除,int,Graph,long,vis,Greg,1000
From: https://www.cnblogs.com/gqc4722/p/18292650

相关文章

  • manim边学边做--Paragraph
    对于长篇大段的文本显示,manim中专门提供了一个Paragraph类。使用Paragraph,就不需要用拼接Text的方式来显示大段的文本。Paragraph在manim各个模块中的位置大致如上图中所示。1.主要参数Paragraph可以看作是基于Text的扩展,当你需要显示多行文本的时候,用Paragraph更加方便。上一......
  • 【饼图交通方式】用ECharts的graphic配置打造个性化
    利用ECharts的graphic配置打造个性化图表内容概要ECharts是一款强大的数据可视化工具,它提供了丰富的配置选项来定制图表。本文将重点介绍graphic配置的使用,展示如何通过在饼图中添加个性化的图形元素,例如中心图像,来增强图表的视觉效果。效果预览适用人群数据可视化工......
  • INFOGR: Graphics Rasterization
    2023/2024,4thperiodINFOGR:GraphicsPractical2:RasterizationAuthor:PeterVangorp,basedonapreviousversionbyJaccoBikkerTheassignment:ThepurposeofthisassignmentistocreateasmallOpenGL-based3Dengine,startingwiththeprovided......
  • python-graph-study2024-7
     1.先打基础1基础学习笔记 GraphCreationNetworkXgraphobjectscanbecreatedinoneofthreeways:Graphgenerators—standardalgorithmstocreatenetworktopologies.Importingdatafrompreexisting(usuallyfile)sources.Addingedgesan......
  • 关联(Association) && 聚合(Aggregation) && 组合(Composition)
    组合概述在现实生活中,复杂的对象通常是由小的,简单的组成,从简单对象构建复杂对象的过程称为对象组合例如汽车是用金属框架,发动机,轮胎,变速器和其他大量零件制造而成的个人电脑由CPU,主板,内存等组成即便是你也是由较小部分组成:头,身体,腿,手从广义上讲,两个对象存在关系构成了......
  • C++(Qt)-GIS开发-QGraphicsView显示瓦片地图简单示例
    C++(Qt)-GIS开发-QGraphicsView显示瓦片地图简单示例目录C++(Qt)-GIS开发-QGraphicsView显示瓦片地图简单示例1、概述2、实现效果3、主要代码4、源码地址更多精彩内容......
  • LLM大模型: RAG的上下文语义聚类retrieval — GraphaRAG
     截至目前,RAG最大的缺陷就是无法回答总结性的问题了。上篇文章(https://www.cnblogs.com/theseventhson/p/18281227)介绍了RAPTOR方法(利用GMM高斯混合模型对chunk聚类,然后再用LLM对每个cluster概括总结摘要)提取cluster的语义,借此来回答概括、总结性的问题,最核心的步骤就是聚......
  • linux部署Hugegraph
    HugeGraph是一款易用、高效、通用的开源图数据库系统(GraphDatabase)。一、基本概述功能特性:HugeGraph实现了ApacheTinkerPop3框架,并完全兼容Gremlin查询语言,具备完善的工具链组件,助力用户轻松构建基于图数据库之上的应用和产品。它支持百亿以上的顶点和边快速导入,并提供毫秒级......
  • 1055 - Expression #9 of SELECT list is not in GROUP BY clause and contains nonag
    MySQL8的默认sql_mode包含了only_full_group_by,如果想要sql不按照这模式做检查,可以设置当前session的sql_mode值不包含oly_full_group_by;全局修改则使用以下sql--全局配置session级配置则去掉GlobalSETGLOBALsql_mode='ANSI_QUOTES,STRICT_ALL_TABLES,STRICT_TRANS_TAB......
  • BACON: Supercharge Your VLM with Bag-of-Concept Graph to Mitigate Hallucinations
    目录概BACON代码[YangZ.,FengR.,etal.BACON:Superchargeyourvlmwithbag-of-conceptgraphtomitigatehallucinations.2024.]概本文提出了一种新的数据格式:BACON(BAg-of-Conceptgraph).BACONBACON希望将一个图片转换为\(G=(D,O,R,B)\)的数据格式......