要点

  • 因为当前最大字符只有一个且两边是回文的,所以如果答案包含最大字符则一定是重合部分。
  • 若不包含,则用此字符将两个区间分别断为两部分,则共有四种组合,答案一定为其中之一。
#include <cstdio>
#include <algorithm>
using namespace std; int l1, l2, r1, r2; int Divide(int a, int b, int c, int d, int depth) {
if (a > b || c > d) return 0;
int res = max(0, min(b, d) - max(a, c) + 1);
if ((a <= c && b >= d) || (c <= a && d >= b)) return res; int mid = 1 << depth;
int x[2], y[2], s[2], t[2];
x[0] = min(a, mid), y[0] = min(b, mid - 1);
x[1] = max(a, mid + 1) - mid, y[1] = max(b, mid) - mid;
s[0] = min(c, mid), t[0] = min(d, mid - 1);
s[1] = max(c, mid + 1) - mid, t[1] = max(d, mid) - mid; res = max(res, Divide(x[0], y[0], s[0], t[0], depth - 1));//ll
res = max(res, Divide(x[0], y[0], s[1], t[1], depth - 1));//lr
res = max(res, Divide(x[1], y[1], s[0], t[0], depth - 1));//rl
res = max(res, Divide(x[1], y[1], s[1], t[1], depth - 1));//rr
return res;
} int main() {
scanf("%d %d %d %d", &l1, &r1, &l2, &r2);
return !printf("%d\n", Divide(l1, r1, l2, r2, 30));
}

Codeforces 161C(分治、性质)的更多相关文章

  1. Pudding Monsters CodeForces - 526F (分治, 双指针)

    大意: n*n棋盘, n个点有怪兽, 求有多少边长为k的正方形内恰好有k只怪兽, 输出k=1,...,n时的答案和. 等价于给定n排列, 对于任意一个长为$k$的区间, 若最大值最小值的差恰好为k, ...

  2. A Story of One Country (Hard) CodeForces - 1181E2 (分治)

    大意: 给定$n$个平面上互不相交的矩形. 若一个矩形区域只包含一个矩形或者它可以水平或垂直切成两块好的区域, 那么这个矩形区域是好的. 求判断整个平面区域是否是好的. 分治判断, 可以用链表实现删除 ...

  3. Codeforces 364E 分治

    题意:给你一个01矩阵,问此矩阵有多少个和恰好为k的子矩形. 思路:分治,对于当前矩形,用一条中线把矩形分成两半,分治之后计算跨过中线的矩形个数.更具体的来说(假设划了一条水平中线),我们枚举矩形左右 ...

  4. CodeForces 1063B. Labyrinth 性质

    给定$n *m$的格子 询问从$(r, c)$开始最多向左走$x$步,向右走$y$步 询问有多少个格子可以从$(r, c)$到达 有障碍物,$n, m \leqslant 2 * 10^3$ 对于一个 ...

  5. Codeforces 1142A(性质、暴举)

    队友和大佬都什么几种情况啥的……我是把终点都插了,起点随便选一个,暴举答案莽A. ; ll n, k, a, b, aa, minn = INF, maxx = -; set<ll> bb ...

  6. Codeforces 1039D You Are Given a Tree [根号分治,整体二分,贪心]

    洛谷 Codeforces 根号分治真是妙啊. 思路 考虑对于单独的一个\(k\)如何计算答案. 与"赛道修建"非常相似,但那题要求边,这题要求点,所以更加简单. 在每一个点贪心地 ...

  7. Codeforces 1442D - Sum(找性质+分治+背包)

    Codeforces 题面传送门 & 洛谷题面传送门 智商掉线/ll 本来以为是个奇怪的反悔贪心,然后便一直往反悔贪心的方向想就没想出来,看了题解才发现是个 nb 结论题. Conclusio ...

  8. Codeforces 348E 树的中心点的性质 / 树形DP / 点分治

    题意及思路:http://ydc.blog.uoj.ac/blog/12 在求出树的直径的中心后,以它为根,对于除根以外的所有子树,求出子树中的最大深度,以及多个点的最大深度的lca,因为每个点的最长 ...

  9. 树上的构造 树分治+树重心的性质 Codeforces Round #190 (Div. 2) E

    http://codeforces.com/contest/322/problem/E E. Ciel the Commander time limit per test 1 second memor ...

随机推荐

  1. 对python生成器特性使用的好例子

    1.对序列进行分组的函数(摘自web.py源码utils.py文件中) def group(seq, size): """ Returns an iterator ove ...

  2. bjwc Day1 暴力大战

    今天终于有题了... 题目是COCI2016/2017 Round #4 T1一看就是NP问题,k<=50,开始想暴力,想了个n^4的,大概能过,就没去管它 T2想得太naive,丢了100分给 ...

  3. Django 发送email配置详解及各种错误类型

    跟随Django Book的内容发送邮件不成功,总结一下需要配置好settings.py文件,还要注意一些细节. 1.在settings文件最后添加以下内容,缺一不可! EMAIL_HOST= 'sm ...

  4. docker的操作

    查询容器 docker ps  只能查询到正在运行的docker镜像: 如果添加上-a的选项,则会显示所有的(包括已经exit,未启动)的容器 基于一个镜像来构建(run)容器,并启动 docker ...

  5. Floyd(稠密图,记录路径)

    #include<iostream> #include<algorithm> #include<cstdio> #include<cstdlib> #i ...

  6. POJ1330(LCA入门题)

    Nearest Common Ancestors Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 23388   Accept ...

  7. POJ2553( 有向图缩点)

    The Bottom of a Graph Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 9779   Accepted:  ...

  8. algorithm-exercise

    https://github.com/billryan/algorithm-exercise Part I - Basics Basic Data Structure string: s2 = &qu ...

  9. simple demo of Handlebars.js & jquery.js

    simple demo of Handlebars.js & jquery.js <html> <head> <script src="jquery-1 ...

  10. vim跳转到文件的指定偏移位置

    :goto 偏移量 例如:偏移到文件的第100个字节处 :goto 100