思路:

实际上是求原序列中最长的形如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 ;
}

最新文章

  1. 详细讲述MySQL中的子查询操作 (来自脚本之家)
  2. 两个多项式相加 ( C++ )
  3. noi 1.5 43:质因数分解
  4. Net 通用权限管理系统源码 带数据库设计文档,部署说明文档
  5. 获取Android版本信息和电话信息
  6. HTTP协议小结
  7. Vue入门笔记#数据绑定语法
  8. Unity3d导出Android的apk文件时相关问题的解决办法
  9. spring tx:advice 和 aop:config 配置事务
  10. poj 2195 Going Home(最小费用最大流)
  11. 如何忽略usb host 模式设备连接确认对话框
  12. [已解决问题] Could not find class XXX referenced from method XXX.&lt;YYY&gt;
  13. Hard 计算0到n之间2的个数 @CareerCup
  14. Linux学习,在线版
  15. TCP三次握手那些事
  16. Windows 7升级1月更新汇总后导致SMBv2网络无法正常工作
  17. HttpHelpers类普通GET和POST方式,带Cookie和带证书验证模式
  18. Java中Lambda表达式的使用(转)
  19. LeetCode 463 Island Perimeter 解题报告
  20. Java中double转BigDecimal的注意事项

热门文章

  1. js和jquery实现回到顶层
  2. 记一次Tomcat无法正常启动的查错与解决之路
  3. Android SDK update被墙
  4. Java 文件路径的读取
  5. HTML form表单的默认提交方式
  6. 暴走吧!Snapdragon SDK开发速成指南
  7. 高清摄像头MIPI CSI2接口浅解【转】
  8. codeforces 688B B. Lovely Palindromes(水题)
  9. AutoIT: FileReadLine可以对文件进行读行操作
  10. [转]json.dumps和json.loads区别