Codeforces 846 A Curriculum Vitae(dp)
来源:互联网 发布:tcp编程用什么语言 编辑:程序博客网 时间:2024/05/18 03:24
题目地址
题意:给你一个01串,让你删除最少的字符,使得这个字符串变成先0后1的字符串,求最后字符串的长度
思路:一个典型的dp问题。有两种情况,这个理清楚就好了:
- 1、当当前字符为0时,有两种选择,一种是继承前面全是0的,这个时候就需要加一,第二种是删除这个字符,这个时候就是取前面全为0的情况和已经改为1的情况的最大值。
- 2当当前字符为1时,有两种选择,一种是继承前面全为0的情况和已经改为1的情况的最大值,这个时候就需要加一,第二种是删除这个字符,这个时候就是取前面全为0的情况。
代码比较清晰,可以参照代码来理解。
PS:开始01看错了,以为是先1后0,WA了一次。
#include <iostream>#include <cstring>#include <string>#include <queue>#include <vector>#include <map>#include <set>#include <stack>#include <cmath>#include <cstdio>#include <algorithm>#include <iomanip>#define N 110#define M 4000010#define LL __int64#define inf 0x7f7f7f7f#define lson l,mid,ans<<1#define rson mid+1,r,ans<<1|1#define getMid (l+r)>>1#define movel ans<<1#define mover ans<<1|1using namespace std;const double PI = acos(-1.0);int num[N], dp[N][2];int main() { cin.sync_with_stdio(false); int n; while (cin >> n) { for (int i = 1; i <= n; i++) { cin >> num[i]; } dp[0][0] = dp[0][1] = 0; for (int i = 1; i <= n; i++) { if (num[i] == 0) { dp[i][0] = max(dp[i - 1][0], dp[i - 1][1]); dp[i][1] = dp[i - 1][1] + 1; } else{ dp[i][0] = max(dp[i - 1][0], dp[i - 1][1]) + 1; dp[i][1] = dp[i - 1][1]; } } cout << max(dp[n][0], dp[n][1]) << endl; } return 0;}
阅读全文
0 0
- Codeforces 846 A Curriculum Vitae(dp)
- codeforces 846A Curriculum Vitae(LIS)
- codeforces 846A Curriculum Vitae
- Educational Codeforces Round 28 A :Curriculum Vitae
- Educational Codeforces Round 28 A. Curriculum Vitae(读懂题意后的暴力水题)
- Curriculum Vitae
- curriculum vitae
- Curriculum Vitae
- curriculum-vitae
- MY New curriculum vitae
- CodeForces 256A (dp)
- codeforces 666A (DP)
- CodeForces 543A Writing Code(DP)
- CodeForces 607 A. Chain Reaction(dp)
- CodeForces 666A Reberland Linguistics(DP)
- Codeforces 698A. Vacations (简单DP)
- CodeForces 698 A. Vacations(dp)
- CodeForces 702A Maximum Increase (DP)
- Numpy学习笔记——便捷函数
- Android中configure: error: C compiler cannot create executables解决方法
- STM32启动过程--启动文件--分析
- E
- [DP] POJ1661
- Codeforces 846 A Curriculum Vitae(dp)
- Ubuntu下通过mentohust使用校园网
- 百度开源项目推荐
- Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use
- POJ
- mongoDB导出数据库所有集合内容到json文件
- POJ
- 将jar包安装到本地仓库
- JavaScript HTML DOM 添加和删除节点(HTML 元素)