CF933A/934C A Twisty Movement
2024-08-30 17:31:06
思路:
实际上是求原序列中最长的形如1......2......1......2......的子序列的长度。令dp[i][j](1 <= j <= 4)表示在子序列a[1]至a[i]中形如前j部分的子序列的最大长度。可以使用动态规划求解。
实现:
#include <bits/stdc++.h>
using namespace std;
int dp[];
int main()
{
int n, d;
while (cin >> n)
{
memset(dp, , sizeof dp);
for (int i = ; i < n; i++)
{
cin >> d;
if (d == )
{
dp[]++;
dp[] = max(dp[], dp[]) + ;
}
else
{
dp[] = max(dp[], dp[]) + ;
dp[] = max(dp[], dp[]) + ;
}
}
int ans = -;
for (int i = ; i <= ; i++) ans = max(ans, dp[i]);
cout << ans << endl;
}
return ;
}
最新文章
- 详细讲述MySQL中的子查询操作 (来自脚本之家)
- 两个多项式相加 ( C++ )
- noi 1.5 43:质因数分解
- Net 通用权限管理系统源码 带数据库设计文档,部署说明文档
- 获取Android版本信息和电话信息
- HTTP协议小结
- Vue入门笔记#数据绑定语法
- Unity3d导出Android的apk文件时相关问题的解决办法
- spring tx:advice 和 aop:config 配置事务
- poj 2195 Going Home(最小费用最大流)
- 如何忽略usb host 模式设备连接确认对话框
- [已解决问题] Could not find class XXX referenced from method XXX.<;YYY>;
- Hard 计算0到n之间2的个数 @CareerCup
- Linux学习,在线版
- TCP三次握手那些事
- Windows 7升级1月更新汇总后导致SMBv2网络无法正常工作
- HttpHelpers类普通GET和POST方式,带Cookie和带证书验证模式
- Java中Lambda表达式的使用(转)
- LeetCode 463 Island Perimeter 解题报告
- Java中double转BigDecimal的注意事项