题目背景

大样例下发链接: https://pan.baidu.com/s/1nuVpRS1 密码: sfxg

こんなにも、たくさんの幸せをあの人に分けてもらった

だから、きっと

今の、私は

谁が何と言おうと

世界一、幸せな女の子だ

题目描述

——“假如……我是说假如喔。

万一我再过五天就会死,你能不能对我温柔一点?”

巨大的六号兽五天后将袭击浮游大陆。

无数次计算得到的残酷数据表明,只有圣剑瑟尼欧尼斯的适格精灵——珂朵莉·诺塔·瑟尼欧尼斯(Chtholly Nota Seniorious)开启妖精乡之门,才可以以生命为代价守住浮游岛。

“至少,我也希望自己不用消失,也想让别人记住。我也想留下羁绊啊。”

留给妖精少女珂朵莉的时间似乎已经不多了。

年轻的二等技官,妖精仓库的管理员,世界上最后一个人类——威廉·克梅修,数百年前曾经是一名准勇者,掌握着成为一名勇者所需要的所有知识。

大战在即,调整圣剑的状态成为了一项重要的任务。

瑟尼欧里斯(セニオリス)
圣剑的其中之一,在现存的遗迹兵装中,拥有最强大的力量。
拥有非常特殊的资质,只有极少一部分的人才能使用。
由四十一个护符组成。能将所有事物包含不死者都回归「死亡」。

威廉需要调整圣剑的状态,因此他将瑟尼欧尼斯拆分护符,组成了一个nn行mm列的矩阵。

每一个护符都有自己的魔力值。现在为了测试圣剑,你需要将这些护符分成 A,B两部分。

要求如下:

  1. 圣剑的所有护符,恰好都属于两部分中的一部分。

  2. 每个部分内部的方块之间,可以通过上下左右相互到达,而且每个内部的方块之间互相到达,最多允许拐一次弯。

例如

AAAAA  AAAAA  AAAAA
AABAA  BaAAA  AAABB
ABBBA  BBAAA  AAABB
AABAA  BaAAA  ABBBB
AAAAA  AAAAA  BBBBB(1)     (2)     (3)      

其中(1)(2)是不允许的分法,(3)是允许的分法。在(2)中,a属于A区域,这两个a元素之间互相到达,没有办法最多只拐一次弯。

现在要问,所有合法的分法中,A区域的极差与B区域的极差 中间较大的一个的 最小值 是多少?

好心而可爱的在一旁默默观察奈芙莲悄悄地告诉你,极差就是区域内最大值减去最小值。

夜晚的风吹拂着,68号岛上的景色竟与地上的森林无异。转念又想,黄金妖精本身就是与森林之中出现,成长,消亡的神秘存在啊。

时间不早了,早上训练中落败的珂朵莉即将回来了。您要尽快和威廉一起调整好圣剑,千万不能迟哟。

分析:把图分成两个部分其实就相当于画一条单调的线:,为了使得极差最小,最大值和最小值肯定不在同一部分,先假设最大值在蓝色部分,最小值在红色部分。要求最大极差最小,可以想到二分答案,判断的时候一行一行的判断,看蓝色部分最多能够从右往左延伸到哪里,接下来判断其它的红色部分能否满足条件就行了.如果答案是k,蓝色区域都≥x-k,红色区域都≤y+k,x是最大值,y是最小值.

每次二分求出来的只是一种情况,红蓝对调需要翻折一次,分割线单调上升或下降也需要翻折一次,也就是说把图形旋转4次求得最小值才是答案.

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;const int inf = 0x7fffffff;int n, m, a[2010][2010], ans = inf, maxx = -inf, minn = inf;void turnl()
{for (int i = 1; i <= n; i++)for (int j = 1; j <= m / 2; j++)swap(a[i][j], a[i][m - j + 1]);
}void turnn()
{for (int i = 1; i <= n / 2; i++)for (int j = 1; j <= m; j++)swap(a[i][j], a[n - i + 1][j]);
}bool check(int x)
{int p = 0;for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++)if (a[i][j] < maxx - x)p = max(p, j);for (int j = 1; j <= m; j++)if (minn + x < a[i][j])if (j <= p)return false;}return true;
}int solve()
{int l = 0, r = maxx - minn, res = 0;while (l <= r){int mid = (l + r) >> 1;if (check(mid)){res = mid;r = mid - 1;}elsel = mid + 1;}return res;
}int main()
{scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++){scanf("%d", &a[i][j]);minn = min(minn, a[i][j]);maxx = max(maxx, a[i][j]);}ans = min(ans, solve());turnl();ans = min(ans, solve());turnn();ans = min(ans, solve());turnl();ans = min(ans, solve());printf("%d\n", ans);return 0;
}

转载于:https://www.cnblogs.com/zbtrs/p/7705975.html

noip模拟赛 Chtholly Nota Seniorious相关推荐

  1. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  2. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...

  3. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  4. Chtholly Nota Seniorious

    题目背景 大样例下发链接: https://pan.baidu.com/s/1nuVpRS1 密码: sfxg こんなにも.たくさんの幸せをあの人に分けてもらった だから.きっと 今の.私は 谁が何と ...

  5. luogu3933 Chtholly Nota Seniorious

    http://www.elijahqi.win/archives/1442 题目背景 大样例下发链接: https://pan.baidu.com/s/1nuVpRS1 密码: sfxg こんなにも. ...

  6. jyzy noip模拟赛5.22-2

    不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...

  7. NOIP模拟赛csy2021/10/30

    NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...

  8. 【WZOI第二次NOIP模拟赛Day1T2】世界末日 解题报告

    [WZOI第二次NOIP模拟赛Day1T2]世界末日 Problem 2 世界末日 (doomsday.pas/c/cpp) 背景 话说CWQ大牛终于打开了那扇神秘大门,但迎接他的不是什么神秘的东西, ...

  9. NOIP 模拟赛 长寿花 题解

    NOIP 模拟赛 长寿花 题解 要放 \(n\) 层物品,第 \(i\) 层有 \(a_i\) 个位置放物品,物品有 \(m\) 中颜色,有约束条件: 同一层两个相邻物品颜色不能相同. 相邻两层颜色集 ...

最新文章

  1. Mask-RCNN技术解析
  2. Ubuntu任务栏Tint2安装与使用
  3. 西湖大学教授:都说不唯论文,那我们发表论文是为了什么?
  4. python爬虫教程下载-Python爬虫入门教程!手把手教会你爬取网页数据
  5. 心得体悟帖---15、我的灵魂
  6. eclipse 翻译插件_这两个IDE插件,可以让你写出质量杠杠的代码
  7. 1、IDEA中如何在一个工程下创建多个模块
  8. 自己实现多线程的socket,socketserver源码剖析
  9. VC使用编译时间作为版本号
  10. 【ArcGIS风暴】ArcGIS自动生成标识码(BSM)的两种方法案例教程
  11. pip/pip3 install 报错 “Could not find a version that satisfies the requriement xxx” 的解决方法
  12. 我的山寨敏捷四季之春
  13. G - Ordering Tasks(拓补排序)
  14. 如何清理多余的Windows桌面右键菜单
  15. 微信小程序取本地数据库数据(实测有图)
  16. Everything工具设置书签
  17. missing ios distribution signing identity xxx, xcode can request one for you
  18. Java 2、8、16进制概述和由来
  19. 魔兽怀旧服务器维护副本是否重置,魔兽世界怀旧服副本重置时间 魔兽世界怀旧服副本重置时间详解...
  20. 爱帮网遭江苏移动侵权 源自爱帮机器人

热门文章

  1. 38.什么是PV操作
  2. SPI及其工作原理浅析
  3. pycharm远程和本地同时_pycharm远程开发之django配置
  4. python正则表达式模块_Python正则表达式函数模块
  5. 009_Raphael动画
  6. 009_storage.conf配置详情
  7. 009_html标准属性
  8. mysql limit不要1_切记!MySQL中ORDER BY与LIMIT 不要一起用,有大坑
  9. java 等待_Java并发之等待/通知机制
  10. vbn中使用的3种流程控制结构是_细菌进化树构建:从模式种序列下载到构建系统发育树一键搞定...