ICode9

精准搜索请尝试: 精确搜索
  • CF452F等差子序列 & 线段树+hash查询区间是否为回文串2021-11-10 14:00:39

    记录一下一个新学的线段树基础trick(真就小学生trick呗) 给你一个1到n的排列,你需要判断该排列内部是否存在一个3个元素的子序列(可以不连续),使得这个子序列是等差序列。n<=3e5 考虑等差数列的相关性质,对于一个3个数的等差数列,当 a[i] 作为中间项可行时,当且仅当一定存在至少1个 k

  • 【CF452F】Permutation(线段树维护哈希值)2020-08-17 13:32:41

    点此看题面 大致题意: 给定一个\(n\)的排列,问是否存在\(i<j<k\)满足\(p_j=\frac{p_i+p_k}2\)。 转化 注意到这是一个排列。 不妨设\(q_x\)表示数\(x\)所在的位置,问题就变成是否存在\(x,t\)满足\(q_{x-t}<q_x<q_{x+t}\)或\(q_{x-t}>q_x>q_{x+t}\)。 如果我们按照\(q_x\)从小到大枚举

  • CF452F Permutation [哈希,树状数组]2020-05-02 17:55:12

    我们把一个树状数组倒过来,这样就不用维护哈希线段树了,找下区间,两个区间如果不一样那么有个数字在后边,有个数字在前面。。 // powered by c++11 // by Isaunoya #include <bits/stdc++.h> #define rep(i, x, y) for (register int i = (x); i <= (y); ++i) #define Rep(i, x, y) f

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有