NOIP模拟38:a】的更多相关文章

T1 a 跟入阵曲很像,但是忘记入阵曲这题的思路是什么了 这里再提一下,入阵曲是子矩阵和是$k$的倍数,这道题目是子矩阵和是在一段区间内$[L,R]$ 因为这道题$n$特别小,$m$较大,考虑复杂度为$O(n^2m)$的做法 那么按照入阵曲的思想,枚举行的上下边界,每次处理出这两行之间的前缀和,记为$sm_k$ 然后使用双指针,  $l,r$分别维护的是横向框出的这一段前缀和的合法的最左端点和最右端点 只要每次枚举找到这两个量,直接把$r-l+1$累加到$ans$里面就可以完成统记 1 #inc…
T1 a 入阵曲.枚举矩形上下界,之后从左到右扫一遍.用树状数组维护前缀和加特判可以$A$,更保险要脸的做法是双指针扫,因为前缀和单调不减. $code:$ 1 #include<bits/stdc++.h> 2 #define LL long long 3 #define rin register signed 4 using namespace std; 5 const int NN=5e4+5; 6 int n,m,l,r,mat[35][NN],pre[35][NN],ext; 7 L…
liu_runda的题! 错过辽QAQ T1虽然没用题解的损益法,但是用高精%还能过.. 没想到敲完就过编译了,还以为要调一天呢 高精度的阴影没了- T2的思路很巧妙 首先一个区间最多有一种颜色占一半以上,所以分别计算3种颜色的贡献 处理个+=1的前缀和,又转化成求逆序对 log过不去,发现右指针每右移一位,所查询的权值的变化量一定是1 那可以在左边也放个指针,抖一抖维护出贡献就行了 T3 二分套二分 之前就被一道wqs的二分题虐死了 到今发现以前根本没搞懂,重学wqs 核心就是根据题目性质,发…
题解 \(by\;zj\varphi\) 发现就是一棵树,但每条边都有多种不同的颜色,其实只需要保留随便三种颜色即可. 直接点分治,将询问离线,分成一端为重心,和两端都不为重心的情况. 每次只关心经过重心的询问,其他询问不管,具体实现就是点分治的套路,每次搜一棵子树,更新标记. 动归有些小细节,尽量边权化点权,不容易出错,式子直接看官方题解. 复杂度 \(\mathcal O\rm(3^3nlogn+3^4q)\) Code #include<bits/stdc++.h> #define Re…
题解 \(by\;zj\varphi\) 考虑转化问题,将计算最大公约数换为枚举最大公约数. 设 \(sum_i\) 为最大公约数为 \(i\) 的方案数,可以容斥求解,\(sum_i=f_i-\sum_{j=2}^{j*i\le mx} sum_{j*i}\). \(f_i\) 表示最大公约数是 \(i\) 的倍数的方案数,设 \(g_{i,j}\) 为第 \(i\) 行,倍数为 \(j\) 的有几个. 最后记得算不选的情况,还要加去一个没选的情况. Code #include<bits/st…
题解 \(by\;zj\varphi\) 压行. 枚举两行,将中间的行压成一行,然后直接前缀和加二分. 注意边界细节问题. Code #include<bits/stdc++.h> #define Re register #define ri Re signed #define p(i) ++i namespace IO{ char buf[1<<21],*p1=buf,*p2=buf; #define gc() p1==p2&&(p2=(p1=buf)+fread…
\(\color{white}{\mathbb{深秋总有廖落处,雁归每是菊败时,名之以:残菊}}\) 这场比赛几乎全场都在打暴力,几乎人均切掉的 \(t1\) 没有想到双指针,\(t3\) 的暴力也没记忆化而太过暴力 A. a 很容易想到同时枚举两行,然后算列的贡献 考场上只想到用数状数组维护,但是很显然 \(down\) 和 \(up\) 两条线之间区域的边界是单调的,双指针维护即可 B.b 考虑对于每个 \(i\) 计算 \(i|gcd\) 的方案数,设每一组是 \(i\) 的倍数的数有 \…
  这是T2.   一个容斥(其实也可以欧拉反演做,但是我不会).   首先开一个桶,记录第i行的j有多少个.   然后枚举1-\(maxn\),枚举他的值域内的倍数,记录倍数在第i行有多少个,将个数记录在\(c[i][j]\)里   然后计算对每个j\(\prod_{i=1}^{n}(c[i][j]+1)\)   这个式子的意义是他的倍数的选法方案数,其中加一表示这一行不选的情况,展开后有一个1的常数项表示所有行都不选,是非法的,要减掉.   所以最终的方案数是他减一.   这是他倍数的选择方…
  这是T1.   考场上思路与正解就差个前缀,打的线段树,因为其巨大常数快乐挂掉......   正解复杂度是\(O(n^2m)\),其实再挂个\(log\)也能过,但是需要用常数极其优秀的树状数组外加大大大大大大大大大大大大大大大大力卡常.   有点像之前做的入阵曲一题.   首先\(n\)很小,那么考虑\(O(n^2)\)枚举上下界,然后用一个指针扫一边,具体实现比较像入阵曲,可以参考着看.   大部分思路是一样的,只是有一点,这题要做桶的前缀和.   首先要证明一点就是点个数比自己小的矩…
NOIP模拟17.9.22 前进![问题描述]数轴的原点上有一只青蛙.青蛙要跳到数轴上≥…