算法起步(2)
来源:互联网 发布:花与剑 js 编辑:程序博客网 时间:2024/06/11 05:07
蚂蚁相碰问题-化繁为简
n只蚂蚁以1cm/s的速度在长为Lcm的竿子上爬行。当蚂蚁爬到竿子的端点时就会掉落。由于竿子太细,两只蚂蚁相遇时,它们不能交错通过,只能各自反向爬回去。对于每只蚂蚁,我们知道它距离竿子左端的距离x1,但不知道它当前的朝向。请计算所有蚂蚁落下竿子所需的最短时间和最长时间
限制条件 L(1,10^6)
n (1,10^6)
xi (0,L)
首先笔者的思维:如果以正常思维来想,此题是无解的,为什么呢?
蚂蚁的朝向有2^n中,在这么多的情况中,哪一种最短,哪一种最长,计算机虽然善于复杂运算,但是必须要这么做吗?
两个蚂蚁相碰背道而行,其实可以看作他们没有相碰彼此各走各的路,这听起来有些抽象,但是这便是其巧妙之处,我们只需要专注
于每只蚂蚁的行动即可,蚂蚁之间毫不影响,这样我们的思路就出
来了,有点脑筋急转弯的意思~哈哈
int L,N; int X[MAX_N]; void solve(){ 计算最小距离 int minT = 0; for(i = 0; i < n;i++){ minT = min(minT,min(x[i],L - x[i])) } 计算最大距离 int maxT = 0; for(i = 0; i < n;i++){ maxT = max(maxT,max(x[i],L-x[i])) } printf("%d %d/n",minT,maxT); }
看似互相影响,其实确实互不干扰,化繁为简
0 0
- 算法起步(2)
- 算法起步(1)
- CursorAdapter 起步 (2)
- java起步篇(2)
- 菜鸟的起步(2)
- 算法学习:简单起步
- 算法起步之kmp算法
- 算法起步(3)抽签问题—合二为一(上)
- 算法起步(3)抽签问题—合二为一(下)
- python起步之knn分类算法(三)
- Flash Media Server 起步(2)连接
- [VBA起步]2
- (二) HTTP/2起步
- 【Vue】-(2) 起步
- Ruby起步(1)
- maven2起步(转载)
- 程序员(起步)
- (R语言)起步
- 6.1 Javascript:事件与回调函数
- Trace the process of the start of Linux
- OAuth2.0认证和授权原理
- 欢迎使用CSDN-markdown编辑器
- POJ 3398 Perfect Service(树形DP)
- 算法起步(2)
- 多线程 : 读写锁实现缓存系统
- Computing Classification Evaluation Metrics in R
- java学习笔记-集合
- 索引器方法
- 蓝桥杯_分糖果试题
- 对话框
- [wireshark] The NPF driver isn't running 解决办法( wireshark NPF拒绝访问问题)
- java项目 主页面的分层(上-左右)