ACM/ICPC2016 青岛区域赛
Posted 人活着就是为了Chelly
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACM/ICPC2016 青岛区域赛相关的知识,希望对你有一定的参考价值。
A(hdu5982)、(模拟)
题意:输入n对数,将每对数相乘并相加
分析:模拟
B(hdu5983)、(模拟)
题意:给你一个二阶魔方,问能否通过一次旋转使得给定魔方的每个面颜色相同
分析:模拟
C(hdu5984)、(数学,微分方程)
题意:有一个长为d的木棒,最右端有长为L的区域(L<=d),每次操作从木棒的某个部位切,左边的部分就全扔掉,右边的部分保留下来视为新的木棒,一直到切到右端的L区域为止才停止才做,求操作次数的数学期望。
分析:先考虑离散的,f[i]表示长为i的木棒的数学期望,则f[i]=Σ(f[k]+1)/(i-L) (L<=i<=d,L<=k<=i),尝试将小数扩大成整数,但发现精度不够。
然后把他写成积分形式:f(x)=∫f(i)di/x(0<=i<=x) + 1,于是问题就是解这个微分方程,解出f‘(x)=1/x,所以f(x)=lnx+C,代入原式解得C=1-lnL
所以结果就是lnd+1-lnL=ln(d/L)+1
G(hdu5988)、(费用流)
题意:给你个图,每个点上都有人的数量和包的数量,要求人通过走动满足每个点的包的数量>=人的数量,每条边有容量和一个走动破坏概率pi,表示如果一个人走这条边,那么有pi的概率破坏这条边(但这条边被首次经过的时候破坏概率是0),求最小的破坏概率
分析:明显的费用流,这里是乘积所以取对数变成加法
将问题看作要求不破坏概率最大
对于人的数量>=包的数量的点i,S->i,容量为差值,费用为0,对于人的数量<=包的数量的点i,i->S,容量为差值,费用为0
另外原图中的每条边都要拆一条出来,容量为1,费用为0,保证先走这个第一次走不破坏的
然后就是求S->T的最大费用最大流
注意事项:
由于精度问题,不能取ln,可以取log2或者log10
实数spfa的时候,松弛操作一定要加eps!不然会TLE
以上是关于ACM/ICPC2016 青岛区域赛的主要内容,如果未能解决你的问题,请参考以下文章
2014ACM/ICPC亚洲区域赛牡丹江站现场赛-A ( ZOJ 3819 ) Average Score
2014ACM/ICPC亚洲区域赛牡丹江站现场赛-I ( ZOJ 3827 ) Information Entropy