bzoj 1318: [Spoj744] Longest Permutation 智商题
1318: [Spoj744] Longest Permutation
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 361 Solved: 215
[Submit][Status][Discuss]
Description
你的任务是找到这种类型的最长的子集。
Input
第二行,n个数,第I个数表示元素Ai
Output
Sample Input
4 1 2 3 2
Sample Output
HINT
你可以选得子集从A1开始到A4,这个子集长度为4,包含了1,2,3,4)
1<=n<=100010
题解传送门:http://www.shuizilong.com/house/archives/spoj-744-longest-permutation/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdio>
using namespace std;
#define MAXN 101000
typedef long long qword;
int a[MAXN];
int prv[MAXN];
int pid[MAXN];
int vis[MAXN];
int l[MAXN];
qword s[MAXN];
int bstans=;
void solve(int n)
{
memset(pid,,sizeof(pid));
for (int i=;i<=n;i++)
{
if (a[i]>n)
{
prv[i]=;
a[i]=n+;
}
else
{
prv[i]=pid[a[i]];
pid[a[i]]=i;
}
}
for (int i=;i<=n;i++)
s[i]=s[i-]+a[i];
for (int i=;i<=n;i++)
{
if (a[i]==)
{
int mx=;
for (int j=i+;j<=n && a[j]!=;j++)
l[j]=min(l[j-],prv[j]);
int prvmax=;
for (int j=i;j>= && (j==i || a[j]!=);j--)
{
mx=max(mx,a[j]);
prvmax=max(prvmax,prv[j]);
if (j+mx-<i || j+mx->n)continue;
if (max(prvmax,l[j+mx-])>=j)continue;
if (s[j+mx-]-s[j-]==(qword)(mx+)*mx/)
{
bstans=max(bstans,mx);
}
}
}
}
} int main()
{
freopen("input.txt","r",stdin);
int n;
scanf("%d",&n);
int l,r;
for (int i=;i<=n;i++)
scanf("%d",a+i);
solve(n);
for (int i=;i<=n/;i++)
swap(a[i],a[n-i+]);
solve(n);
printf("%d\n",bstans);
}
bzoj 1318: [Spoj744] Longest Permutation 智商题的更多相关文章
- bzoj 1318 [SPOJ744] Longest Permutation (排列)
大意: 给定序列, 求选出一个长度为k的区间, 使得区间内的数为[1,k]的排列, 且要求k最大 这题好神啊. 每个排列有且仅有一个1, 我们按1将序列分成若干子问题来处理, 而每个位置最多属于两个子 ...
- 【bzoj1318】[Spoj744] Longest Permutation(乱搞)
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=1318 这道题的大意是要求一个长度为len,并包含1~len所有数,并使len最大的子区 ...
- [BZOJ 2759] 一个动态树好题
[BZOJ 2759] 一个动态树好题 题目描述 首先这是个基环树. 然后根节点一定会连出去一条非树边.通过一个环就可以解除根的答案,然后其他节点的答案就可以由根解出来. 因为要修改\(p_i\),所 ...
- Educational Codeforces Round 7 D. Optimal Number Permutation 构造题
D. Optimal Number Permutation 题目连接: http://www.codeforces.com/contest/622/problem/D Description You ...
- HDU 1029 Ignatius and the Princess IV / HYSBZ(BZOJ) 2456 mode(思维题,~~排序?~~)
HDU 1029 Ignatius and the Princess IV (思维题,排序?) Description "OK, you are not too bad, em... But ...
- 【BZOJ】【4066】简单题(强制在线)
KD-Tree KD-Tree的进阶姿势戳这里 http://zyfzyf.is-programmer.com/posts/92431.html 为啥有种线段树&平衡树的即视感……(树形结构的 ...
- BZOJ 1303 CQOI2009 中位数图 水题
1303: [CQOI2009]中位数图 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2340 Solved: 1464[Submit][Statu ...
- Wunder Fund Round 2016 (Div. 1 + Div. 2 combined) B. Guess the Permutation 水题
B. Guess the Permutation 题目连接: http://www.codeforces.com/contest/618/problem/B Description Bob has a ...
- codeforces 676A A. Nicholas and Permutation(水题)
题目链接: A. Nicholas and Permutation time limit per test 1 second memory limit per test 256 megabytes i ...
随机推荐
- 基于asp.net MVC 的服务器和客户端的交互(二)之获取Oauth 2.0认证权限
基本Web API的ASP.NET的Oauth2认证 增加Token额外字段 增加Scope授权字段 持久化Token 设计Token的时间间隔 刷新Token后失效老的Token 自定义验证[重启I ...
- sql中在查询时两列合并为一列
select a + ' '+b as ab from tableName 如果是有整型的(例,b字段为int类型): select a +' '+Convert(VARCHAR(50),b) a ...
- Anroid之Intent的使用
inten常见动作:MAIN_ACTION(主视图). VIEW_ACTION(查看). EDIT_ACTION(修改). PICK_ACTION(选择) .GET_CONTENT_ACTION(获取 ...
- 【转】用capability 特征加强Linux系统安全
用capability 特征加强Linux系统安全 摘要:传统UNIX系统的访问控制模型非常简单——普通用户对超级用户.在这种模型中,一个进程或者帐户要么只有很小的权限,要么具有全部的系统权限.显然, ...
- 《JS高级程序设计》笔记 —— 解析查询字符串
今天在继续翻阅<JS高级程序设计>的时候,正好翻到location对象这一小节,其中有一部分就是讲的解析查询字符串.看到这个内容立马想到了做去哪儿秋招笔试题的时候有这么一道题. 去哪儿笔试 ...
- 暑假集训(4)第四弹 -----排列,计数(hdu1465)
题意概括:嗯,纵使你数次帮助小A脱离困境,但上一次,小A终于还是失败了.那数年的奔波与心血,抵不过轻轻一指,便彻底 湮灭,多年的友谊终归走向末路.这一切重击把小A彻底击溃! 不为什么,你到底还是要继续 ...
- DTcms同一频道需要两种类型的列表模版思路
放两个列表模版即可,两个模版下的内容都可以访问,同一个内容展示不同的模版,需要什么栏目,链接就写哪个. 对动态链接进行判断,选择 最终效果: 频道URL配置
- php入门之表单创建和基本处理
为了方便后面学习数组,这里引入了过渡章节就是表单,至于为什么,等真的学习到数组的时候你就会发现它的妙处拉. ============================================== ...
- Vb.Net Xml文档格式化
最近在处理Webservice文档的时候,因为是未格式化的,需要处理,所以有了以下代码. #Region "Xml字符串转换成格式化的XML文件" 'txt_Result.Text ...
- linux 输入子系统(2)----简单实例分析系统结构(input_dev层)
实例代码如下: #include <linux/input.h> #include <linux/module.h> #include <linux/init.h> ...