思路:

令dp[i]表示前i个的最大舒适度。则如果区间[j, i](1 < j <= i)满足条件,有如下转移:dp[i] = max(dp[i], dp[j - 1] + cur)。其中,cur为区间[j, i]的舒适度。

实现:

 #include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; const int MAXN = ;
int n, a[MAXN], l[MAXN], r[MAXN], vis[MAXN], dp[MAXN]; int main()
{
cin >> n;
for (int i = ; i <= n; i++)
cin >> a[i];
for (int i = ; i <= n; i++)
{
if (!l[a[i]]) l[a[i]] = i;
r[a[i]] = i;
}
for (int i = ; i <= n; i++)
{
dp[i] = dp[i - ];
int cur = ;
memset(vis, , sizeof(vis));
int minL = l[a[i]];
for (int j = i; j >= ; j--)
{
if (r[a[j]] > i) break;
if (!vis[a[j]]) vis[a[j]] = , cur ^= a[j];
minL = min(minL, l[a[j]]);
if (minL >= j) dp[i] = max(dp[i], dp[j - ] + cur);
}
}
cout << dp[n] << endl;
return ;
}

最新文章

  1. WCF 安全性之 自定义用户名密码验证
  2. Scrapy--1安装和运行
  3. 多元线性回归 &mdash;&mdash;模型、估计、检验与预测
  4. Git / 程序员需要知道的12个Git高级命令
  5. oracle pl sql 解锁表
  6. VS生成事件
  7. bzoj4709 [jsoi2011]柠檬
  8. docker-py的配置与使用
  9. c++中运算符重载,+,-,--,+=,-=,*,/,*=,/=,
  10. PHP basename() 函数
  11. 介绍三个Android支持库控件:TabLayout+ViewPager+RecyclerView
  12. QT的安装及环境配置
  13. 关于Docker开通远程访问端口2375
  14. 检查SQL Server被哪个进程占用,且杀进程。
  15. Sublime Text 3安装Package Control快速建立html5和xhtml文档
  16. C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用
  17. 11.2.0.4rac service_name参数修改
  18. Solr中的日期/时间表示
  19. django项目分页
  20. Zipper(动态规划)

热门文章

  1. 彻底来理解下hashmap吧
  2. http://www.cnblogs.com/sprinkle/
  3. 用vhd挂载并安装win7且建立分差vhd
  4. jq 常用手册
  5. HDU4930-Fighting the Landlords
  6. 75. Autorelease机制及释放时机
  7. JavaScript变量提升演示样例
  8. 指针数组,数组指针,函数指针,main函数实质,二重指针,函数指针作为參数,泛型函数
  9. 【bzoj1034】[ZJOI2008]泡泡堂BNB
  10. gitlab结构分析