博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeForces 340C
阅读量:7304 次
发布时间:2019-06-30

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

【题意分析】

给定n个点,从原点出发,走遍所有的点(可以不按顺序走)。输出:所有的方案所行走的距离和与总方案数的比(最后的两个数需互质)。

【解题思路】

首先,先不要管数据范围——求总方案数是比较简单的,就是n!,为什么呢?首先,从0到每一个点,有n种方法。然后,剩下了(n-1)个点,因为不可能走回原点,所以还有(n-1)种走法……那么,根据乘法原理,一共有:n*(n-1)*(n-2)*……*1=n!种走法。

然后,我们来看看怎么推导所有方案所行走的距离。

1,          走第一步的时候,一共有n种走法,又因为共有n!种做法,所以,第一步从0~ai(0<i<=n)的走法分别有(n!)/n=(n-1)!种。

2,          下面是第2步到~第n步的走法。像ai~aj这样的走法,并使i,j相邻。除了这两个数以外,其他的排列就有(n-2)!种,那么,这样的i,j一共有(n-1)种走法。所以,一共有(n-2)!*(n-1)=(n-1)!种走法。假如还是不懂的话,看下面的例子:

                 有四个数字:1,2,3,4

  选1,2:有(n-2)!种

  选2,3:有(n-2)!种

……

共(n-1)种。

很明显,一共有(n-2)!*(n-1)=(n-1)!种走法。

因为有ai~aj,所以也可以有aj~ai,所以最终结果要*2。

3,接下来:我们要进行化简。

[(a1+a2+a3+……+an)*(n-1)!+2*(∑|ai-aj|(i!=j))*(n-1)!]/(n!)

=[a1+a2+a3+……+an+2*(∑|ai-aj|(i!=j))]/n

接下来:我们就要考虑计算∑|ai-aj|(i!=j)的问题。

其实,这个就相当于,给定n个点,求所有ai-aj的和。

4,再举一个例子:

 

 

            L1=a2-a1                 L2=a3-a2                      L3=a4-a3

我们记T3为黄色的路线,T2为红色……。T则为∑|ai-aj|(i!=j)。

那么,T=T3+T2+T1

       =(3L3+2L2+1L1)+(2L2+1L1)+(1L1)

       =(1L1)+ (1L1+2L2)+(1L1+2L2+3L3)

很明显,T(i)=T(i-1)+i*Li

那么:可以用变量S把Ti计算出来,再用num把S累加就可以了(注意要乘二)。

如果按照上面的算法,则时间复杂度为O(n)。

5,

Ans = [(a1+a2+a3+……+an)+num]/n

则比为

(a1+a2+a3+……+an)+num:n

最后再用gcd它们的求最大公约数就可以了(记得用longlong)。

【程序】

#include
#include
#include
#include
using namespace std;const int MAXN=100007;int n;int dis[MAXN];long long sum,ans,s;long long gcd(long long x,long long y){ if(!(x%y)) return y; return gcd(y,x%y);}int main(){ scanf("%d",&n); for(int i=1;i<=n;++i) { scanf("%d",&dis[i]); sum+=dis[i]; } sort(dis+1,dis+n+1); dis[0]=0; for(int i=1;i
这是一数学题,很值得思考。

转载于:https://www.cnblogs.com/ouqingliang/p/9245267.html

你可能感兴趣的文章
nginx 官方文档摘要
查看>>
Ubuntu 14.04 个人常用软件安装
查看>>
概率与信息论---常用函数的有用性质
查看>>
drbd共享存储的简单配置-高可用存储
查看>>
ECSHOP_jquery兼容方案
查看>>
堆体系结构概述
查看>>
【整理】获取用户真实 ip 地址的 nginx 相关配置
查看>>
6.数论_web
查看>>
配置Tomcat数据源
查看>>
关于“放假”、“休息” “调休” 的各种说法!
查看>>
SpringBoot+devtools 热部署
查看>>
解决CentOS7安装后没有Killall或ifconfig命令
查看>>
给各位分享PHP常用函数
查看>>
在宏中使得字段只能读取 (几何画板开发笔记 三)
查看>>
leptonica & tesseract & tess4j
查看>>
adb命令启动展讯平台工厂模式
查看>>
linux scp远程拷贝文件及文件夹
查看>>
Apache随机出现403 Forbidden探析
查看>>
Eclipse背景颜色设置(设置成豆沙绿色保护眼睛,码农保护色)
查看>>
sql server触发器知识点储备
查看>>