noip模拟赛 Chtholly Nota Seniorious
题目背景
大样例下发链接: https://pan.baidu.com/s/1nuVpRS1 密码: sfxg
こんなにも、たくさんの幸せをあの人に分けてもらった
だから、きっと
今の、私は
谁が何と言おうと
世界一、幸せな女の子だ
题目描述
——“假如……我是说假如喔。
万一我再过五天就会死,你能不能对我温柔一点?”
巨大的六号兽五天后将袭击浮游大陆。
无数次计算得到的残酷数据表明,只有圣剑瑟尼欧尼斯的适格精灵——珂朵莉·诺塔·瑟尼欧尼斯(Chtholly Nota Seniorious)开启妖精乡之门,才可以以生命为代价守住浮游岛。
“至少,我也希望自己不用消失,也想让别人记住。我也想留下羁绊啊。”
留给妖精少女珂朵莉的时间似乎已经不多了。
年轻的二等技官,妖精仓库的管理员,世界上最后一个人类——威廉·克梅修,数百年前曾经是一名准勇者,掌握着成为一名勇者所需要的所有知识。
大战在即,调整圣剑的状态成为了一项重要的任务。
瑟尼欧里斯(セニオリス)
圣剑的其中之一,在现存的遗迹兵装中,拥有最强大的力量。
拥有非常特殊的资质,只有极少一部分的人才能使用。
由四十一个护符组成。能将所有事物包含不死者都回归「死亡」。
威廉需要调整圣剑的状态,因此他将瑟尼欧尼斯拆分护符,组成了一个nn行mm列的矩阵。
每一个护符都有自己的魔力值。现在为了测试圣剑,你需要将这些护符分成 A,B两部分。
要求如下:
圣剑的所有护符,恰好都属于两部分中的一部分。
- 每个部分内部的方块之间,可以通过上下左右相互到达,而且每个内部的方块之间互相到达,最多允许拐一次弯。
例如
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相关推荐
- NOI.AC NOIP模拟赛 第六场 游记
NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...
- 【noip模拟赛4】Matrix67的派对 暴力dfs
[noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...
- 【HHHOJ】NOIP模拟赛 捌 解题报告
点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...
- Chtholly Nota Seniorious
题目背景 大样例下发链接: https://pan.baidu.com/s/1nuVpRS1 密码: sfxg こんなにも.たくさんの幸せをあの人に分けてもらった だから.きっと 今の.私は 谁が何と ...
- luogu3933 Chtholly Nota Seniorious
http://www.elijahqi.win/archives/1442 题目背景 大样例下发链接: https://pan.baidu.com/s/1nuVpRS1 密码: sfxg こんなにも. ...
- jyzy noip模拟赛5.22-2
不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...
- NOIP模拟赛csy2021/10/30
NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...
- 【WZOI第二次NOIP模拟赛Day1T2】世界末日 解题报告
[WZOI第二次NOIP模拟赛Day1T2]世界末日 Problem 2 世界末日 (doomsday.pas/c/cpp) 背景 话说CWQ大牛终于打开了那扇神秘大门,但迎接他的不是什么神秘的东西, ...
- NOIP 模拟赛 长寿花 题解
NOIP 模拟赛 长寿花 题解 要放 \(n\) 层物品,第 \(i\) 层有 \(a_i\) 个位置放物品,物品有 \(m\) 中颜色,有约束条件: 同一层两个相邻物品颜色不能相同. 相邻两层颜色集 ...
最新文章
- Mask-RCNN技术解析
- Ubuntu任务栏Tint2安装与使用
- 西湖大学教授:都说不唯论文,那我们发表论文是为了什么?
- python爬虫教程下载-Python爬虫入门教程!手把手教会你爬取网页数据
- 心得体悟帖---15、我的灵魂
- eclipse 翻译插件_这两个IDE插件,可以让你写出质量杠杠的代码
- 1、IDEA中如何在一个工程下创建多个模块
- 自己实现多线程的socket,socketserver源码剖析
- VC使用编译时间作为版本号
- 【ArcGIS风暴】ArcGIS自动生成标识码(BSM)的两种方法案例教程
- pip/pip3 install 报错 “Could not find a version that satisfies the requriement xxx” 的解决方法
- 我的山寨敏捷四季之春
- G - Ordering Tasks(拓补排序)
- 如何清理多余的Windows桌面右键菜单
- 微信小程序取本地数据库数据(实测有图)
- Everything工具设置书签
- missing ios distribution signing identity xxx, xcode can request one for you
- Java 2、8、16进制概述和由来
- 魔兽怀旧服务器维护副本是否重置,魔兽世界怀旧服副本重置时间 魔兽世界怀旧服副本重置时间详解...
- 爱帮网遭江苏移动侵权 源自爱帮机器人
热门文章
- 38.什么是PV操作
- SPI及其工作原理浅析
- pycharm远程和本地同时_pycharm远程开发之django配置
- python正则表达式模块_Python正则表达式函数模块
- 009_Raphael动画
- 009_storage.conf配置详情
- 009_html标准属性
- mysql limit不要1_切记!MySQL中ORDER BY与LIMIT 不要一起用,有大坑
- java 等待_Java并发之等待/通知机制
- vbn中使用的3种流程控制结构是_细菌进化树构建:从模式种序列下载到构建系统发育树一键搞定...