cpp环境【VIJOS1698】导游

Cpp环境【Uva1160】【Vijos2806】易爆物 【问题描述】   有一些简单化合物,每个化合物都由两种元素组成(每个元素用一个数字表示)。你是一个装箱工人,从实验员那里按照顺序依次把一些简单化合物装到车上。但这里存在一个安全隐患:如果车上存在k个简单化合物,正好包含k中元素,那么他们将组成一个易爆的混合物。为了安全起见,每当你拿到一个化合物时,如果它和已装车的化合物形成易爆混合物,你就应当拒绝装车。编程输出有多少个没有装车的化合物。【输入格式 阅读详情

【问题描述】 
  Lebmond有一家旅游公司。他的任务是带一些游客去一个遥远的城市。一些城市之间有双向道路,每条路线规定了自己的最大乘客数目。Lebmond有一份包含城市间道路的状况和公交车最大载重容量的

地图(保证任意两点之间能相互到达)。往往无法一次性地将所有乘客带往目的地。例如:在下面7个城市的地图中,边代表道路,每条边上的数字代表这条道路上公交车的最大载客量。 
  如果Lebmond要把99位乘客从城市1带到城市7,则至少要往返5次(他必须陪同每一群游客)。最佳路线是1-2-4-7。
  帮助Lebmond把所有游客带到目的地,且往返次数最少。如果不能把游客送到目的地,输出“No”。
   
【输入格式】 
  第一行两个整数N和R,分别表示城市数量和道路数量,各城市编号为1..N。
  接下来的R行,每行3个整数:A B P,表示道路AB的最大载客量为P。
  最后有若干行,每包含3个整数:S D T,分别表示出发城市,目标城市的编号和游客数量,以0 0为结束。
 
【输出格式】 
  针对每个出发城市和目标城市,输出一个整数,表示需要往返的次数。
   
【输入样例】    
7 10
1 2 30
1 3 15
1 4 10
2 4 25
2 5 60
3 4 40
3 6 20
4 7 35
5 7 20
6 7 30
1 7 99
3 7 70
0 0
 
   
 【输出样例】   
5
3
   
【数据范围】  
最多有50000个城市,有100000条道路,道路的容量位于区间[1,100000]。


【思路梳理】
       显然这个题是要通过计算路径上权值最小的边的权值(短板原理,木桶能够装多少水取决于它最短的一块木板有多长)来计算往返次数,这个最小值越大,我们的答案也就越优,往返的次数也就越少。
       大概的思路方向有三种:一种是暴力地使用DFS/BFS,从出发城市进行遍历,求出整个过程中经过每条路线所需要的往返次数。当有100000条边且有多个询问时,时间将无法忍受。
       第二种和第三种都要用到的思想是并查集。首先是“并查集+贪心思想”,要使得次数最小,那么整个路径上所有边的最大载客量都应该最大。通过边集数组将每一条边按照权值(最大载客量)由大到小进行排序。然后对于每一次查询,从各个点孤立的初始状态下,动态地按照每一条边权重由大到小的顺序将两侧的端点加入到并查集中,每加入一次就判断出发城市和目的地城市是否已经连通。如果已经连通,此时加入的边一定使得整个路径的权重的最小值最大,即通过这条路径来载客的往返次数相较于其他任意一条边都要少。
       另一种想法是通过“并查集+二分猜答案”的思想,每一次对整张图的每条边根据权值来进行“假删除”:猜测一个mid=(A+B)/2值进行一次并查集合并处理,将每一条权值大于猜测的mid值的边的端点加入到并查集中,每加入一次就进行判断,确定出发城市和目的地城市是否已经连通,若在添加的过程中前者与后者就已经连通,那么说明这个猜测值可行但不一定最优,应该在下半个区间(A=mid+1)进行猜测并且将这个mid值赋值给ans保存;如果所有能够加入并查集的都已经加入但还是没有连通,说明猜测的mid值过大,应该在上半个区间猜测(B=mid-1)并且舍弃这个mid值。当A>B的时候,猜测停止,此时的ans就是整条路径上的最小的最大载客量。
       值得注意的是,每一次往返都要将Mr.Lebmond算上,也就是说ans要减一。这样一来,也就需要判断是否会出现每一次只能将Mr.Lebmond载走或者不能载走任何一个人的情况。
        还有需要考虑的特殊情况:当出发城市和目的地城市相同时,输出自然为0.

【CPP代码】
#include<cstdio>
#include<vector>
#include<iostream>
#include<algorithm>
#define maxn 50005
#define maxr 100005
using namespace std;
int n,r,fa[maxn];
struct edge
{
 int u,v,w;
};
vector<edge>E;

int find(int x)
{
 if(fa[x]==x) return x;
 int root=find(fa[x]);
 fa[x]=root;
 return root;
}

void Union(int a,int b)
{
 fa[find(a)]=find(b);
}

bool judge(int a,int b)
{
 return find(a)==find(b);//
}

void initial()
{
 for(int i=1;i<=n;i++) fa[i]=i;
}

bool cmp(edge a,edge b)
{
 return a.w>b.w;
}

int main()
{
 //freopen("in.txt","r",stdin);
 cin>>n>>r;
 for(int i=1;i<=r;i++)
 {
  int a,b,c;//
  scanf("%d%d%d",&a,&b,&c);
  E.push_back((edge){a,b,c});
 }
 sort(E.begin(),E.end(),cmp);

 int start,end,people;
 while(scanf("%d%d",&start,&end)==2)
 {
  if(start==0 && end==0) break;
  scanf("%d",&people);
  if(start==end){printf("0\n");continue;}
  int ans=-1,cnt=0;
  
  initial();
  for(int i=0;i<E.size();i++)
  {
   int a=E[i].u,b=E[i].v,c=E[i].w;
   Union(a,b);
   if(judge(start,end))//
   {
    ans=c;
    break;
   }
  }
  
  ans--;
  if(ans<1) printf("No\n");
  else
  {
   cnt=people/ans;
   if(people%ans!=0) cnt++;
   printf("%d\n",cnt);//
  }
 }
 
 return 0;
}

SLAM轨迹评估神器evo实战:从GPS到TUM格式的完整转换指南(附Python代码) 本文详细介绍了如何使用evo工具将GPS数据转换为TUM格式,以便进行SLAM轨迹评估。通过Python代码实现GPS到笛卡尔坐标的精确转换,并提供了完整的处理流程和实战案例,帮助开发者轻松完成从原始GPS数据到精确轨迹评估的全过程。特别适用于ORB-SLAM等视觉SLAM算法的性能验证。 阅读详情

相关推荐

FSL软件安装

FSL软件安装

huang_tianyuan的博客 2630

基于C++的校园自助导游及信息服务系统

实习环境: Visual Studio 2017 .实习题目: 自助导游及信息服务系统 .

毕业作品网站 307

企业级AI Agent平台建设方案

本报告将深入剖析构成一个顶级AI Agent平台的各个功能层面,为构建者提供一份全面的战略蓝图。

分享AI和大数据领域的知识和研究 1582

用C、C++写旅游区景点导游系统(使用文件存储,DFS,DIJ算法,附详细说明)

通过c语言,完成了以下功能: 读取文件内数据,并将数据存储在文件中的功能。 修改景点,新增景点,删除景点; 修改边,新增边,删除边。 显示所有景点信息。 找到两个景点间所有简单路径。 找到两个景点间最短路径。 最佳旅游路线。

Cotton_imstd的博客 3159

Sentaurus TCAD学习——Scheme编程语言

sentaurus scheme语言学习记录

摸摸小熊猫的博客 964

STM32H7 FOC控制时序优化与PWM中点更新策略

在永磁同步电机(PMSM)的磁场定向控制(FOC)系统中,控制时序精度是决定电流环带宽、观测器收敛性与动态响应能力的基础要素。其核心在于理解PWM生成、ADC采样与控制计算三者之间的硬件级时间耦合关系——尤其在中心对齐模式下,标准更新机制引入的半周期延迟会破坏电压-电流瞬时映射,导致滑模观测器失配与高频相位滞后。通过将PWM更新事件绑定至重复计数器(RCR)清零点,可实现控制指令在开关周期中点生效,使等效电压矢量中心与计算时刻严格对齐。该策略显著提升系统确定性,为20 kHz以上高频电流环提供物理支撑,并广

flink9streamer的博客 857

人脸识别报错cascadedetect.cpp:1698: error: (-215) !empty() in function detectMultiScale

代码如下: # face detection import numpy import cv2 face_cascade = cv2.CascadeClassifier("../../opencv-2.4.9/data/haarcascades/haarcascade_frontalface_default.xml") eye_cascade = cv2.CascadeClassifier('

微电子学与固体电子学-俞驰 1万+

【DNN实现二分类模型推理部署(C#)----20240712】

【DNN实现二分类模型推理部署(C#)----20240712】

weixin_44119674的博客 211

解决OpenCV问题:OpenCV Error: Assertion failed (!empty()) in cv::CascadeClassifier::detectMultiScale,

解决OpenCV问题:OpenCV Error: Assertion failed (!empty()) in cv::CascadeClassifier::detectMultiScale, 目录 解决问题 解决思路 解决方法 解决问题 OpenCV Error: Assertion failed (!empty()) in cv::CascadeClassifier::...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 5万+

MATLAB库函数unwrap(相位解卷绕)的C语言实现

什么是相位解卷绕 Q = unwrap(P) Q = unwrap(P) corrects the radian phase angles in a vector P by adding multiples of ±2π when absolute jumps between consecutive elements of P are greater than or equal to the default jump tolerance of π radians. If P is a matrix, unw

业精于勤,荒于嬉 4247

Dify 第 14 篇 Dify 知识库改造案例,如何返回完整文档?

在使用Dify社区版v1.7.1的知识库功能时,遇到检索仅返回匹配的文本片段而非完整文档的问题。针对运维案例知识库的需求,尝试了三种解决方案: 调整Chunk大小:通过设置最大分段长度为4000字符,但无法满足超过该长度的文档需求。 增加返回Chunk数量:通过调整Top K参数,但最大仅支持10个片段,且可能包含无关内容。 调用知识库API:通过检索接口获取匹配文档ID,再查询该文档所有分段内容,从而获得完整信息。具体步骤包括生成API密钥、获取知识库ID,并通过HTTP请求实现。 最终推荐采用AP

甘蓝的专栏 1968

最优乘车(travel.cpp)

Problem A最优乘车(travel.cpp)H城是一个旅游胜地,每年都有成千上万的人前来观光。为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴上线路。每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。 一名旅客最近到H城旅游,他很想去S公园游玩,但如果从他所在的饭店没有一路已士可以直接到达S公园,则他可能要先乘某一路巴士坐几站,再下来

TanYC的博客 3803

Python 爬虫实战:网站反爬机制绕过终极指南(技术原理 + 实战代码 + 避坑技巧)

在 Python 爬虫的世界里,反爬机制是每一个爬虫开发者都必须面对的挑战。网站为了保护自身数据不被恶意爬取,会设置各种反爬机制,这使得爬虫开发变得更加复杂和有趣。本文将详细介绍常见的网站反爬机制及其绕过方法,结合技术原理、实战代码和避坑技巧,帮助你成为一名优秀的爬虫开发者。

u014481728的博客 1004

OpenCV问题:OpenCV Error: Assertion failed (!empty()) in detectMultiScale

问题描述: 在ROS上使用OpenCV实现人脸检测的过程中,遇到如下的问题: 即: OpenCV Error: Assertion failed (!empty()) in detectMultiScale, file /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/objdetect/src/cascadedetect....

竭尽全力的专栏 4127

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

精雕软件(JDpaint) 5.5 绿色版

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

CPP【北京大学暑期课《ACM/ICPC竞赛训练》】高山滑雪

【问题描述】     Michael喜欢滑雪这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。     Michael想知道载一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子。   一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条

天地皆逆旅,你我本行人。 1757

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Cpp环境【BZOJ1626】【Usaco2007 Dec】【Vijos 1693】 修建道路

【问题描述】            Farmer John最近得到了一些新的农场,他想新修一些道路使得他的所有农场可以经过原有的或是新修的道路互达(也就是说,从任一个农场都可以经过一些首尾相连道路到达剩下的所有农场)。有些农场之间原本就有道路相连。   所有N个农场(用1..N顺次编号)在地图上都表示为坐标为(X_i,Y_i)的点(),两个农场间道路的长度自然就是代表它们的点之间的距离。现在F

天地皆逆旅,你我本行人。 1270

Cpp环境【POJ2435】【CQYZOJ3034】【USACO2005 U S Open Silver】Navigating the City城市交通

Description 【问题描述】   A dip in the milk market has forced the cows to move to the city. The only employment available is in the venerable field of taxi-driving. Help the cows learn their way around

天地皆逆旅,你我本行人。 1157

cpp环境【Uva10129】【VIJOS2863】玩弄单词

【问题描述】    有一些秘密的门包含着非常有趣的单词迷题, 考古学家队伍必须解决它们才能够打开大门。 因为没有其他方法能打开这些门, 所以解决那些迷题对我们非常重要。   在每个门上有很多个有磁力的n个盘子,盘子上面写着单词。 必须重新移动放置这些盘子,让它们形成一个队列:队列中,除了第一个单词,每个单词的开头和上一个单词的结尾字母一样。例如, motorola的后面可以接上acm

天地皆逆旅,你我本行人。 1040

Cpp环境【TYVJ1153】【Code[VS]4093】【CQYZOJ16874】 间谍网络

【问题描述】   由于外国间谍的大量渗入,国家安全正处于高度的危机之中。如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B。有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意交出手中掌握的全部情报。所以,如果我们能够收买一些间谍的话,我们就可能控制间谍网中的每一分子。因为一旦我们逮捕了一个间谍,他手中掌握的情报都将归我们所有,这样就有可能逮捕新的间谍,掌握新的情报。  我们的反间谍机

天地皆逆旅,你我本行人。 1017

Cpp环境【POJ3622】【Usaco2008 Jan Silver】【Vijos1874】Telephone Lines架设电话线

Description 【问题描述】 Farmer John wants to set up a telephone line at his farm. Unfortunately, the phone company is uncooperative, so he needs to pay for some of the cables required to connect his farm t

天地皆逆旅,你我本行人。 1009

Cpp环境【Usaco 3.2.6】【Vijos1251】Павлов的香甜黄油

【问题描述】   农夫John发现了做出全威斯康辛州最甜的黄油的方法:把糖放在一片牧场上,他知道他所有的N只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。   农夫John很狡猾。就像以前的巴甫洛夫,他知道他可以训练这些奶牛,让它们在听到铃声时去一个特定的牧场。他打算将糖放在那里然后下午发出铃声,好让他可以在晚上挤奶。   农夫John知道开始时,每只奶牛都在各自喜欢的牧场(一个牧场不一

天地皆逆旅,你我本行人。 859

Cpp环境【NOIP2010提高组】【Vijos1777】【Code[VS]1066】【CQYZOJ1793】引水入城

【问题描述】   在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠。该国的行政 区划十分特殊,刚好构成一个N行M列的矩形,如上图所示,其中每个格子都代表一座城 市,每座城市都有一个海拔高度。      为了使居民们都尽可能饮用到清澈的湖水,现在要在某些城市建造水利设施。水利设施 有两种,分别为蓄水厂和输水站。蓄水厂的功能是利用水泵将湖泊中的水抽取到所在城市的 蓄水池中。因此,只有

天地皆逆旅,你我本行人。 735

Cpp环境【POJ 2375】【Vijos1642】雪场缆车

【问题描述】   约翰的表哥罗恩生活在科罗拉多州。他进来打算教他的奶牛们滑雪,但是奶牛们非常害羞,不敢在游人如织的度假胜地滑雪。没办法,他只好自己建滑雪场了。   罗恩的雪场可以划分为W列L行,每个方格都有一个特定的高度H。奶牛可以在相邻邻方格间滑雪,而且不能由低到高滑。  为了保证任意方格可以互通,罗恩打算造一些直达缆车。缆车很强大,可以连接任意两个方格,而且是双向的。而且同一个方格可以造多台缆

天地皆逆旅,你我本行人。 733

【POJ1094】【VIJOS3014】变量排序

【问题描述】 把不同的变量进行升序排序用小于操作符命令实现的。例如由A 和 C 在本题中,你将得到若干条小于操作符命令,形如A 的格式,请你确定利用这些命令,能否得到一个唯一的升序序列。     【输入格式】            第1行为整数n,m,n(2 <= n<= 26)表示参与排序的是前n个大写字母,m表示给出命令的条数。     【输出格式】

天地皆逆旅,你我本行人。 724

Cpp环境【Usaco 2008】劣草岛屿

【问题描述】 贝茜像其它奶牛一样正在吃草,她注意到她得到的是一个平于海平面的牧场。海拔 只有1 米或者更高的草不那么美味。沿着这些劣草继续咀嚼,她意识到,这没有食欲的食物长成两侧的丘陵,形成了青翠美味丰富草地海洋中的一系列劣质 草小岛 。贝茜穿上她的实验服,决心测定她的牧场有多少劣草小岛。她画出一张画有被分成 R (1 < R <= 1,000) 行、C (1 < C<= 1,000)列的

天地皆逆旅,你我本行人。 644

CPP环境【VIJOS1686】极品飞车

【问题描述】           FC星有许多城市,城市之间通过一种奇怪的双向高速公路进行交流,每条公路都对行驶在上面的飞车限制了固定的速度,同时FC星人对飞车的“舒适度”有特殊要求,即乘坐过程中最高速度与最低速度的差越小乘坐越舒服,但对时间却没那么多要求。要注意的是FC人的飞车能瞬间提速或降速。现在需要你找出一条城市间的最舒适的路径。 【输入格式】            第一行有2个正

天地皆逆旅,你我本行人。 638
上一篇: cpp环境【Uva10129】【VIJOS2863】玩弄单词
下一篇: CPP环境【VIJOS1686】极品飞车
cqyz_Lebmond
博客等级 码龄10年 18粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值