一个环形公路,上面有N个站点,A1, ..., AN,其中Ai和Ai+1之间的距离为Di,AN和A1之间的距离为D0。 高效的求第i和第j个站点之间的距离,空间复杂度不超过O(N)。
2024-09-24 19:05:52
//点数 #define N 10 //点间距 int D[N]; //A1到每个Ai的距离 int A1ToX[N]; void preprocess() { srand(time(0)); //随机分配每个点间的距离 for (int i = 0; i < N; ++i) { D[i] = rand() % (RAND_MAX + 1) * N; } /*A1ToX[i]:A1到每个点Ai的距离*/ //A1到A2的距离 A1ToX[1] = D[1]; for (int i = 2; i < N; ++i) { A1ToX[i] = A1ToX[i - 1] + D[i]; } //全长 A1ToX[0] = A1ToX[N - 1] + D[0]; } int getDistance(int i, int j) { int disI = i == 0 ? 0 : A1ToX[i - 1]; int disJ = j == 0 ? 0 : A1ToX[j - 1]; int dis = abs(disI - disJ); //环形公路,每个点存在2条路径,取最短的 return (dis > A1ToX[0] / 2) ? A1ToX[0] - dis : dis; }
最新文章
- tyvj1008 传球游戏
- 使用脚本自动配置matlab安装libsvm和随机森林工具箱
- java 8种基本数据类型的默认值及所占字节数
- js window.open() 父窗口与子窗口的互相调用(未必有用)
- android中include 的使用讲解
- Bootstrap3.0学习第十二轮(导航、标签、面包屑导航)
- html轮播效果的实现
- 【leetcode❤python】171. Excel Sheet Column Number
- HDU 5059 Harry And Biological Teacher
- thymeleaf模板引擎shiro集成框架
- 用 Lua 实现一个微型虚拟机-基本篇
- 音频压缩编码 opus 附完整C++代码示例
- (56)Wangdao.com第八天_JavaScript 流程控制语句
- JS设置、获取和取消Cookie
- 帝国cms面包屑导航的首页链接锚文本改成关键字
- Java基础(basis)-----关键字this和super的作用
- opencv3.1线性可分svm例子及函数分析
- onsaveInstanceState有关问题
- OD之去除nag弹窗(四)
- ActiveMQ HelloWorld入门
热门文章
- [WC 2005]友好的生物
- [Codeforces 448C]Painting Fence
- [SDOI2008]Cave 洞穴勘测
- [SCOI2016]背单词
- [HNOI2002]跳蚤
- bzoj1499[NOI2005]瑰丽华尔兹 单调队列优化dp
- Django中Form的基本使用
- css3中-moz、-ms、-webkit各什么意思
- Linux学习之CentOS(五)--CentOS下VMware-Tools安装
- vue中的eventBus