博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj1852 想象力!
阅读量:2239 次
发布时间:2019-05-09

本文共 664 字,大约阅读时间需要 2 分钟。

题意:有n只蚂蚁都在长度为L(cm)的杆子上爬行,它们的速度都是1cm/s,到了杆子终端的时候,蚂蚁就会掉下去。如果在爬行途中遇到其它蚂蚁,两只蚂蚁的方向都会调转。已知蚂蚁在棒子的最初位置坐标,但是我们不知道它们的初始方向。求出所有蚂蚁掉下去的最短时间和最长时间。 

算法:
1.暴搜,枚举n只蚂蚁所有的初始方向并计算掉下去的时间,但是,n只蚂蚁的方向有2^n种,对于较大的n,肯定会超时......
2.考虑两只蚂蚁A和B相遇的情况,按照题意此时A和B会掉头,想象一下,如果此时A和B可以相互穿过对方继续前进,因为速度相同,此时A和B掉下杆子的时间只与它们的初始位置有关,与方向其实无关。对每只蚂蚁我们都可以求出其最短时间e和最长时间l,所求即为max(e)和max(l) 

#include 
#include
using namespace std;int main(){ int cases; int earliest ; int latest ; int l, n, k; cin >> cases; for (int i=0; i
> l >> n; for (int j=0; j
> k; earliest = max(earliest,min(l-k,k)); latest = max(latest,max(l-k,k)); } cout << earliest << " " << latest << endl; }}

你可能感兴趣的文章
【NLP学习笔记】(二)gensim使用之Topics and Transformations
查看>>
【深度学习】LSTM的架构及公式
查看>>
【python】re模块常用方法
查看>>
剑指offer 19.二叉树的镜像
查看>>
剑指offer 20.顺时针打印矩阵
查看>>
剑指offer 21.包含min函数的栈
查看>>
剑指offer 23.从上往下打印二叉树
查看>>
剑指offer 25.二叉树中和为某一值的路径
查看>>
剑指offer 60. 不用加减乘除做加法
查看>>
Leetcode C++《热题 Hot 100-15》437.路径总和III
查看>>
Leetcode C++《热题 Hot 100-17》461.汉明距离
查看>>
Leetcode C++《热题 Hot 100-18》538.把二叉搜索树转换为累加树
查看>>
Leetcode C++《热题 Hot 100-21》581.最短无序连续子数组
查看>>
Leetcode C++《热题 Hot 100-22》2.两数相加
查看>>
Leetcode C++《热题 Hot 100-23》3.无重复字符的最长子串
查看>>
Leetcode C++《热题 Hot 100-24》5.最长回文子串
查看>>
Leetcode C++《热题 Hot 100-28》19.删除链表的倒数第N个节点
查看>>
Leetcode C++《热题 Hot 100-29》22.括号生成
查看>>
Leetcode C++《热题 Hot 100-47》236.二叉树的最近公共祖先
查看>>
Leetcode C++《热题 Hot 100-48》406.根据身高重建队列
查看>>