UVA 1048 Low Cost Air Travel

【STM32项目】基于stm32智能鱼缸控制系统的设计与实现(完整工程资料源码) 随着现代化经济的快速发展,物质条件富足的人开始追求精神富足,越来越多的人通过饲养观赏鱼来充实生活、释放压力,但并非所有饲养者都有时间和经验来管理好鱼缸。一种由单片机控制,可实时检测和调节鱼缸环境,可把鱼缸环境实时反映给用户并能被用户远程操控的系统,可以解决养鱼成活率低、耗费时间和精力、参与感不强等诸多难题。 阅读详情

题目链接:https://vjudge.net/problem/UVA-1048

题意:给定一些联票,在给定一些行程,要求这些行程的最小代价

解法:


#include <bits/stdc++.h>
using namespace std;
const int Max_City = 200;
const int Max_Ticket = 20;
const int Max_TicketLength = 10;
const int Max_TripLength = 10;
struct Info{
    int cost,n;
    int city[Max_TicketLength];
};

int N, n, q, trip, sum;//路线编号为trip,sum为总的城市数,n为某条旅行路线的长度
int city[Max_City];//城市序列
int List[Max_TripLength];//当前最小旅游费用路线上第i个到达的城市为List[i]
Info ticket[Max_Ticket];
int f[Max_TripLength][Max_City][4];//途径当前路线的前n个城市,
//最后到达城市m时,最小花费为f[n][m][0]
//最后使用的机票编号为f[n][m][1],
//使用本机票前途径的城市数为f[n][m][2],开始使用本机票的城市为f[n][m][3]
int route[Max_TicketLength*Max_City];//当期路线使用的机票序列
int Find(int x){
    int i;
    for(i=0;i<sum;i++) if(city[i]==x) return i;
    city[sum]=x;
    sum++;
    return (sum-1);
}
int main(){
    int ks = 0;
    while(scanf("%d", &N)!=EOF){
        if(N==0) break;
        sum=0;
        int tmp;
        for(int i=0; i<N; i++){
            scanf("%d %d", &ticket[i].cost,&ticket[i].n);
            for(int j=0; j<ticket[i].n; j++){
                scanf("%d", &tmp);
                ticket[i].city[j] = Find(tmp);
            }
        }
        ++ks;
        scanf("%d", &q);
        for(trip=0; trip<q; trip++){
            scanf("%d", &n);
            for(int i=0; i<n; i++){
                scanf("%d", &tmp);
                List[i] = Find(tmp);
            }
            //init
            for(int i=0; i<n; i++)
                for(int j=0; j<sum; j++)
                    f[i][j][0] = -1;
            for(int i=0; i<4; i++)
                f[0][List[0]][i] = 0;
            //递推路线上到达的城市数
            for(int i=0; i<n; i++){
                while(1){
                    bool change = 0;//更新标志初始化
                    for(int j=0; j<sum; j++)//枚举旅行者目前在的城市
                        if(f[i][j][0]>=0)//若已经求出到城市j的最小花费
                            for(int k=0; k<N; k++)//枚举在城市j开始换用的机票k
                            if(ticket[k].city[0]==j){
                                tmp=i+1;
                                //从当前路线的第i+1个城市出发,枚举使用优惠机票k可到达路线上的每个城市
                                for(int l=1;l<ticket[k].n; l++){
                                    if(tmp<n&&List[tmp]==ticket[k].city[l]) tmp++;
                                    if(f[tmp-1][ticket[k].city[l]][0]<0||f[tmp-1][ticket[k].city[l]][0]>f[i][j][0]+ticket[k].cost){
                                        f[tmp-1][ticket[k].city[l]][0] = f[i][j][0]+ticket[k].cost;
                                        f[tmp-1][ticket[k].city[l]][1] = k;
                                        f[tmp-1][ticket[k].city[l]][2] = i;
                                        f[tmp-1][ticket[k].city[l]][3] = j;
                                        change=1;
                                    }
                                }
                            }
                    if(change==0) break;
                }
            }
            printf("Case %d, Trip %d: Cost = %d\n", ks, trip+1, f[n-1][List[n-1]][0]);
            int l=0;
            int k,i=n-1,j=List[n-1];
            while(i||j!=List[0]){
                route[l]= f[i][j][1];//记下当前的机票编号
                k = f[i][j][2];//记下使用本机票前到过的城市数
                j = f[i][j][3];//记下使用本机票前旅行者在的城市
                i = k;
                l++;
            }
            printf("  Tickets used:");
            for(i=l-1; i>=0; i--){
                printf(" %d", route[i]+1);
            }
            printf("\n");
        }
    }
}




STM32实战开发(66):STM32图像处理开发教程 随着物联网、人工智能和嵌入式技术的不断发展,图像处理技术在嵌入式系统中的应用越来越广泛。图像处理不仅在视觉识别、安防监控、智能家居等领域中发挥着重要作用,也在工业自动化、医疗成像、无人驾驶等高科技领域中占据重要地位。而STM32凭借其强大的硬件性能和丰富的外设支持,成为了许多图像处理应用的理想平台。 阅读详情

相关推荐

【程序化天空盒】过程记录01:日月 天空渐变 大气散射

在做一个仿照原神的天空盒,写文章作为技术总结和记录。

qq_41835314的博客 6742

IELTS-writing exercise Argumentation_Text_10

廉价航空服务+审题的要素 Q: Many people think cheap air travel should be encouraged because it gives ordinary people freedom to travel further. However, others think this leads to environmental problems, so air travel should be mire expensive in order to discourage p

韶言大雅 1865

手把手教你用C#和LibUsbDotNet实现USB设备通信(含完整代码示例)

本文详细介绍了如何使用C#和LibUsbDotNet库实现USB设备通信,包括设备识别、连接建立、同步/异步数据读写等核心操作。通过完整的代码示例,开发者可以快速掌握USB通信的关键技术,适用于工业自动化、医疗设备等多种场景。重点讲解了数据读写优化和错误处理技巧,帮助提升通信效率和可靠性。

a3b4c5的博客 706

UVA1048/LA3561 Low Cost Air Travel

比如,假设你有一张“城市1->城市2->城市3”的联票,你不能用来只从城市2飞到城市3(因为必须从头坐),也不能先从城市1飞到城市2再用其他票飞到其他城市玩,回到城市2后再用原来的机票飞到城市3(因为机票已经上缴)。} ans[N][M]记录最短路径:ans[i][j]记录当前旅行到了城市i,已经走完行程单前j个城市花费最小时,上个行程旅行到了城市v,已经走完行程单前k个城市,对应转机的机票t。给出票的信息,以及一个或多个行程单,你的任务是买尽量少的票(同一种票可以买多张),使得总花费最小。

hlhgzx的博客 1236

ESP32S3开发板玩转多语言AI对话:小智语音机器人粤语/日语/韩语实测

本文基于正点原子ESP32S3开发板,实测了“小智AI”语音机器人的多语言对话能力。项目巧妙整合云端AI与嵌入式硬件,实现了对粤语、日语、韩语等语言的实时识别与合成,为开发者和爱好者提供了一个低成本、可玩性高的跨语言人机交互开发平台。

h9j8k7l6m5n的博客 540

科研作图不发愁:手把手教你用PyMOL给蛋白-DNA互作图‘美颜’(附完整配色与标注方案)

本文详细介绍了如何使用PyMOL对蛋白-DNA互作结构图进行专业美化,包括从PDB文件加载、结构展示与标注、互作位点突出显示到高质量渲染输出的完整流程。通过具体案例(PDB ID:8SSS)演示了锌指结构域区分、关键残基标注和互作距离测量等实用技巧,帮助科研人员制作可直接用于期刊投稿的高质量示意图。

weixin_42523792的博客 553

UVA 1048 - Low Cost Air Travel(最短路)

UVA 1048 - Low Cost Air Travel 题目链接 题意:给定一些联票,在给定一些行程,要求这些行程的最小代价 思路:最短路,一张联票对应几个城市就拆成多少条边,结点表示的是当前完成形成i,在城市j的状态,这样去进行最短路,注意这题有坑点,就是城市编号可能很大,所以进行各种hash 代码: #include #include #include

Remilia's 1858

保姆级教程:用MATLAB搞定运动模糊图片修复(附完整代码与避坑指南)

本文提供了一份详细的MATLAB运动模糊图片修复教程,涵盖盲复原、图像复原等核心技术。通过傅里叶变换和Radon变换分析模糊参数,对比逆滤波、维纳滤波和Lucy-Richardson算法效果,并附完整代码与避坑指南,帮助用户实现专业级图像处理。

weixin_26765363的博客 230

uva 1048 - Low Cost Air Travel(最短路)

题目链接:uva 1048 - Low Cost Air Travel 以两位状态为图上的一个节点,当前城市编号以及匹配上旅程上的p个城市。然后建图做dfs,并记录路径。 #include #include #include #include #include using namespace std; const int maxn = 50005; const i

不慌不忙、不急不躁 1444

STM32CubeIDE开发环境搭建与GPIO控制实战

嵌入式开发中,MCU开发环境构建是软硬件协同的起点,其核心在于工具链选型、外设抽象层级与调试可靠性。HAL库作为ST官方标准硬件抽象层,通过统一接口屏蔽芯片差异,显著提升工程可移植性;而STM32CubeIDE则以图形化配置+自动生成代码的方式,实现‘配置即代码’的确定性开发范式。该组合在教学验证、原型迭代和中小规模量产中具备高性价比技术价值,广泛应用于智能传感、工业HMI及IoT终端等场景。本文聚焦STM32CubeIDE 1.15.0环境部署、MyST账户与固件包管理、ST-LINK驱动校验,以及基于H

weixin_33531560的博客 81

ESM2蛋白预训练模型 蛋白质、氨基酸向量表示

参考: https://github.com/facebookresearch/esm https://huggingface.co/facebook/esm2_t33_650M_UR50D https://esmatlas.com/resources?action=fold tokenizer_对输入蛋白会头尾添加cls、eos特殊字符,占两个字符长度 参考:https://github.com/facebookresearch/esm 直接clone下来代码

weixin_42357472的博客 1万+

1048 - Low Cost Air Travel

Air fares are crazy! The cost of a ticket is determined by numerous factors, and is usually not directly related to the distance traveled. Many travelers try to be creative, sometimes using only parts

1262

DISK配置服务器软RAID工作任务(RAID1+BITLOCKER)-winserver4

DISK配置服务器软RAID工作任务(RAID1+BITLOCKER)-winserver4

新时代先锋的博客 7299

UVa 1048 Low Cost Air Travel

航空公司出售多种固定路线的机票,每张机票包含一个固定的城市序列和价格。乘客必须按机票上给出的城市顺序完整使用机票,不能只使用其中一段,也不能在途中插入其他行程。给定若干种机票和若干条旅行路线,要求为每条路线选择一组机票,使得总花费最小,并输出所使用的机票编号。题目保证每条路线都是可达的,且最优解唯一。输入包含多组测试数据。每组数据第一行给出一个整数 NTNTNT,表示机票种类数。接下来 NTNTNT 行,每行描述一种机票:第一个整数为价格,第二个整数为该机票包含的城市数量,随后给出这些城市的编号。接着一行给

寂静山林 117

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

UVa1048 Low Cost Air Travel——最短路

很好的一道题呀 思路 状态\(d(i,j)\)表示已经经过了行程单中的\(i\)个城市,目前在城市\(j\)的最小代价,直接建边跑最短路就行了 比如机票为\(ACBD\),行程单为\(CD\),那么对于\((0,A)\),连向\((1,C)\),\((1,B)\),\((2,D)\) 有两个需要注意的地方 1.起点为\((1,行程单的起点)\) 2.城市编号很大,要离散化 以下是代码,离散化用\(...

weixin_30593443的博客 224

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

UVA 1048 Low Cost Air Travel 最短路

以(i,j) 为结点建图,其中i表示目前已经到过行程单上的前i个城市,j是目前在哪个城市。 注意 1.起点是行程单上的第一个城市 2.城市的编号会很大,要重新编号。 //#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstring> #...

weixin_33807284的博客 129

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

uva 1048 最短路的建图 (巧,精品)

大白书 P341这题说的是给了NT种飞机票,给了价钱和整个途径,给了nI条要旅游的路线。使用飞机票都必须从头第一站开始坐,可以再这个路径上的任何一点下飞机一但下飞机了就不能再上飞机,只能重新买票,对于每张票使用的状态有经过了这个路途的前i个点使用它,那么点就有,n*len(n为城市编号,为旅途所经过的所有点的个数),每张票在已经走完第一个点使用,第二个点,第三个点使用。。。最后从经过第一个点的旅途...

weixin_30725315的博客 142

HDU1048 POJ1298 ZOJ1392 UVALive2540 The Hardest Problem Ever【密码+水题】

The Hardest Problem Ever Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 26502   Accepted: 14358 Description Julius Caesar lived in a time of danger and intr

海岛Blog 2886

LA 3561 Low Cost Air Travel 迪杰斯特拉+建图

LA 3561 题意:有n张联票如(1--&gt;3--&gt;2),每张联票有价格,从起点开始,可以任选联票的某站中途下飞机,不过下了后不能再上,给出NI个行程,格式如(1--&gt;3--&gt;4),要求花最少的钱买票,可以按顺序到达行程的每个城市。 思路:这个题是个好题,难在构图,花了我巨长的时间构了个错误的图....在网上学了各路大神的方法后,总算搞定了。只要搞定构图,这题就直接套模...

ccsu_cat 593

UVALive 3561 Low Cost Air Travel(多状态最短路,dp)

题目:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1562 题目大意:就是有一些联票,每张票有一些站,每张票你只能从头开始乘,不能不能中途上或者下。现在有一些行程,要按顺序去一些地方。问你怎么样乘花费最小。输出最小值和路径。 解题思路

沉溺的专栏 1598

Low Cost Air Travel UVALive - 3561

Low Cost Air Travel UVALive - 3561图论·最短路题目大意:有一些联票,每张票有一些站,每张票你只能从头开始乘,不能不能中途上或者下。现在有一些行程,要按顺序去一些地方。问你怎么样乘花费最小。输出最小值和路径。题解:由于联票的存在,不能用相邻两个城市的最短路求和了,因为几个连续的城市可能在用同一张联票。 解决方法是把当前已经走了行程单上的前pos个城市作为状态的一部分

FTM's Blog 464

la 3561 Low Cost Air Travel

题目:Low Cost Air Travel题意:给出nt种机票,输入每张机票的价格,以及它可到达的地点。对于每张机票,只能从第一站开始乘坐,但是可以从任何一站下飞机。再给出ni张行程表,每张行程表上包括一串地名,必需按顺序到达,但是中途可以经过其它城市作为中转。问满足每张行程单所需的最小花费以及路径。若有多种可能,输出经过城市最少的路径。思路:对于每一张行程单单独处理。每一个点(i,j)代表当前...

iwi 427

CycleGAN 论文阅读及代码实现

介绍 CycleGAN是2018年发表于ICCV17的一篇论文,可以让2个图片相互转化,也就是风格迁移,如马变为斑马,斑马变为马。 网络结构 CycleGAN总结构有4个网络,第一个为生成网络G:X—>Y;第二个网络为生成网络F:X—>Y。第三个网络为对抗网络命名为Dx,鉴别输入图像是否为X;第四个网络为对抗网络命名为Dy,鉴别输入图像是不是Y。 ...

I good vegetable a! 5422

Tensorflow实战5:Tensorflow实现进阶的卷积网络(对CIFAR数据集进行分类)

算法实现过程的详细介绍 卷积神经网路最强大的地方还是对于图像问题的处理,现在就来处理在CIFAR10数据集上进行分类的一个任务,关于CIFAR10数据集介绍和CIFAR10数据集下载,可以在网上查阅相关资料。 载入一些常用库,比如Numpy和time,并载入Tensorflow Models中自动下载,读取CIFAR-10数据的类。其中下载的代码为: git clone https://git...

I good vegetable a! 472

紫书 例题7-3 UVA 10976

【题意】给你一个数k,求所有使得1/k = 1/x + 1/y成立的x≥y的整数对。 【解题方法】数论,枚举。枚举所有在区间(k+1,2k)上的y即可,当1/k - 1/y的结果分子为1即为一组解。 【AC代码】 // //Created by just_sort 2016/1/3 //Copyright (c) 2016 just_sort.All Rights Reserved //

I good vegetable a! 773
上一篇: SPOJ 1693 Coconuts 二者取其一式问题 最小割
下一篇: HDU 4085 Peach Blossom Spring 斯坦纳树
just_sort
博客等级 码龄11年 2357粉丝 1667原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值