#416 Div2 C
#416 Div2 C
题意
一些人去坐车,它们已经按给定顺序排队,每个人可能去不同的目的地,去同一目的地的人一定要被分成一组(去不同目的地的也可被分到同一组),对分好的每一组所有不同的目的地序号作异或,并求和,求使得结果最大。(不要求每个人都要分组,不能改变人的顺序,在同一组的人序号必须连续)
分析
首先预处理找到以每个人为左端可以产生的分组(显然有些人不能作为左端,如果可以,那么一定是唯一确定的分组),然后记忆化搜索一下即可。
code
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN = 5e3 + 10;
int a[MAXN];
int b[MAXN];
int bl[MAXN], br[MAXN];
int xora[MAXN];
int n;
int dp[MAXN];
void dfs(int x, int res) {
if(res <= dp[x]) return;
else dp[x] = res;
if(x >= n) return;
if(x == bl[a[x]]) dfs(br[a[x]] + 1, res + xora[bl[a[x]]]);
dfs(x + 1, res);
}
int main() {
cin >> n;
memset(dp, -1, sizeof dp);
for(int i = 0; i < n; i++) {
scanf("%d", &a[i]);
if(!b[a[i]]) bl[a[i]] = i;
b[a[i]]++;
br[a[i]] = i;
}
for(int i = 0; i < 5001; i++) {
set<int> s;
if(!b[i]) continue;
for(int j = bl[i]; j <= br[i]; j++) {
br[i] = max(br[i], br[a[j]]);
if(bl[a[j]] < bl[i]) {
bl[i] = bl[a[j]];
}
}
if(a[bl[i]] != i) continue;
for(int j = bl[i]; j <= br[i]; j++) {
if(!s.count(a[j])) {
s.insert(a[j]);
xora[bl[i]] ^= a[j];
}
}
}
dfs(0, 0);
cout << dp[n] << endl;
return 0;
}
#416 Div2 C的更多相关文章
- codeforces round 416 div2 补题 CF 811 A B C D E
A. Vladik and Courtesy 水题略过 #include<cstdio> #include<cstdlib> #include<cmath> usi ...
- codeforces round #416 div2
A:暴力模拟 #include<bits/stdc++.h> using namespace std; int a, b; int main() { scanf("%d%d&qu ...
- bc#54 div2
用小号做的div2 A:竟然看错了排序顺序...白白WA了两发 注意读入一整行(包括空格):getline(cin,st) [gets也是资瓷的 #include<iostream> us ...
- $('div a') 与$('div>a'),.div+.div2与.div~.div2
$('div a'):div标签下所有层次a元素的jquery对象 $('div>a'):div标签下子元素层次a元素的jquery对象 <body> <div class=' ...
- HTTP状态码206和416
HTTP 2xx范围内的状态码表明了:"客户端发送的请求已经被服务器接受并且被成功处理了". TTP/1.1 200 OK是HTTP请求成功后的标准响应 HTTP/1.1 206状 ...
- SRM 657 DIV2
-------一直想打SRM,但是感觉Topcoder用起来太麻烦了.题目还是英文,不过没什么事干还是来打一打好了.但是刚注册的号只能打DIV2,反正我这么弱也只适合DIV2了.. T1: 题目大意: ...
- CodeForces Round 192 Div2
This is the first time I took part in Codeforces Competition.The only felt is that my IQ was contemp ...
- Codeforce Round #211 Div2
真的是b到不行啊! 尼玛C题一个这么简单的题目没出 aabbccddee 正确的是aabccdee 我的是 aabcdee 硬是TM的不够用,想半天还以为自己的是对的... A:题... B:题. ...
- Topcoder srm 632 div2
脑洞太大,简单东西就是想复杂,活该一直DIV2; A:水,基本判断A[I]<=A[I-1],ANS++; B:不知道别人怎么做的,我的是100*N*N;没办法想的太多了,忘记是连续的数列 我们枚 ...
随机推荐
- SIP DB33标准笔记 注册/目录发送/心跳
SIP协议扩展中: 在 RFC 3261 基础上定义了一个新方法 DO.方法 DO 的功能包括:控制对方动作.更新对方信息.查询对方状态.历史监控资料查询和回放等.发送方法 DO 的请求报文时,不会创 ...
- LeetCode 327. Count of Range Sum
无意看到的LeetCode新题,不算太简单,大意是给一个数组,询问多少区间和在某个[L,R]之内.首先做出前缀和,将问题转为数组中多少A[j]-A[i] (j>i)在范围内. 有一种基于归并排序 ...
- 某次模拟考试day2t3 菊菊的数据结构
[题目描述] 菊菊是一个码农,他很喜欢码一些高(e)级(xin)数据结构. 有一天,菊菊在打网赛时遇到了 wfj.wfj 觉得他很有前途,可以做下一代码农大神. 于是乎,wfj 给菊菊出了一道题,来检 ...
- Jfinal中Db类的的使用
Jfinal提供了两种操作数据库的组件,分别是Model类和DB类,可以极大地减少代码量,提高开发效率. Db类提供了在Model类之外更丰富的的数据库操作能力,使用Db类以及嵌套的Record类时, ...
- IOS中的绘图Quartz2D
drawRect 方法的使用 常见图形的绘制:线条.多边形.圆 绘图状态的设置:文字颜色.线宽等 图形上下文状态的保存与恢复 图形上下文栈 Quartz 2D是一个二维绘图引擎,同时支持IOS和MAC ...
- linux下登陆MongoDB的两种方式
第一种:不带auth认证的 第二种:需要带auth认证的(即需要用户名和密码的) 当指定用户名和密码在查看数据,发现就可以看得到了 查看文章:开启MongoDB客户端访问控制
- 纯CSS图片缩放后显示详细信息
哎~!突然好久没更新博客了,最近总在下雨,晚上也经常没有时间来管理博客(目前在敲自己的一个平台,晢时还在写逻辑层的代码),好吧!废话不多说了,言归正传. 现在很多图片缩放的特效大多数都是用javasc ...
- 看透SpringMVC源代码分析与实践 Markdown记录
kantouspringmvc 看透SpringMVC中文版电子书,使用Markdown语法记录学习<看透SpringMVC>的内容,方便自己整理知识,并在原作者写作的基础上添加自己的理解 ...
- vue-router 中router-view不能渲染
最近在做一个vue的项目,其中使用了vue2.0,vue-router2.0.在使用vue-router的时候跳了一个很大的坑,router-view不能渲染,花费了好多时间终于发现了原因. 项目目录 ...
- 《安卓网络编程》之第六篇 Android中的WIFI和蓝牙
关于WIFI就不多介绍啦,直接来个段子吧. 问:“WiFi对人体有伤害么?” 答:“不清楚,反正没有WiFi我就浑身不舒服. 比较重要的一点就是WifiManager wm=(WifiManager ...