[UOJ#223][BZOJ4654][Noi2016]国王饮水记 试题描述 跳蚤国有 n 个城市,伟大的跳蚤国王居住在跳蚤国首都中,即 1 号城市中.跳蚤国最大的问题就是饮水问题,由于首都中居住的跳蚤实在太多,跳蚤国王又体恤地将分配给他的水也给跳蚤国居民饮用,这导致跳蚤国王也经常喝不上水.于是,跳蚤国在每个城市都修建了一个圆柱形水箱,这些水箱完全相同且足够高.一个雨天后,第 i 个城市收集到了高度为 hi 的水.由于地理和天气因素的影响,任何两个不同城市收集到的水高度互不相同.跳蚤国王也请来蚂…
有很多比较显然的性质.首先每个城市(除1外)至多被连通一次,否则没有意义.其次将城市按水位从大到小排序后,用以连通的城市集合是一段前缀,并且不应存在比1城市还小的.然后如果确定了选取的城市集合,每次选择也应该是连续的一段,且应从小到大选,这样保证了将其他城市的水尽量分到1,而不是被另外的城市分流.同时也说明如果不考虑次数限制应该划分的尽量多. 考虑怎么用这些性质做.按水位从小到大排序,考虑大力dp,即设f[i][j]为前i个城市(可以不全选)分了j组时的答案,转移即f[i][j]=max{(f[…
LINK:国王饮水记 看起来很不可做的样子. 但实际上还是需要先考虑贪心. 当k==1的时候 只有一次操作机会.显然可以把那些比第一个位置小的都给扔掉. 然后可以得知剩下序列中的最大值一定会被选择. 考虑是否选出其他数字 容易想到如果选择了必然要比拿到最大的之后的平均数要大. 这样贪心下去即可. 考虑当k不等于1的时候. 设\(f_i\)表示第i次使用过后的最大值.显然有\(f_i>f_{i-1}\) 那么由此我们得到某个点至多被选择一次 再选择没有任何收益. 所以k可以对n取min. 此时观察…
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! Description 跳蚤国有 n 个城市,伟大的跳蚤国王居住在跳蚤国首都中,即 1 号城市中.跳蚤国最大的问题就是饮水问题,由 于首都中居住的跳蚤实在太多,跳蚤国王又体恤地将分配给他的水也给跳蚤国居民饮用,这导致跳蚤国王也经常喝 不上水.于是,跳蚤国在…
题目链接 uoj233 题解 下面不加证明地给出几个性质: 小于\(h[1]\)的城市一定是没用的 任何城市联通包含\(1\)且只和\(1\)联通一次 联通顺序从小到大最优 单个联通比多个一起联通要优 最优解中多个一起联通不超过\(14\)次 除了最后一个外还是很显然的 \(K\)足够大肯定逐个联通,否则有一些还是需要一起联通的 我们可以设\(f[i][j]\)表示前\(i\)个城市,联通\(j\)次\(h[1]\)的最高高度 那么,去掉小于\(h[1]\)的城市,将\(h[i]\)排序,记\(…
来自FallDream的博客,未经允许,请勿转载,谢谢. 跳蚤国有 n 个城市,伟大的跳蚤国王居住在跳蚤国首都中,即 1 号城市中.跳蚤国最大的问题就是饮水问题,由于首都中居住的跳蚤实在太多,跳蚤国王又体恤地将分配给他的水也给跳蚤国居民饮用,这导致跳蚤国王也经常喝不上水.于是,跳蚤国在每个城市都修建了一个圆柱形水箱,这些水箱完全相同且足够高.一个雨天后,第 i 个城市收集到了高度为 hi 的水.由于地理和天气因素的影响,任何两个不同城市收集到的水高度互不相同.跳蚤国王也请来蚂蚁工匠帮忙,建立了一…
蒟蒻的第一篇黑题题解,求过. 题目链接 题意描述 这道题用简洁的话来说,就是: 给你 \(n\) 个数字,你可以让取其中任意若干个数字,每次操作,都会使所有取的数字变为取的数字的平均数,并且你最多只能进行 \(k\) 次操作,你要在这经过最多 \(k\) 次操作后使得给你的第一个数字变得最大.输出保留 \(p\) 位的第一个数字的最后状态. 贪心策略(非正解,有助后面做题) 我们暂且不研究这道题的正解是什么,我们先看看怎么样贪心能够使得第一个数字变得最大. 首先,比第一个数字小的我们一定不需要,…
[BZOJ4654][NOI2016]国王饮水记(动态规划,斜率优化) 题面 BZOJ 洛谷 题解 首先肯定是找性质. 明确一点,比\(h_1\)小的没有任何意义. 所以我们按照\(h\)排序,那么\(h_1\)就是当前\(1\)号位置的水量. 假设我们使用的次数不受到任何限制,我们思考怎么样才是最优. 首先每次只和一个合并一定比和多个合并更优. 假设有三个位置\(h_1\lt h_2\lt h_3\) 那么如果直接合并,答案是\((h_1+h_2+h_3)/3\) 如果每次合并一个,答案是\(…
$n \leq 8000$的数列,问不超过$m \leq 1e9$次操作后第一个数字最大是多少.操作:选一些数,把他们变成他们的平均值.需要保留$p \leq 3000$位小数,提供了一个小数高精度库. 太长懒得写了..总之就是个斜率优化DP,然后有奇怪性质 原题解 基本能猜到定理八,十至今没理解QAQ 用前八个定理写了一份被卡精度的代码.就是DP的时候记决策点,然后最后用决策点算答案即可.但DP过程本身精度损得厉害,所以有些点过不了. // This is an empty program w…
Description 题库链接 给出 \(n\) 个水杯,每个水杯装有不同高度的水 \(h_i\) ,每次可以指定任意多水杯用连通器连通后断开,问不超过 \(k\) 次操作之后 \(1\) 号水杯的最高水量.需要输出 \(q\) 位小数.(提供高精度小数库,单次计算 \(O(q)\) ) \(1\leq n\leq 8000,1\leq k\leq 10^9,1\leq h_i\leq 10^5\) Solution 做这道题的过程中想到的几个显然的结论: 高度小于 \(h_1\) 的水杯不会…
解:这个题一脸不可做... 比1小的怎么办啊,好像没用,扔了吧. 先看部分分,n = 2简单,我会分类讨论!n = 4简单,我会搜索!n = 10,我会剪枝! k = 1怎么办,好像选的那些越大越好啊,那么我就排序之后枚举后缀! k = INF怎么办啊,好像最优策略是从小到大一个一个连通啊,那直接模拟好了. 写一写,有40分了. 别的怎么办啊,拿搜索找规律吧?于是发现一个规律(伪):最优策略一定是单独选择最后k - 1个,和前面的一个后缀. 于是枚举后缀,然后模拟后面的部分,成功得到了61分!…
bz第233题,用一种233333333的做法过掉了(为啥我YY出一个算法来就是全网最慢的啊...) 题意:求sigma{(i^m)*(m^i),1<=i<=n},n<=10^9,m<=200 别人的做法: O(m^2logn),O(m^2),甚至O(m)的神做法 学渣的做法:矩乘+秦九韶算法,O(m^3logn),刚好可以过最弱版本的国王奇遇记的数据 (极限数据单点其实是1.2s+,不想继续卡常了-bzoj卡总时限使人懒惰-如果把矩乘的封装拆掉可能会快点吧,然而人弱懒得拆了...…
数论 题解:http://www.cnblogs.com/zhuohan123/p/3726933.html copy一下推导过程: 令$$S_i=\sum_{k=1}^{n}k^im^k$$ 我们有$$ \begin{aligned} (m-1)S_i &= mS_i-S_i \\&=\sum_{k=1}^n k^im^{k+1}-\sum_{k=1}^n k^i m^k \\&=\sum_{k=2}^{n+1}(k-1)^i m^k-\sum_{k=1}^n k^i m^k \…
[BZOJ3157/3516]国王奇遇记(数论) 题面 BZOJ3157 BZOJ3516 题解 先考虑怎么做\(m\le 100\)的情况. 令\(f(n,k)=\displaystyle \sum_{i=1}^n i^k m^i\),然后推式子: \[\begin{aligned} f(n+1,k)&=\sum_{i=1}^{n+1} i^km^i=m+\sum_{i=2}^{n+1}i^km^i\\ &=m+\sum_{i=1}^n (i+1)^km^{i+1}\\ &=m+…
emmm...... 直接看题解好了: BZOJ-3157. 国王奇遇记 – Miskcoo's Space O(m)不懂扔掉 总之,给我们另一个处理复杂求和的方法: 找到函数之间的递推公式! 这里用错位相减,然后想办法转化 由于根据二项式定理,展开之后会出现k^i的乘方,所以展开,有助于变成f(j)递推下去 O(m^2) #include<bits/stdc++.h> #define reg register int #define il inline #define numb (ch^'0…
先挖坑 #include <cstdio> using namespace std; int main(){ puts("转载请注明出处:http://www.cnblogs.com/wangyurzee7/"); puts("谢谢您的配合"); puts("by wangyurzee7"); return 0; } 题记 终于到了说再见的时候了呢. 要说有什么遗憾,大概也就只有最后的一段旅程,没有带上心爱的青轴吧. 还要说遗憾的话,…
首先明确,博主是个渣渣... 7月19日 出发啦,准备去哈尔滨,临走时爸爸迟迟不肯离去站台口,凝望着我,心理很感动..内心的压力瞬间增大2333,附候车室图片.. 在火车上怎么也睡不着2333 7月20日 早上到了哈尔滨,下车去常去的面馆吃了顿面,好吃呀...拉肚子了QAQ,坐上了火车站旁边的机场巴士去了机场,在机场巴士睡了一会..机场好♂大,可以,这很机场2333,坐上了飞机,开始睡觉..下午到了成都,感谢阳哥,在阳哥帮助下找到了双流机场的高铁,直接从双流机场去绵阳,然后下车打了个车,妈的,司…
分析:该题有2个地方要注意:所有的车要么不坐要么就坐满,这个贪心策略很容易证明是正确的,还有一点就是最后一辆车除外. #include <cstdlib> #include <cstdio> #include <cstring> #include <algorithm> #include <iostream> using namespace std; ; int N, K, D, S; struct Node { int ti; int qz;…
果然我数学不行啊,题解君: http://www.cnblogs.com/zhuohan123/p/3726933.html const h=; var fac,facinv,powm,s:..]of int64; n,m:int64; function mexp(a,b:int64):int64; begin ); mexp:=sqr(mexp(a,b>>))mod h; = then mexp:=mexp*a mod h; end; function C(n,r:int64):int64;…
题面:BZOJ3157 一句话题意: 求: \[ \sum_{i=1}^ni^m\ \times m^i\ (mod\ 1e9+7)\ \ (n \leq 1e9,m\leq200)\] 题解 令 \[ DP[i]=\sum_{k=1}^n k^i*m^k \] 则 \[ (m-1)DP[i]=mDP[i]-DP[i] \] \[ =\sum_{k=1}^{n}k^im^{k+1}-\sum_{k=1}^nk^im^k \] \[ =\sum_{k=2}^{n+1}(k-1)^im^k-\sum…
题目描述 三倍经验题. 给你\(n,m\),求 \[ \sum_{i=1}^ni^mm^i \] \(n\leq {10}^9,1\leq m\leq 500000\) 题解 当\(m=1\)时\(ans=\frac{n(n+1)}{2}\) 剩下的部分这篇博客有讲YWW's Blog 时间复杂度:\(O(m+\log n)\) 代码 #include<cstdio> #include<cstring> #include<algorithm> using namespa…
题意 求\(\sum_{k=1}^{n}k^mm^k (n\leq1e9,m\leq1e3)\) 思路 在<>中有一个方法用来求和,称为摄动法. 我们考虑用摄动法来求这个和式,看能不能得到比较好的复杂度. 首先令\(f(i)=\sum_{k=1}^nk^im^{k}\). 然后开始表演 \[ \begin{align*} (m-1)f(i)&=\sum_{k=1}^nk^im^{k+1}-\sum_{k=1}^nk^im^k \\ &=\sum_{k=1}^{n+1}(k-1)…
Description Input 共一行包括两个正整数N和M. Output 共一行为所求表达式的值对10^9+7取模的值. 特判m=1 m≠1时: 设S[u]=sigma(i^u*m^i) m*S[u]=sigma(i^u*m^(i+1)) =sigma((i-1)^u*m^i)+n^u*m^(n+1) 两式相减得(m-1)*S[u]=n^u*m^(n+1)-sigma((i^u-(i-1)^u)*m^i) S[u]=(n^u*m^(n+1)-sigma((i^u-(i-1)^u)*m^i)…
由二项式定理,(m+1)k=ΣC(k,i)*mi.由此可以构造矩阵转移,将mi*ik全部塞进去即可,系数即为组合数*m.复杂度O(m3logn),因为大常数喜闻乐见的T掉了. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; in…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3157 https://www.lydsy.com/JudgeOnline/problem.php?id=3516 题解:http://blog.miskcoo.com/2014/06/bzoj-3157 没管 O(m) 的方法…… UPD(2019.2.20):这样构造的思想大概是想要用 \( f(j) \) (j<=i) 来表示出 \( f(i) \) . 考虑 \( f(m)=\sum…
令\[S_i=\sum_{k=1}^n k^i m^k\]我们有\[\begin{eqnarray*}(m-1)S_i & = & mS_i - S_i \\& = & \sum_{k=1}^n k^i m^{k+1} - \sum_{k=1}^n k^i m^k \\& = & \sum_{k=2}^{n+1} (k-1)^i m^k - \sum_{k=1}^n k^i m^k \\& = & n^i m^{n+1} + \sum_{k=…
Link: BZOJ 3157 传送门 Solution: 题意:求解$\sum_{i=1}^n m^i \cdot {i^m}$ $O(m^2)$做法: 定义一个函数$f[i]$,$f[i]=\sum_{i=1}^n k^i \cdot {m^k}$ $(m-1)\cdot f(i)=\sum_{k=1}^n k^i \cdot m^{k + 1} - \sum_{k=1}^n k^i \cdot m^k$ $= \sum_{k=1}^{n+1} (k - 1)^i\cdot m^k - \s…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3157 https://www.lydsy.com/JudgeOnline/problem.php?id=3516 这篇博客写得太好:http://blog.miskcoo.com/2014/06/bzoj-3157 然而目前之会 \( O(m) \) 的做法: 感觉关键是设计 \( S_{i} \),把它设在 \( m \) 那一维上很妙,毕竟 \( i^{m} \) 不太好做: 然而推式…
求$\sum_{i=1}^ni^mm^i$.$n \leq 1e9,m \leq 200$. 其实我也不知道这东西为啥叫“扰动法”,大概是在黑暗的边缘试探?就是那种,人家再多一点就被您看破了,然后您就一定要搞他那么一点去试探他的限度,一不小心给他搞爆了,这种感觉. 扰动三连: 等比数列求和: $\sum_{i=1}^na_i,a_i=a_1*q^{n-1}$. 令$S_n=\sum_{i=1}^na_i$. 给他日上个$n+1$. $S_n+a_{n+1}$ $=\sum_{i=1}^{n+1}…
先膜一发Miskcoo,大佬的博客上多项式相关的非常全 原题戳我 题目大意 求 \[\sum\limits_{i=1}^{n}i^mm^i\] 题解 设一个函数\(f(i)=\sum\limits_{j=1}^{n}j^im^j\) 然后貌似用一个叫扰动法(感觉就是错位相消法)的东西,算一下 \[(m-1)f(i)=\sum\limits_{j=1}^{n+1}(j-1)^im^j-\sum\limits_{i=1}^{n}j^im^j=n^im^{n+1}-\sum\limits_{j=1}^…