poj 2449 Remmarguts' Date

[QDS]实战指南:Qt Design Studio与C++后端的高效交互开发 本文提供了Qt Design Studio与C++后端高效交互开发的实战指南。通过详细的环境搭建、项目创建和核心通信机制讲解,帮助开发者掌握QML前端与C++后端联动的关键技术,实现复杂业务逻辑与炫酷界面的无缝结合,提升跨平台应用开发效率。 阅读详情
Remmarguts' Date
Time Limit: 4000MS Memory Limit: 65536K
Total Submissions: 16159 Accepted: 4444

Description

"Good man never makes girls wait or breaks an appointment!" said the mandarin duck father. Softly touching his little ducks' head, he told them a story. 

"Prince Remmarguts lives in his kingdom UDF – United Delta of Freedom. One day their neighboring country sent them Princess Uyuw on a diplomatic mission." 

"Erenow, the princess sent Remmarguts a letter, informing him that she would come to the hall and hold commercial talks with UDF if and only if the prince go and meet her via the K-th shortest path. (in fact, Uyuw does not want to come at all)" 

Being interested in the trade development and such a lovely girl, Prince Remmarguts really became enamored. He needs you - the prime minister's help! 

DETAILS: UDF's capital consists of N stations. The hall is numbered S, while the station numbered T denotes prince' current place. M muddy directed sideways connect some of the stations. Remmarguts' path to welcome the princess might include the same station twice or more than twice, even it is the station with number S or T. Different paths with same length will be considered disparate. 

Input

The first line contains two integer numbers N and M (1 <= N <= 1000, 0 <= M <= 100000). Stations are numbered from 1 to N. Each of the following M lines contains three integer numbers A, B and T (1 <= A, B <= N, 1 <= T <= 100). It shows that there is a directed sideway from A-th station to B-th station with time T. 

The last line consists of three integer numbers S, T and K (1 <= S, T <= N, 1 <= K <= 1000).

Output

A single line consisting of a single integer number: the length (time required) to welcome Princess Uyuw using the K-th shortest path. If K-th shortest path does not exist, you should output "-1" (without quotes) instead.

Sample Input

2 2
1 2 5
2 1 4
1 2 2

Sample Output

14
 
分析:K短路问题,单向路,A*算法+spfa
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
const int INF=0x3f3f3f3f;
const int N=1002;
const int M=100010;
int head[N],dis[N],n,m,to[M],nxt[M],l[M],cnt;
int head1[N],to1[M],nxt1[M],l1[M],cnt1;
struct node
{
	int to,len;
	bool operator<(node p)const
	{
		return p.len+dis[p.to]<len+dis[to];
	}
};
void add(int x,int y,int f)
{
	to[cnt]=y;
	l[cnt]=f;
	nxt[cnt]=head[x];
	head[x]=cnt++;
}
void add1(int x,int y,int f)
{
	to1[cnt1]=y;
	l1[cnt1]=f;
	nxt1[cnt1]=head1[x];
	head1[x]=cnt1++;
}
void spfa(int s)
{
	int Q[N],front=0,rear=0,i,j,u;
	bool inQ[N];
	memset(dis,0x3f,sizeof(dis));
	memset(inQ,0,sizeof(inQ));
	Q[(rear++)%N]=s;inQ[s]=1;dis[s]=0;
	while(front%N!=rear%N)
	{
		i=Q[(front++)%N];inQ[i]=0;
		for(j=head[i];j!=-1;j=nxt[j])
		{
			u=to[j];
			if(dis[i]+l[j]<dis[u])
			{
				dis[u]=dis[i]+l[j];
				if(!inQ[u]){Q[(rear++)%N]=u;inQ[u]=1;}
			}
		}
	}
}
int Astar(int s,int k)
{
	int vis[N]={0},i;
	priority_queue<node> Q;
	node p,q;
	p.len=0,p.to=s;
	Q.push(p);
	while(!Q.empty())
	{
		p=Q.top(),Q.pop();
		vis[p.to]++;
		if(vis[p.to]==k)return p.len+dis[p.to];
		for(i=head1[p.to];i!=-1;i=nxt1[i])
		{
			q.len=p.len+l1[i];
			q.to=to1[i];
			Q.push(q);
		}
	}
	return INF;
}
int main()
{
	int a,b,c,s,t,k;
	while(~scanf("%d%d",&n,&m))
	{
		cnt=cnt1=0;
		memset(head,-1,sizeof(head));
		memset(head1,-1,sizeof(head1));
		while(m--)
		{
			scanf("%d%d%d",&a,&b,&c);
			add1(a,b,c);
			add(b,a,c);
		}
		scanf("%d%d%d",&s,&t,&k);
		spfa(t);
		if(dis[s]==INF){puts("-1");continue;}
		if(s==t)k++;
		int min=Astar(s,k);
		printf("%d\n",min>=INF?-1:min);
	}
	return 0;
}

在Qt Creator中管理C++后端对象编程 打开Qt Creator,点击"新建项目",选择"C++项目",然后选择"Qt Widgets应用程序"模板。在"类名"字段中输入一个类的名称,此类将作为后端对象。点击"下一步",然后点击"完成"来创建新的Qt项目。在设计器中,添加一个按钮,并将其命名为"执行操作"(或其他你喜欢的名称)。你可以根据需要添加更多的后端类,并在UI和后端之间建立信号槽连接,实现更复杂的交互和逻辑。在类的头文件中,添加成员变量、函数和信号槽,以实现所需的后端逻辑。在UI设计器中,右键单击窗口并选择"转到槽"。 阅读详情

相关推荐

求K短路的模板

A* dijstra k短路 求法:反向建边 通过dijstra做预处理 最短路作为A*的评估函数 通过A* 将目标点出队列K次 如果原点和终点相同出栈K+1次

k短路 POJ 2449 Remmarguts' Date

Description "Good man never makes girls wait or breaks an appointment!" said the mandarin duck father. Softly touching his little ducks' head, he told them a story."Prince Remmarguts lives in his ki...

weixin_30851867的博客 256

esp32 python开发环境搭建_eclipse esp32开发环境搭建

安装方法基本是按照官网提供的方法来操作https://github.com/espressif/idf-eclipse-plugin#GettingStarted但是官网的方法安装之后还是不能编译成功的,第一次编译会出现一下问题问题1:Building in: E:\eclipse-workspace\helloworlk\buildcmake -G Ninja -DCMAKE_TOOLCHAIN...

weixin_39978276的博客 1263

poj2774:后缀数组之殇

不知道用这样的标题合不合适..总而言之,在我被后缀数组折磨了十余天后,我终于掌握了一种非主流的做法:O(nlog^2 n)构造法..在此我对在《高级数据结构》中介绍的后缀数组构造代码有很深的疑问..因为我发现我对着模板打出来的程序根本无法算出正确的后缀数组..晕 于是我使用的是《挑战程序设计竞赛》中的O(nlog^2 n)模板,真的很好理解,打算在暑假介绍给我亲爱的师弟们.. 折腾了...

alchens0416的博客 193

为Codex添加任务完成提示音:提升开发效率的实用技巧

在自动化脚本开发和模型训练过程中,实时获取任务状态反馈是提升工作效率的关键。通过Hook机制,开发者可以在代码执行的关键节点注入自定义逻辑,实现各种自动化操作。Codex的Hook系统特别适合用于任务完成提醒,其post_execution节点能准确捕获执行结束事件。技术实现上,只需简单配置TOML文件并编写音频播放脚本,就能让系统在任务完成时自动播放提示音。这种声音反馈机制尤其适用于长时间运行的批量任务和模型训练场景,实测可提升30%以上的工作效率。结合动态音效选择和跨平台兼容方案,该技巧还能扩展为桌面通

weixin_26767391的博客 535

【Zephyr 系列 29】低功耗调试指南:电流测量、系统睡眠与功耗分析

Zephyr低功耗调试指南(150字摘要) 针对物联网设备续航需求,本文解析Zephyr低功耗调试方法:1️⃣ 机制:启用PM子系统和tickless idle,配置睡眠策略;2️⃣ 测量:推荐功耗分析仪捕捉μA级电流波动;3️⃣ 优化:管理唤醒源(如GPIO/RTC)、调整BLE广播/连接参数,挂起闲置外设;4️⃣ 分析:建立功耗文档,对比不同模式电流(如待机0.6mA vs广播3.2mA)。强调低功耗需系统性设计,初期即需纳入测试流程。下期将探讨Zephyr OTA升级实现。

hemoparrot的专栏 1180

QT/C++、QtWebApp 基于Http通信的前后端分离式框架

QtWebAdmin是基于QtWebApp+QJsonWebToken+SQLite的前后端分离轻量级C++快速开发框架,以QtWebApp作为底层cppweb,前端采用layui。QtWebAdmin内置部门管理、用户管理、角色管理、菜单管理、数据数据字典,常用系统监控等基础功能,整合了layui前端常用组件。QtWebAdmin定位于以Qt/C++为后端,整合前端框架,引入SQLite作为数据库,自定义了CacheApi作为内存缓存区。

m0_73482095的博客 2919

Cadence HDL原理图库避坑指南:从Excel导入引脚到解决‘V- V+’报错(附FPGA实例)

本文详细介绍了Cadence HDL原理图库的高效构建与排错方法,重点讲解如何从Excel智能导入引脚数据并优化FPGA封装设计。通过数据预处理、智能导入和深度排错三个关键阶段,帮助工程师避免常见错误如‘V- V+’报错,提升设计效率和准确性。

weixin_28739079的博客 236

poj2449 Remmarguts' Date

poj2449 Remmarguts’ Date

ACoder 460

SAP 系统里生成 PDF 的几条主干路径:从 Spool 转换到 Adobe 原生渲染,再到 BTP 云服务

本文系统梳理了SAP生态中PDF生成的多种技术方案,包括Spool转换、OTF转换、Smart Forms/Adobe Forms原生生成以及云端服务等不同路径。文章通过实际案例和代码示例,详细分析了各方案的适用场景、技术要点和工程实践建议,特别强调了多语言支持、字体处理、性能优化等关键因素。针对不同业务需求,提供了从简单导出到复杂交互式PDF的完整解决方案框架,为SAP环境下的PDF处理提供了实用指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 287

使用 Simulink 搭建一个地震信号反射系数反演与滤波联合仿真的系统模型

《Simulink地震信号处理仿真指南》摘要:本文详细介绍了使用Simulink进行地震信号反射系数反演与滤波联合仿真的完整流程。从创建模型、生成含噪合成地震记录(包含子波卷积与随机反射系数),到设计滤波模块(带通/小波/自适应滤波)和实现反演算法(Wiener-Hopf方程/RLS方法),最后通过可视化模块分析结果。教程涵盖理论准备、7个实施步骤、优化建议及实际应用场景,为地震勘探、地质调查等领域提供标准化的信号处理仿真方案,特别适合需要掌握地震信号反演与实时滤波技术的工程人员学习。

amy_mhd的博客 113

POJ 2449: Remmarguts' Date

题目链接:http://poj.org/problem?id=2449 题意: 给定一个有向图, 寻找有向第K短路。 算法: 我用的是A*算法。 f[x]=g[x]+h[x]。 其中g[x]是由起点到当前节点的距离 h[x]是当前节点到终点的最短距离。 本题的边是单向的, 但是在反向SPFA处理h[x]的时候要用到反向边。 trick: s等于t的时

frog的小池塘 1335

工业质检封神!YOLOv8实战金属表面缺陷检测,自建数据集mAP突破95%

本文详细介绍了基于YOLOv8的金属表面缺陷检测实战方案。针对工业质检中的光照不均、纹理复杂、小样本等挑战,作者构建了12000张图像的数据集,提出针对性数据增强策略和两阶段训练方法。通过优化损失函数、调整超参数等技术手段,最终在测试集上达到95.1%的mAP@0.5,检测速度32FPS。相比传统方法,该方案在精度和鲁棒性上均有显著提升,为工业视觉质检提供了可复现的落地解决方案。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 428

POJ 2449 Remmarguts' Date

Description "Good man never makes girls wait or breaks an appointment!" said the mandarin duck father. Softly touching his little ducks' head, he told them a story.  "Prince Remmarguts lives i

超 834

79、昇腾系列服务器/昇腾系列推理卡/昇腾系列嵌入式开发板+Dify+one api部署DeepSeek-R1-Distill-Qwen-32BW8A8+RAG本地模型知识库和负载均衡双实例

阶段,安装过程缺什么,,在docker外面git下源码,进入容器内部进行量化,这里的容器建议在创建个8卡的容器,双卡容器量化会显示npu显存不够,除非你用cpu转模型,我就懒得创建容器了,使用cpu量化吧,巨慢;创建容器,进入容器,计划使用两张昇腾NPU卡推理DeepSeek-R1-Distill-Qwen-32B的W8A8模型,所以构建的容器用两张卡,选6、7卡吧,0-6号卡可以跑文本嵌入模型、重排序模型;直接进入量化阶段,在容器外面操作即可,环境不用管,因为系统已经默认配置了环境,直接跳到。

sxj731533730 6118

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

POJ2449Remmarguts' Date(A*算法)

原题链接:http://poj.org/problem?id=2449 Remmarguts’ Date Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 42272 Accepted: 11687 Description “Good man never makes girls wait or breaks an appoin...

Shaosen的博客 347

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

POJ2449 Remmarguts' Date

A*+Dijkstra=Kth-shortest-path概述这道题好久之前写的.. 因为坚持写博客有好处,而且zrt犇留的作业里也有这道题,所以还是决定了要重温下这道题的解法 http://paste.ubuntu.com/15574067/ 裸的第k短路么.. A*加反向图的单源(当估价)解。 第几次从队列里弹出点i,则就找到了点i的第几短路终止条件必要性和合理性题目出题者不会总是很善

guozizheng001的博客 549

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

poj 2449 Remmarguts' Date(第K短路)

poj 2449 Remmarguts’ DateDescription“Good man never makes girls wait or breaks an appointment!” said the mandarin duck father. Softly touching his little ducks’ head, he told them a story. “Prince Remm

Loi_feather的博客 499

poj2449 Remmarguts' Date A*K短路

K短路

Elemmir的博客 1088

【POJ 2449】 Remmarguts' Date

【题目链接】 http://poj.org/problem?id=2449 【算法】 A*(启发式搜索) 首先,求第k短路可以用优先队列BFS实现,当T第k次入队时,就求得了第k短路,但是,这种做法的复杂度太高 考虑使用A*算法,每个点的估价函数就是这个点到T的最短路,不妨将所有的边...

78

poj2449 Remmarguts' Date A*搜索

A*搜索主要思想:f[i] = g[i] + h[i] 。f[i] 即为所求,g[i] 表示已走过距离,h[i] 表示距离终点的距离。在优先队列中,能尽量把符合条件的方案提前,优化搜索。 对于这道题,先反向建边,求出每个点到终点的最短距离。 再正向搜索,所要记录的内容有:当前节点,已走过了距离,已走过的距离+这点到终点的距离。 每次把与这点相连的下一个点放入队列,直到第k次取出终点,便求出第

KatnissJ的博客 640

POJ 2449 Remmarguts' Date A*算法

求第K短路径。在A*算法中,求最短路径时,当从优先级队列中取到目的节点时就结束了,为了求K短路径,则不结束,继续从优先级队列中取节点,直到第K次取到目的节点就是第K短路径。为了使用A*算法,首先要得到启发函数 f(n)=g(n)+h(n), 其中f(n) 是从初始点经由节点n到目标点的估价函数,g(n) 是在状态空间中从初始节点到n节点的实际代价,g(n)可以在A*算法过程中得到,h(n)是从n到目标节点最佳路径的估计代价,也就是目标节点到其他所有节点的距离,需要通过其他算法(如Dijkstra、Spfa)

mimo9527的专栏 1323
上一篇: poj 3255 Roadblocks
下一篇: poj 2777 Count Color
libing923
博客等级 码龄15年 12粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值