news 2026/4/22 20:31:26

C语言之鹊桥相会

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言之鹊桥相会

题目描述

一年一度的七夕又要到了,可歌可泣的牛郎织女又可以在鹊桥相会了。不知道大家有没有雅兴陪 Redraiment 坐在葡萄藤下倾听他们的对话。 我们知道,牛郎要与织女相见,必须要有喜鹊搭桥。所以,牛郎必须在天河岸上等待,直到有喜鹊经过,于是牛郎可以搭乘这只喜鹊往河对岸走。当然,牛郎急着去见织女,所以在途中,如果有速度更快的喜鹊赶上了他,他就会换乘那只速度更快的喜鹊。 我们可以假定喜鹊的速度是恒定不变的,并且喜鹊一直是沿直线飞行的(不转弯,更不回头),牛郎坐上喜鹊所花的时间忽略不计。 现给出天河的宽度、每只喜鹊的初始位置(我们设牛郎所在位置为 0,天河方向为正方向)以及它们的速度(有可能是负数,代表喜鹊往反方向飞行),这些数据都是整数。请你来帮忙计算一下牛郎到达对岸与织女相会最少需要多少时间,让他们早些有情人终成眷属。^_^ 当然,如果没有喜鹊来搭载牛郎,我们可怜的牛郎就到不了对岸与织女相会了,那我们只好很遗憾的跟牛郎说:Can't Solve,我们祈祷不要发生这样的事情。

输入

第一行有两个数据 w,n分别代表天河的宽度(单位:km)和喜鹊的只数(1≤w≤1000,1≤n≤10000)。
接下来从第二行到第 n+1 行每行都有两个数据 t,v分别代表 1 只喜鹊的初始位置(单位:mmm)和它的飞行速度(单位:m/s)(−1000≤t≤1000,−100≤v≤100)。 所有的数据范围都不会超过 32 位整数的表示范围(用int型数据不会溢出)。
输入以 0 0结束。

输出

如果牛郎能到达对岸输出他到达对岸所花的总时间(结果精确到秒即可,小数部分舍去),否则输出Can't Solve

输入 1 1 0 1 0 0 输出 1000
#include <stdio.h> int main() { int w, n; while (scanf("%d %d", &w, &n) == 2) { if (w == 0 && n == 0) break; long long width_m = w * 1000LL; long long min_time = -1; // 用-1表示还没找到有效的喜鹊 for (int i = 0; i < n; i++) { long long t, v; scanf("%lld %lld", &t, &v); // 只有 t <= 0 且 v > 0 的喜鹊才有可能被牛郎坐上并带到对岸 if (t <= 0 && v > 0) { // 到达对岸的时间 = (width_m - t) / v long long time = (width_m - t) / v; if (min_time == -1 || time < min_time) { min_time = time; } } } if (min_time == -1) { printf("Can't Solve\n"); } else { printf("%lld\n", min_time); } } return 0;

if (min_time == -1 || time < min_time) {
min_time = time;

}

//上述if条件这样写是因为输入第一行时time<min_time是不可能的,所以输入的第一行是以min_time=-1来判断的,所以一定会执行min_time=time;下一次再输入第二行时如果时间比第一次输入的时间更少,则就以这个时间为主。

主要是第一行输入的数据计算出来的时间一定要被记录下来,这样才能和第二行输入的数据得出的时间比较,找出最短时间到达对岸。这也是为什么要写上述条件来判断的原因。第一个条件只在第一行输入中用,第二个条件除了第一行输入以外,其他行的判断条件。但二者的最后运行结果是一样的,所以可以写到一个if条件里边。

由上述代码可以看出,看似没有考虑中途换乘的问题,实际上已经考虑换乘问题了,只是不需要模拟更简单。

因为牛郎一开始在0位置,假设他要乘坐一只初始位置为0的喜鹊,这样可以不用考虑离他位置远的喜鹊飞过来,他需要等的时间,那乘坐位置为0但速度慢的喜鹊,一定会被一开始离他远但速度快的喜鹊追上,这时候就要换乘,此时离得近但慢的喜鹊和离得远但快的喜鹊运动的时间是一样的,换乘之后,速度就是离得远但快的喜鹊走到对岸需要的时间,所以这样看来,直接等价成离得远但速度最快的喜鹊从原位置到对岸所有的时间即可,即是最短耗时。

所以无论是在原位置还是离得远的位置,只要速度是最快的,就是我们要找的答案。总路程是原位置到对岸的总路程,速度是最快速度,可以直接计算出总时间然后进行比较,即可。

我的思路历程特别麻烦,因为我当时没有考虑到实际上不用模拟中途被其他喜鹊替换的那个过程。我又在代码中模拟了。同时我忘记还有n这个变量了,用的while,其实不好用。这样就不需要定义count了,也就没有后面的if(count==1)这个条件判断了。下面的代码还有逻辑错误,总之题目思考不对。按下述代码思路根本无法往下进行。🆗就这样吧!还要继续加油啊!!!

下面的代码不对哈:

#include<stdio.h> #include<math.h> int main() { int w,n; scanf("%d%d",&w,&n); int t,v; int count=0; int max_v; int ts=0; int a=w*1000; int s=0; int m=0; int tm=0; while(scanf("%d%d",&t,&v)!=EOF){ count++; if(t==0){ max_v=v; if(v>max_v){//此行代码永远不会成立,因为在上面刚赋值max_v=v;所以这里肯定不对。 max_v=v; ts=a/max_v; } } if(t<0&&v>max_v){ t=-t; ts=t/(v-max_v); s=ts*max_v; m=a-s; } max_v=v; tm=ts+m/max_v; } if(count==1&&t==0&&v>0){ tm=a/v; }else if(count==1&&t>0&&v>0||count==1&&t==0&&v<0||count==0){ printf("Cant't Solve"); }else{ printf("%d",tm); } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 8:02:45

HeyGem能否用于直播?目前为离线生成暂不支持实时推流

HeyGem能否用于直播&#xff1f;目前为离线生成暂不支持实时推流 在虚拟主播、AI客服、智能播报等应用日益普及的今天&#xff0c;越来越多企业开始关注“数字人”是否能真正走上“直播间”的舞台。一个自然的问题随之而来&#xff1a;HeyGem 这类 AI 数字人视频生成系统&#…

作者头像 李华
网站建设 2026/4/19 16:36:15

新手入门指南:手把手教你启动HeyGem并生成第一个视频

新手入门指南&#xff1a;手把手教你启动HeyGem并生成第一个视频 在教育、客服、媒体播报等领域&#xff0c;内容生产正面临效率与成本的双重挑战。传统真人出镜录制不仅耗时耗力&#xff0c;还难以实现规模化复制&#xff1b;而专业动画制作又门槛高、周期长。有没有一种方式&…

作者头像 李华
网站建设 2026/4/18 7:18:22

人工智能之数字生命-特征类说明及架构20260104

可以把特征类想成一个“裁判台”,它不生产球员(特征值节点不由它创建),只负责判定两件事:是不是同一个人、是不是换了动作 🧠⚖️ 目标1:区分存在 = 找到“身份锚点”并让它抗抖 前面的设计正好对应三条硬规则: 只用稳态进入身份对比:瞬态噪声不进入“身份证库” 原…

作者头像 李华
网站建设 2026/4/22 15:08:13

AI 未来展望:2026 年值得关注的七大趋势(基于微软视角)

首先向所有读者致以新年问候&#xff01;人工智能正由“实验性工具”向“强大合作伙伴”演进。当 AI 正从"实验工具"转变为"强大合作伙伴"&#xff0c;这些关键趋势将塑造 2026 年工作、健康和科学领域的未来走向。人工智能&#xff08;AI&#xff09;正步…

作者头像 李华
网站建设 2026/4/17 7:36:00

HuggingFace镜像网站搜索不到?模型权重未对外发布

HuggingFace镜像网站搜索不到&#xff1f;模型权重未对外发布 在当前生成式AI迅猛发展的背景下&#xff0c;越来越多的企业和开发者开始尝试将大语言模型&#xff08;LLM&#xff09;与多模态技术应用于数字内容生产。尤其是在虚拟数字人、智能客服、自动播报等场景中&#xff…

作者头像 李华
网站建设 2026/4/21 16:52:23

C#权限系统设计十大陷阱:你踩过几个?

第一章&#xff1a;C#权限系统设计十大陷阱&#xff1a;你踩过几个&#xff1f;在构建企业级应用时&#xff0c;权限系统是保障数据安全的核心模块。然而&#xff0c;许多开发者在使用 C# 设计权限系统时&#xff0c;常常因忽视细节而埋下隐患。以下是常见的设计陷阱及应对策略…

作者头像 李华