摘要:
分析:按位置升序排列,找出中位数,求出中位数到各点距离即可。注意用long long。 为什么是中位数?假设排好序后的点为a、b、c、d、e.找一点x满足到这五个点距离和最小,要想到a和e(区间两端点)距离和最小,则x点一定在a和e之间。 同理,要到b和d距离和最小,x点一定在b和d之间。最后,要到 阅读全文
posted @ 2017-08-08 18:33
只有你
阅读(555)
评论(0)
推荐(0)
摘要:
分析:O(n^2)算法是预处理前缀和,然后先枚举子段左端点再枚举子段右端点(两个for循环)对结果进行更新.完美超时。 而实际上是没必要枚举右端点的,要想对结果更新则右端点的前缀和一定大于左端点的前缀和.所以嘛,可以对前缀和数组排个序(O(nlogn))。 这时候依旧枚举左端点,而右端点只可能是左端 阅读全文
posted @ 2017-08-08 16:52
只有你
阅读(349)
评论(0)
推荐(0)
摘要:
分析:设dp[i][j]表示合并第i堆到第j推的最小代价(下标从1开始),则所求为dp[1][n]. 状态转移方程:dp[i][j]=min{ dp[i][k] + dp[k+1][j] + sum[i][j] | i<=k<j }. 而dp数组的更新是由小区间到大区间的更新,所以第一步枚举的变量应 阅读全文
posted @ 2017-08-08 10:56
只有你
阅读(170)
评论(0)
推荐(0)
摘要:
分析:等比数列前(n+1)项和,公比为3,首项为1.所以ans=( 3^(n+1)-1 ) / 2 % 1000000007. 3^(n+1)用快速幂很好解决,而除法取模只需将除法变乘法即可,也就是用被除数去乘以除数的乘法逆元. 求乘法逆元用费马小定理:当模为素数,a的逆元为pow_mod(a,mo 阅读全文
posted @ 2017-08-08 09:40
只有你
阅读(462)
评论(0)
推荐(0)
摘要:
分析:绝大部分情况硬币与直线相交数目为2*R条,极少数情况为2*R+1条。所以数学期望E=0.9999999*2*R+0.00000001*(2*R+1),而要求输出整数部分,则为2*R。 代码: 1 #include <iostream> 2 using namespace std; 3 type 阅读全文
posted @ 2017-08-08 09:06
只有你
阅读(140)
评论(0)
推荐(0)
摘要:
1058 N的阶乘的长度 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 取消关注 1058 N的阶乘的长度 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 1058 N的阶乘的长度 基准时间限制:1 秒 空间限制:131072 阅读全文
posted @ 2017-08-08 08:41
只有你
阅读(187)
评论(0)
推荐(0)
浙公网安备 33010602011771号