1_东华oj3.2—繁忙的通讯兵

本文作者分享了一道编程题的AC代码,强调了数学思路在解题过程中的重要性。代码中,通过不断调整A、B两点间的距离和通讯兵的速度来计算所需的次数,最终得出答案。文章适合对算法和数学结合感兴趣的读者。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


题目

 

提示:以下是本篇文章正文内容,下面案例可供参考

一、ac代码

以下是我的ac代码,用的都是很基础的方法_(:з」∠)_个人感觉思路还是比较简单的

#include <iostream>
using namespace std;

int main()
{   double N;
    while(cin>>N)
    {
    int count=0;
    double x=200,t;//x用于记录A、B间距离;t用于记录通讯兵两次碰头之间的时间
    while(x>=N)
    {
        /*通讯兵在A、B间折返跑时,count为偶数时,与B接头,count为奇数时,与B接头*/
        if(count%2==0) t=x/50;//通讯兵与B相对速度为50
        if(count%2==1) t=x/53;//通讯兵与A相对速度为53
        count++;
        x=x-13*t;//一次碰头结束后,更新AB间距,AB相对速度为13
    }
    cout<<count<<endl;
    }
    return 0;
}


总结

_(:з」∠)_第一次写文章...不足之处请多多指正(鞠躬

个人感觉这道题还是更偏向于数学,数学思路理清后代码实现起来还是比较容易的呢~

### 关于东华大学OJ平台上的“繁忙通讯兵”题目解析 对于“繁忙通讯兵”的求解,该类问题通常涉及到图论中的最短路径算法。这类题目往往要求计算从起点到终点之间的最优传输路线,在给定的地图上找到一条能够使得通信效率最高或是代价最小的道路[^1]。 考虑到此类问题的特点,“繁忙通讯兵”很可能是一个基于加权无向图或有向图构建的任务场景。为了高效解决这个问题,可以采用Dijkstra算法来寻找单源最短路径,或者Floyd-Warshall算法用于处理所有节点间的最短距离矩阵。如果地图规模较大且稀疏的话,Bellman-Ford也可能成为备选方案之一;而对于稠密图来说,Johnson&#39;s algorithm则供了更好的性能表现[^2]。 下面给出一段Python代码实现,假设使用的是Dijkstra算法: ```python import heapq def dijkstra(graph, start): queue = [] distances = {node: float(&#39;inf&#39;) for node in graph} distances[start] = 0 heapq.heappush(queue, (distances[start], start)) while queue: current_distance, current_node = heapq.heappop(queue) if current_distance > distances[current_node]: continue for neighbor, weight in graph[current_node].items(): distance = current_distance + weight if distance < distances[neighbor]: distances[neighbor] = distance heapq.heappush(queue, (distance, neighbor)) return distances ``` 此段代码实现了经典的Dijkstra算法,适用于非负权重边的情况。通过调整`graph`参数结构以及起始点的选择,即可适应不同版本的具体需求[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值