CF#710 E. Generate a String (DP)
来源:互联网 发布:mysql编写自定义函数 编辑:程序博客网 时间:2024/06/18 08:43
题目点我点我点我
题目大意:每过x秒可以输入或删除一个‘a’,每过y秒可以把已有的字母‘a’乘以2,问要得到n个‘a’字母的最少时间。
解题思路:dp[i]表示得到第i个字母‘a’的最少时间,从以下方面得到:
1.前一个直接增加一个。
2.如果i是奇数,(i+1)/ 2 先乘以2再减去1.
3.如果是偶数,i/2 直接乘以2.
/* ***********************************************┆ ┏┓ ┏┓ ┆┆┏┛┻━━━┛┻┓ ┆┆┃ ┃ ┆┆┃ ━ ┃ ┆┆┃ ┳┛ ┗┳ ┃ ┆┆┃ ┃ ┆┆┃ ┻ ┃ ┆┆┗━┓ 马 ┏━┛ ┆┆ ┃ 勒 ┃ ┆ ┆ ┃ 戈 ┗━━━┓ ┆┆ ┃ 壁 ┣┓┆┆ ┃ 的草泥马 ┏┛┆┆ ┗┓┓┏━┳┓┏┛ ┆┆ ┃┫┫ ┃┫┫ ┆┆ ┗┻┛ ┗┻┛ ┆************************************************ */#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <stack>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>#include <bitset>using namespace std;#define rep(i,a,b) for (int i=(a),_ed=(b);i<=_ed;i++)#define per(i,a,b) for (int i=(b),_ed=(a);i>=_ed;i--)#define pb push_back#define mp make_pairconst int inf_int = 2e9;const long long inf_ll = 2e18;#define inf_add 0x3f3f3f3f#define mod 1000000007#define LL long long#define ULL unsigned long long#define MS0(X) memset((X), 0, sizeof((X)))#define SelfType intSelfType Gcd(SelfType p,SelfType q){return q==0?p:Gcd(q,p%q);}SelfType Pow(SelfType p,SelfType q){SelfType ans=1;while(q){if(q&1)ans=ans*p;p=p*p;q>>=1;}return ans;}#define Sd(X) int (X); scanf("%d", &X)#define Sdd(X, Y) int X, Y; scanf("%d%d", &X, &Y)#define Sddd(X, Y, Z) int X, Y, Z; scanf("%d%d%d", &X, &Y, &Z)#define reunique(v) v.resize(std::unique(v.begin(), v.end()) - v.begin())#define all(a) a.begin(), a.end()typedef pair<int, int> pii;typedef pair<long long, long long> pll;typedef vector<int> vi;typedef vector<long long> vll;inline int read(){int ra,fh;char rx;rx=getchar(),ra=0,fh=1;while((rx<'0'||rx>'9')&&rx!='-')rx=getchar();if(rx=='-')fh=-1,rx=getchar();while(rx>='0'&&rx<='9')ra*=10,ra+=rx-48,rx=getchar();return ra*fh;}//#pragma comment(linker, "/STACK:102400000,102400000")LL dp[10000005];int main(){//freopen("in.txt","r",stdin);//freopen("out.txt","w",stdout);ios::sync_with_stdio(0);cin.tie(0); Sddd(n,x,y); dp[1] = x; for(int i=2;i<=n;i++) { dp[i] = dp[i-1] + x; if(i&1) dp[i] = min(dp[i],dp[(i+1)/2]+x+y); else dp[i] = min(dp[i],dp[i/2]+y); }printf("%I64d\n",dp[n]);return 0;}
0 0
- CF#710 E. Generate a String (DP)
- CF 710E Generate a String
- 动态规划(Generate a String,cf 710E)
- codeforces 710E Generate a String(dp)
- CodeForce 710E - Generate a String(dp)
- CodeForces 710E Generate a String (DP)
- CodeForces-710E Generate a String(DP)
- CodeForces 710E Generate a String(DP)
- codeforces 710E Generate a String(基础DP)
- E - Generate a String dp
- codeforces 710E Generate a String [dp]【动态规划】
- Codeforces 710E Generate a String(dp或bfs)
- Codeforces 710E Generate a String【dp】好题!
- Educational Codeforces Round 16 -- E. Generate a String (DP)
- Educational Codeforces Round 16 E. Generate a String (dp)
- Codeforces-710E Generate a String
- 【CodeForce 710E】Generate a String
- Educational Codeforces Round 16 E. Generate a String-DP
- Xenomai 3 和 PREEMPT_RT 相比有什么好处
- 【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(二)
- 日志系统之Flume日志收集
- MySql(23)------mysql锁定语句
- win7 链接Linux 上MySQL数据库
- CF#710 E. Generate a String (DP)
- Linux网络编程 - BSD Socket网络通信编程
- 以后博客的规划
- 【Dubbo实战】基础学习篇(一)
- runtime如何通过selector找到对应的IMP地址?(分别考虑类方法和实例方法)
- 极客
- Android一整套图片解决方案(fresco三级缓存框架内部已经实现)
- Integral Channel Features-论文整理
- MyBatis由浅入深学习总结之二:MyBatis解决Java实体类和数据库表字段不一致方法总结