[关闭]
@inkysakura 2017-04-02T17:24:08.000000Z 字数 1464 阅读 1574

2017/04/02 训练赛题解

题解


A、Circle in Square
题目来源:lightoj1022
水题,正方形面积4r2,圆面积πr2
S=4r2-πr2


B、Discovering Permutations
题目来源:lightoj1023
求按照字典序从小到大求前K个序列
若想练习回溯法就用DFS写吧
捡方便的话还是用next_permutation这个STL函数
(详情可以百度)


C、Eid
题目来源:lightoj1024
求N个数的最小公倍数
很简单,把N个数都因式分解后,对于每个质因数,取这N个数分解结果中的最大次幂,然后相乘。
先对于每个数Ak质因数分解
A1 = P1q11+P2q12+P3q13+……
A2 = P1q21+P2q22+P3q23+……
A3 = P1q31+P2q32+P3q33+……
Ak = P1qk1+P2qk2+P3qk3+……
所以答案就是每个质因数的最大次幂的乘积
Ans = P1max(qk1)+P2max(qk2)+P3max(qk3)+……


D、A Dangerous Maze
题目来源:lightoj1027
有N道门
门上有个数,如果是正数a就代表走这个门走a分钟就出去了
如果是负数就是走-a分钟回到了原点,问走出去的时间的期望值。
设期望值为E,Zk为正数,Fk为负数
E=Z1/n+Z2/n+Z3/n+……+Zk/n+(-F1+E)/n+(-F2+E)/n+(-F3+E)/n+……(-Fk+E)/n
也可以表示为
E=P1 x E1 +p2 x (E2+E)
其中P1为选到正门的概率,p2为选到负门的概率,E1为走正门出去的时间期望,E2为走负门回到原点的时间期望


E、Trailing Zeroes (I)
题目来源:lightoj1028
将N转换为K进制,问有多少种K使得转换后的K进制数末尾为0
只要N能整除K,转换K进制后末尾肯定是0。
所以这道题就变成了求N的约数的个数。
如果不会详情百度。


F、Civil and Evil Engineer
题目来源:lightoj1029
用kruskal或者prim算法求出最大最小生成树即可。
如果不会详情百度。


G、Discovering Gold
题目来源:lightoj1030
题意自行理解。
Ei为第i个格子时,能获得的金子的期望
Ei=Ei+1/6+Ei+2/6+Ei+3/6+Ei+4/6+Ei+5/6+Ei+6/6
E1即为答案
(当i>n-6时需要特殊处理。)


H、Easy Game
题目来源:lightoj1031
区间DP
给一个整数序列,两个人轮流从序列某端取若干数,问先手比后手多的最大分数
dpij为区间i到j先手比后手都的最大得分
sumij为区间i到j的和
dpij=max(sumij , sumik-dpk+1j , sumk+1j-dpik)
(i <= k < j)


I、Generating Palindromes
题目来源:lightoj1033
给一个字符串,让你任意位置添加任意数量的字符,问最少需要添加多少次可以变成回文字符串
区间DP
dpij为i到j区间的字符串变成回文字符串的最小添加次数
如果s[i]==s[j]
dpij=dpi+1j-1
如果s[i]!=s[j]
此时可以在头部添加一个与尾部相同的字符,也可以在尾部添加一个与头部相同的字符。取两种情况的最小值
dpij=min(dpi+1j,dpij-1)+1


J、Intelligent Factorial Factorization
题目来源:lightoj1035
求N的阶乘
用因式分解的方式表示
因为N小于等于100
所以分解后的最大质因数肯定是小于100的
然后瞎搞吧 水题嘛

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注