试题 算法提高 游览计划
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
在一条笔直的公路上有n个景点,第i个景点在Ai千米处,起点在0千米处,所有景点都位于起点一侧。
八云紫(咦这是怎么中枪的?)从起点出发,每次任选一个没有游览的景点,从当前位置出发到达那个景点游览,这样进行n次,直到停在最后游览的那个景点。(最后不会回到起点。)
在x千米处的点与在y千米处的点的路程为|x-y|千米。八云紫平均的总游览路程是多少?(她选择所有游览路线的概率是相等的,你可以认为这个概率等于1/n!。)
输入格式
第一行一个数n,第二行n个数A1, A2 ... An,如题目所述。
输出格式
输出一行,两个数,答案的分子和分母。要求分子分母不能再约分。
样例输入
3
2 3 5
样例输出
22 3
数据规模和约定
2<n<100000,1≤Ai<10^7,对于任意1≤i<n,都有Ai<A(i+1)。
样例说明
可能的游览顺序与对应的总路程:
[2, 3, 5]: |2 – 0| + |3 – 2| + |5 – 3| = 5;
[2, 5, 3]: |2 – 0| + |5 – 2| + |3 – 5| = 7;
[3, 2, 5]: |3 – 0| + |2 – 3| + |5 – 2| = 7;
[3, 5, 2]: |3 – 0| + |5 – 3| + |2 – 5| = 8;
[5, 2, 3]: |5 – 0| + |2 – 5| + |3 – 2| = 9;
[5, 3, 2]: |5 – 0| + |3 – 5| + |2 – 3| = 8.
平均路程:(5+7+7+8+9+8)/6 = 22/3。
思路:
数学公式推导,假如 现在有4个点 距离分别为1 3 5 7,存入数组下标1~4
那么在数轴上,加上起点,是 0 1 3 5 7
由于每次出发均是由起点0出发,所以0点需特殊判断,我们先分析除0点外其他点。
对于每个 ai 和 aj,我们判断其相邻情况,对于例子1 3 5 7,我们求3 和 7的相邻总情况,可以先把3拿出来,对于剩余 n-1 个数全排列,共有(n-1)!种情况,然后我们再把 3 插入到7的左边或者右边,共两种情况,即2*(n-1)!,所有每对ai 和 aj的贡献为
再来分析起点,我们先拿出起点连接的下一个数,对于剩余n-1个数全排列,再把拿出点放入起点后,总体即为(n-1)!,然后即可得 起点的贡献为
又知道整体概率为 n!,所以最终推出 (+ )/ n!
即,最后再利用gcd将分子分母化为最简即可。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN=1e6+10;
int n,a[MAXN];
ll x,y;
int main()
{cin>>n;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++){x+=a[i];for(int j=i+1;j<=n;j++) x+=2*(a[j]-a[i]);}y=n;int t=__gcd(x,y);x/=t;y/=t;cout<<x<<" "<<y;return 0;
}
试题 算法提高 游览计划相关推荐
- 算法提高 理财计划(java)
算法提高 理财计划 描述 银行近期推出了一款新的理财计划"重复计息储蓄".储户只需在每个月月初存入固定金额的现金,银行就会在每个月月底根据储户账户内的金额算出该月的利息并将利息存入 ...
- 蓝桥杯试题 算法提高 扶老奶奶过街(C语言)
试题 算法提高 扶老奶奶过街(C语言) 资源限制 时间限制:1.0s 内存限制:256.0MB 一共有5个红领巾,编号分别为A.B.C.D.E,老奶奶被他们其中一个扶过了马路. 五个红领巾各自说话: ...
- 蓝桥杯 试题 算法提高 P0402 猴子吃桃问题 Java
试题 算法提高 P0402 资源限制 时间限制:1.0s 内存限制:256.0MB 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个. ...
- 试题 算法提高 成绩排名
试题 算法提高 成绩排名 Lan 2020-03-28 22:34 363 人阅读 0 条评论 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明刚经过了一次数学考 ...
- 试题 算法提高 能量项链
试题 算法提高 能量项链 问题描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠 ...
- 蓝桥试题 算法提高 矩阵翻转
21-22-1蓝桥训练1 D.试题 算法提高 矩阵翻转 问题描述: Ciel有一个N*N的矩阵,每个格子里都有一个整数.N是一个奇数,设X = (N+1)/2.Ciel每次都可以做这样的一次操作:他从 ...
- 蓝桥试题 算法提高 打包(二分法,最大值最小化)
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 Lazy有N个礼物需要打成M个包裹,邮寄给M个人,这些礼物虽然很便宜,但是很重.Lazy希望每个人得到的礼物的编号都是连续的.为了 ...
- 蓝桥杯试题 算法提高 转圈游戏 C/C++
试题 算法提高 转圈游戏 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最 ...
- 试题 算法提高 瓷砖铺放 增强
试题 算法提高 瓷砖铺放 增强 资源限制 时间限制:3.0s 内存限制:256.0MB 问题描述 给了一nxm的方格,用1x3的瓷砖铺满,请问有多少种铺法.瓷砖可以旋转. 输入格式 输入的第一行包含两 ...
最新文章
- 禁止windows系统的自动运行功能
- linux perl telnet安装,Perl--Net::Telnet模块
- 文本文件、Excel文件上传下传
- C#通过COM组件操作IE浏览器(二):使用IHTMLDocument3完成登录
- Java基础---变量(三)
- 【C#/.NET】不用AutoMapper,我用啥呢?
- GARFIELD@11-11-2004
- 如何在 Python 数据中清洗常用 4 板斧?
- 配置文件编辑和历史文件编辑代码
- iOS底层探索之多线程(三)—初识GCD
- 解决 此 Flash Player 与您的地区不相容 问题
- Fabric.js中文文档
- 赚大钱,你需要多一些杠杆思维
- VOT Toolkit环境配置与使用
- ios 模拟器沙盒_ios 模拟器沙盒的位置 | 学步园
- JavaScript 变量命名规范总结
- Keep your fork synced
- OPPO A59s刷机包_OPPOA59s线刷包刷机教程
- Git 报错 error: pathspec ‘XXX‘ did not match any file(s) known to git 报错解决方法
- java给文件777权限_Linux常用命令:chmod修改文件权限 777和755分别是什么意思?
热门文章
- 基于STM32单片机甲醛二氧化碳温度湿度采集系统
- ps3模拟器(rpcs3) v0.0.0.4 中文版
- 饿了吗 系统_“外卖骑手,困在系统里”刷屏!饿了么宣布将上线“多等5分钟”功能,网友吐槽:转移矛盾...
- 给定n个整数,将这n个整数合并成最大和最小的数字
- 智能网联车路协同沙盘配置分享
- 【H3C设备组网配置】第二版
- 7年员工主动辞职HR: 本来想辞退你, 现在28万赔偿不用给你亏大了
- 头歌实践教学平台数据结构与算法:02线性表
- xv6中pipedup
- 手把手教你Android集成第三方微信登录