给定你个数组,以及一些单点修改,以及询问,每次询问需要求得,最长的字串长度,它在其他位置存在同构。

当存在两个不相交的区间同构时,如:

1、2、……、n -1、n、n + 1、……、m、m + 1、m + 2、 ……、m + n - 1、m + n;(假设m > n&&[1, n]和[m + 1, m + n]同构)

那么 K = n 显然是存在的。但是这不是最大的K,因为[1, m]和[n + 1, n + m]也一定同构(使两边同时加上一个相同区间)

所以这题可以简化为找到一个区间首尾元素相同,求最大区间长度;

Accepted 4089 C++11 1200 23516
#include "bits/stdc++.h"
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
const int INF = 0x3f3f3f3f;
const int MAXN = 1e5 + ;
map<int, set<int> > mp;
multiset<int> ans;
int arr[MAXN];
int main() {
int t, n, m;
scanf("%d", &t);
while (t--) {
mp.clear();
ans.clear();
scanf("%d%d", &n, &m);
for (int i = ; i <= n; i++) {
scanf("%d", &arr[i]);
mp[arr[i]].insert(i);
}
for (auto i : mp) {
ans.insert(*(--i.second.end()) - *i.second.begin());
}
int op, x, y;
while (m--) {
scanf("%d", &op);
if (op == ) {
if (*(--ans.end()) == ) {
puts("-1");
} else {
printf("%d\n", *(--ans.end()));
}
} else {
scanf("%d%d", &x, &y);
auto it = ans.find(*(--mp[arr[x]].end()) - *mp[arr[x]].begin());
ans.erase(it);
mp[arr[x]].erase(x);
if (!mp[arr[x]].empty()) {
ans.insert(*(--mp[arr[x]].end()) - *mp[arr[x]].begin());
} if (!mp[y].empty()) {
it = ans.find(*(--mp[y].end()) - *mp[y].begin());
ans.erase(it);
}
arr[x] = y;
mp[y].insert(x);
ans.insert(*(--mp[y].end()) - *mp[y].begin());
}
}
}
return ;
}

可能表述不是很清楚,这题参考了一下https://www.cnblogs.com/hua-dong/p/10293407.html这位大佬的博客;

ZOJ-4089-Little Sub and Isomorphism Sequences的更多相关文章

  1. ZOJ - 4089 :Little Sub and Isomorphism Sequences (同构 set)

    Little Sub has a sequence . Now he has a problem for you. Two sequences of length and of length are ...

  2. Little Sub and Isomorphism Sequences ZOJ - 4089

    ZOJ - 4089 思路:可以反正 最长重构序列必然符合  此模式 x  +  {   }  与  {   }  +  x 那么 题意转化为了  找两个距离最长的相同的数.eeee 先离散化 然后 ...

  3. ZOJ Monthly, January 2019 Little Sub and Isomorphism Sequences 【离线离散化 + set + multiset】

    传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5868 Little Sub and Isomorphism Seque ...

  4. ZOJ Monthly, January 2019 I Little Sub and Isomorphism Sequences(set 妙用) ZOJ4089

    写这篇博客来证明自己的愚蠢 ...Orz  飞机 题意:给定你个数组,以及一些单点修改,以及询问,每次询问需要求得,最长的字串长度,它在其他位置存在同构 题解:经过一些奇思妙想后 ,你可以发现问题是传 ...

  5. ZOJ Monthly, January 2019

    A: Little Sub and Pascal's Triangle Solved. 题意: 求杨辉三角第n行奇数个数 思路: 薛聚聚说找规律,16说Lucas 答案是 $2^p \;\;p 为 n ...

  6. ZOJ Problem Set - 1338 Up and Down Sequences 解释 ac代码

    这道题目我一开始一头雾水,怎么都数不对,参考了下网上的博文,才弄懂. 题意是这样的,如果是上升序列,上升序列的长度不是所有上升数字的,是这么规定的,如果它与前一个数字构成上升,那么这个数字算上长度.所 ...

  7. ZOJ 3861 - Valid Pattern Lock

    3861 - Valid Pattern Lock Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & ...

  8. 【转载】图论 500题——主要为hdu/poj/zoj

    转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  9. ZOJ 3233 Lucky Number

    Lucky Number Time Limit: 5000ms Memory Limit: 32768KB This problem will be judged on ZJU. Original I ...

随机推荐

  1. Activity组件:(一)通过显式意图和隐式意图来实现Activity间的跳转

    一.通过显式意图来实现Activity间的跳转 显式意图是指在创建Intent对象时就指定接受者组件 /** * 下面是通过显式意图进行跳转,即明确写出要跳转到SecondActivity.class ...

  2. java数据库连接池比较

    dbcp dbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池吧.这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有.这个连接 ...

  3. 吴裕雄--天生自然ShellX学习笔记:Shell 流程控制

    和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search(q); ...

  4. webview Java与JS互调

    Android调用JS:方法一 webView.loadUrl("javascript:show('"+info+"')"); Android调用JS:方法二 ...

  5. [原]你知道怎么使用DebugView查看内核调试信息吗?

    原总结注册表sysinternalsdebugviewprocess explorerprocess monitor 简介 DebugView是sysinternals工具集中的一款用来查看调试信息的 ...

  6. swift bannerview 广告轮播图

    class BannerView: UIView,UIScrollViewDelegate{ //图⽚⽔平放置到scrollView上 private var scrollView:UIScrollV ...

  7. Acunetix WVS安全测试软件使用教程(入门级)

    1.下载 Acunetix WVS 10.5软件,下载地址为:https://pan.baidu.com/s/1Koku0Lhya5PgphMVL7w19g 密码:v438 2.压缩包中有破解说明,按 ...

  8. dubbo配置文件加载顺序

    JVM 启动 -D 参数优先,这样可以使用户在部署和启动时进行参数重写,比如在启动时需改变协议的端口. XML 次之,如果在 XML 中有配置,则 dubbo.properties 中的相应配置项无效 ...

  9. ubuntu14.04安装32位库

    sudo dpkg --add-architecture i386 sudo apt update

  10. 黑马eesy_15 Vue:03.生命周期与ajax异步请求

    黑马eesy_15 Vue:02.常用语法 黑马eesy_15 Vue:03.生命周期 黑马eesy_15 Vue:04.Vue案例(ssm环境搭建) vue的生命周期与ajax异步请求 1.Vue的 ...