DUT 1089 A Water Problem
2017-03-16 09:25
281 查看
设f(n)表示对n长度的字符串所需要的最小代价。
考虑当n为偶数时,通过倍增超出n长度后,又通过删除来得到一个n长度的字符串的方式:
f(n)=f(n2)+y
f(n)=f(n2+a)+2ax+y
由题目可以得到:
f(n2+a)+ax≥f(n2+a)+2ax≥f(n2+a)+2ax+y≥f(n2+a)+2ax+y>f(n2)f(n2)+axf(n2)+ax+yf(n2)+y
故对于偶数的n,超出长度后删除的方式将不可能得到一个更优的解。
对于为奇数的n,其可以通过f(n+12)+x+y转移,由对偶数n的证明可以知道,任何的超出n+12的决策也不可能是更优的,故有以下状态方程:
f(n)=min(f(n−1)+x,f(n+12)+x+y)|n∈odd
f(n)=min(f(n−1)+x,f(n2)+y)|n∈even
对于107的线性dp这个时限和内存都是随便跑的,实现上没有什么问题。
考虑当n为偶数时,通过倍增超出n长度后,又通过删除来得到一个n长度的字符串的方式:
f(n)=f(n2)+y
f(n)=f(n2+a)+2ax+y
由题目可以得到:
f(n2+a)+ax≥f(n2+a)+2ax≥f(n2+a)+2ax+y≥f(n2+a)+2ax+y>f(n2)f(n2)+axf(n2)+ax+yf(n2)+y
故对于偶数的n,超出长度后删除的方式将不可能得到一个更优的解。
对于为奇数的n,其可以通过f(n+12)+x+y转移,由对偶数n的证明可以知道,任何的超出n+12的决策也不可能是更优的,故有以下状态方程:
f(n)=min(f(n−1)+x,f(n+12)+x+y)|n∈odd
f(n)=min(f(n−1)+x,f(n2)+y)|n∈even
对于107的线性dp这个时限和内存都是随便跑的,实现上没有什么问题。
#include<algorithm> #include<iostream> using namespace std; typedef long long ll; ll dp[10000010],x,y;int n; bool cl(){ int i,j;if(!(cin>>n>>x>>y))return 0; for(dp[1]=x,i=2;i<=n;++i) dp[i]=i&1?min(dp[i-1]+x,dp[(i+1)>>1]+x+y):min(dp[i-1]+x,dp[i>>1]+y); cout<<dp <<endl; return 1; }; int main(){ #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif while(cl()); return 0; };
相关文章推荐
- dutacm.club_1089_A Water Problem_(dp)
- dutacm.club Water Problem(矩阵快速幂)
- A water problem
- DUT 周赛 2497 A simple problem 并查集
- hdu 5443 The Water Problem
- hdu5443 The Water Problem(线段树)
- HDU 4974 A simple water problem(贪心)
- 中国(北方)大学生程序设计训练赛(第二周)(Problem C: A Water Problem-dp)
- 2018年全国多校算法寒假训练营练习比赛(第五场)题解 F The Biggest Water Problem
- GDUT2017校赛:Problem E: 倒水(Water)(思维,二进制)
- 2017广东工业大学程序设计竞赛决赛 Problem E: 倒水(Water)(思维)
- 牛客网NowCoder 2018年全国多校算法寒假训练营练习比赛(第五场)A.逆序数 B.Big Water Problem(线段树-区间查询求和和单点更新) F.The Biggest Water Problem H.Tree Recovery(线段树-区间查询求和和区间更新)
- Codeforces Round #352 (Div. 2) B. Different is Good __ substrings water problem
- [leetcode-365]Water and Jug Problem(java)
- 365. Water and Jug Problem
- HDU 5832 A water problem (水题)
- HDU 5832 A water problem
- HDU 5832 A water problem
- hdu 5443 The Water Problem
- HDU 5443 The Water Problem