[NOIP2018校模拟赛]T2矩阵分组 Matrix】的更多相关文章

题目链接: 矩阵分组 分析: 这道题求的是两部分极差当中大的那个的最小值.对于这种求最值的问题,我们很自然(其实并没有)地想到二分答案. 这个题有两个结论: (好像当时看出来了第一个?然后发现下面都不会了,果断弃疗滚去写T3) 第一个结论: 对于划分的每个区域,为了保证只拐一次弯,它每一行的长度是单调且连续的 这样任意两个元素之间拐个直角弯就能到了(x) 参见下图(从发的solution里面扒的): 这个结论可以感性得到(--),因为如果它每一行的长度不单调,就会有 凸 ←这种形状的东西出来,从…
题目: 描述 有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使p*q刚好为正整数m的阶乘,求m的最小值. 输入 共两行. 第一行一个正整数n. 第二行n个正整数a[i]. 输出 共一行 一个正整数m. 样例输入 1 6 样例输出 3 看到这个题目描述只有一行我心头就涌上一股不祥的预感-- 一般这种题--都比较--那啥-- (是的,这个题我又写炸了-- 好的让我们来分析一下这道题: 分析: 首先我们可以知道,如果一个数的阶乘对输入的数的乘积取模等于零(实际上就是它的倍数),那么…
题目链接: 聚会 分析: 设每个点到1号点的距离为dist_{i},每个点的权值为x_{i},目标点到1号点的距离为dist,权值为x,那么对于每一次查询,我们讨论三种情况: ① 目标家庭在区间左边(x<=l) 如图所示 这种情况下 ans=sum((dist_{i}-dist)*x_{i]) =sum(dist_{i]*x_{i}) - dist*sum(x_{i}) ②目标家庭在区间右边(x>=r) 容易同理得到 ans= dist*sum(x_{i})-sum(dist_{i]*x_{i…
模拟赛T2 交换 解题报告 题目大意: 给定一个序列和若干个区间,每次从区间中选择两个数修改使字典序最小. \(n,m\) 同阶 \(10^6\) 2.1 算法 1 按照题意模拟,枚举交换位置并比较. 时间复杂度\(O(mn3)\). 期望得分20分. 2.2 算法 2 不难发现给定区间之外的位置对每个询问的答案无影响,所以每次的问题就是取出一个子段,问这个子段怎样交换一次字典序最小. 根据字典序定义,我们需要找到最小的位置满足通过交换可以使这个位置变小,也就是说这个位置不是后缀最小值,因此从后…
闲谈: 最后一个星期还是不浪了,做一下模拟赛(还是有点小虚) #30.candy 题目: 有一个人想买糖吃,有两家商店A,B,A商店中第i个糖果的愉悦度为Ai,B商店中第i个糖果的愉悦度为Bi 给出n,W,表示每个商店都有n个糖果且两个商店的每个糖果的价格都是W 求出最大的min(Sa,Sb)-D*W 其中Sa表示在A商店买的糖果的愉悦度之和,Sb表示在B商店中买的糖果的愉悦度之和,D表示总共在两家商店买的糖果数 题解: 直接乱搞,贪心想一想,每次取糖果肯定先从愉悦度大的取为优 那么我们只要在取…
螺旋矩阵 题目 问题描述 对于一个 n 行 m 列的表格,我们可以使用螺旋的方式给表格依次填上正整数,我们称填好的表格为一个螺旋矩阵. 例如,一个 4 行 5 列的螺旋矩阵如下: 1 2 3 4 5 14 15 16 17 6 13 20 19 18 7 12 11 10 9 8 输入格式 输入的第一行包含两个整数 n, m,分别表示螺旋矩阵的行数和列数. 第二行包含两个整数 r, c,表示要求的行号和列号. 输出格式 输出一个整数,表示螺旋矩阵中第 r 行第 c 列的元素的值. 样例输入 4…
题意 $n * m$的网格,对其进行黑白染色,问每一行每一列至少有一个黑格子的方案数. Sol 考场上只会$n^3$的dp,还和指数级枚举一个分qwq 设$f[i][j]$表示到了第$i$行,已经有$j$列被染黑,然后暴力转移上一行有几个黑格子 正解是容斥 首先固定好列,也就是保证每一列都有一个黑格子 这样的方案是$(2^N - 1) ^M$ 然后容斥行 组合数暴力算即可 #include<cstdio> #include<cstring> #include<algorith…
小澳的坐标系 (coordinate.cpp/c/pas) [题目描述] 小澳者表也,数学者景也,表动则景随矣. 小澳不喜欢数学,可数学却待小澳如初恋,小澳睡觉的时候也不放过. 小澳的梦境中出现了一个平面直角坐标系,自原点,向四方无限延伸. 小澳在坐标系的原点,他可以向上.向左或者向右走.他可以走n步,但不能经过相同的点. 小澳想知道他有多少种走法. [输入格式] 输入文件名为coordinate.in. 输入文件仅第一行一个正整数n,表示小澳可以走的步数.   [输出格式] 输出文件名为coo…
LINK:T2 这题感觉很套路 但是不会写. 区间操作 显然直接使用dp不太行 直接爆搜也不太行复杂度太高. 容易想到差分 由于使得整个序列都为0 那么第一个数也要i差分前一个数 强行加一个0 然后 显然让差分序列变成0即可. 每次可以单点修改两个位置的值 也可以当前和最后一个数后面那个数做 其实相当于单独做 表示后缀全体的事情. 0显然没有任何贡献了 考虑怎么做才是最优的. 当时没有证明 直接猜了一个结论是 每次操作比然会使一个位置上的值变成0. (当时以为假了 结果时当时没有想清楚 自闭..…
Weed duyege的电脑上面已经长草了,经过辨认上面有金坷垃的痕迹. 为了查出真相,duyege 准备修好电脑之后再进行一次金坷垃的模拟实验. 电脑上面有若干层金坷垃,每次只能在上面撒上一层高度为 vi 的金坷垃,或者除掉最 新 vi 层(不是量)撒的金坷垃.如果上面只留有不足 vi 层金坷垃,那么就相当于电脑上 面没有金坷垃了. duyege 非常严谨,一开始先给你 m 个上述操作要你依次完成.然后又对实验步骤进行 了 q 次更改,每次更改都会改变其中一个操作为另外一个操作.每次修改之后都…