MT【234】正方形染色(二)】的更多相关文章

有$n$个正方形排成一行,今用红,白,黑三种颜色给这$n$个正方形染色,每个正方形只能染一种颜色.如果要求染这三种颜色的正方形都是偶数个,问有多少种不同的染色方法. 解答: 设有$a_n$种不同的染法,则$\{a_n\}$对应的指数型母函数为$f(x)=\left(1+\dfrac{x^2}{2!}+\dfrac{x^4}{4!}+\cdots+\dfrac{x^{2n}}{2n!}+\cdots\right)^3=\left(\dfrac{1}{2}{e^x+e^{-x}}\right)^3$…
点此看题面 大致题意: 求出一个矩阵中所有\(n*n\)正方形中极差的最小值. 另一种做法 听说这题可以用单调队列去做,但是我写了一个二维\(RMQ\). 二维\(RMQ\) \(RMQ\)相信大家都会的,而 二维\(RMQ\) 其实与普通\(RMQ\)是没什么区别的. 我们可以用\(Max_{i,j,k}\)来表示\((i,j)\sim(i+2^k,j+2^k)\)这个矩阵内的最大值,\(Min_{i,j,k}\)同理. 由于求的是一个正方形内的最大值与最小值,所以\((i,j)\sim(x,…
理想的正方形 省队选拔赛河南  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 大师 Master       题目描述 Description 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. 输入描述 Input Description 第一行为3个整数,分别表示a,b,n的值 第二行至第a+1行每行为b个非负整数,表示矩阵中相应位置上的数.每行相邻两数之间用一空格分隔. 输出描述 Output Descr…
题目链接 做出二维\(ST\)表,然后\(O(n^2)\)扫一遍就好了. #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int MAXN = 1010; const int MAXLOGN = 12; int Max[MAXN][MAXN][MAXLOGN], Min[MAXN][MAXN][MAXLOGN], Log[MAXN]; int n,…
题目描述 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. 输入输出格式 输入格式: 第一行为3个整数,分别表示a,b,n的值 第二行至第a+1行每行为b个非负整数,表示矩阵中相应位置上的数.每行相邻两数之间用一空格分隔. 输出格式: 仅一个整数,为a*b矩阵中所有“n*n正方形区域中的最大整数和最小整数的差值”的最小值. 输入输出样例 输入样例#1: 5 4 2 1 2 5 6 0 17 16 0 16 17 2 1 2 10 2…
对于$c>0$,当非零实数$a,b$满足$4a^2-2ab+4b^2-c=0,$且使$|2a+b|$最大时,$\dfrac{3}{a}-\dfrac{4}{b}+\dfrac{5}{c}$的最小值为_____ 分析:此类题要知道方法是很简单的,重在平时积累,此题是2014年的高考填空压轴题,和2008年华约自招三一题类似. 构造$(2a+b)^2-k(4a^2-2ab+4b^2)=0$,令$\dfrac{a}{b}=t$, 得 $(4-4k)t^2+(4+2k)t+1-4k=0$令$\Delta…
“当一幢建筑物完成时,应该把脚手架拆除干净.”——高斯 (2017北大特优)若对任意使得关于 \(x\) 的方程 \(ax^2+bx+c=0\)(\(ac\ne 0\))有实数解的 \(a,b,c\) 均有 \((a-b)^2+(b-c)^2+(c-a)^2\geqslant rc^2\),则实数 \(r\) 的最大值是_____ A.\(1\) B.\(\frac{9}{8}\) C.\(\frac{9}{16}\) D.\(2\) 答案:$\dfrac{9}{8}$提示:令$\dfrac{b…
题目描述 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. 输入输出格式 输入格式: 第一行为3个整数,分别表示a,b,n的值 第二行至第a+1行每行为b个非负整数,表示矩阵中相应位置上的数.每行相邻两数之间用一空格分隔. 输出格式: 仅一个整数,为a*b矩阵中所有“n*n正方形区域中的最大整数和最小整数的差值”的最小值. 输入输出样例 输入样例#1: 复制 5 4 2 1 2 5 6 0 17 16 0 16 17 2 1 2 1…
传送门 很蒙蔽,不知道怎么搞. 网上看题解有说可以哈希+二分搞,也有的人说用Manacher搞,Manacher是什么鬼?以后再学. 对于这个题,可以从矩阵4个角hash一遍,然后枚举矩阵中的点,再二分半径. 但是得考虑边的长度为奇偶所带来的影响. 比如 1 1 1 1 这个边数为偶数的矩阵显然没法搞. 所以得在矩阵中插入0, 变成 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 具体操作就看代码好了. 然后只枚举 行 + 列 为偶数的点就行.…
传送门 1.先弄个单调队列求出每一行的区间为n的最大值最小值. 2.然后再搞个单调队列求1所求出的结果的区间为n的最大值最小值 3.最后扫一遍就行 懒得画图,自己体会吧. ——代码 #include <cstdio> #include <iostream> using namespace std; ; int a, b, n, h, t; ; inline void work1(int k) { int i, j; h = , t = ; ; i <= b; i++) { w…