NOI2019省选模拟赛 第三场】的更多相关文章

传送门 明明没参加过却因为点进去结果狂掉\(rating\)-- \(A\) 集合 如果我们记 \[f_k=\sum_{i=1}^nT^i{n-i\choose k}\] 那么答案显然就是\(f_{k-1}\) 然后就可以开始推倒了 \[ \begin{aligned} f_k &=\sum_{i=1}^nT^i{n-i\choose k}\\ &=\sum_{i=1}^nT^i{n-i-1\choose k}+\sum_{i=1}^nT^i{n-i-1\choose k-1}\\ &am…
传送门 又炸了-- \(A\) 唐时月夜 不知道改了什么东西之后就\(A\)掉了\(.jpg\) 首先,题目保证"如果一片子水域曾经被操作过,那么在之后的施法中,这片子水域也一定会被操作" 这个意思就是说,如果一个点\((x,y)\)被操作过,那么它被进行的操作一定是所有操作的一个后缀和 这样的话我们只要对于每个点维护一下它有几个操作,并把操作的后缀和维护起来,就能知道它到底被怎么操作了 维护有几个操作的话二维前缀和就行了 然后关键是后缀和我们应该怎么处理 因为这是一个矩阵,那么我们考…
爆炸了QAQ 传送门 \(A\) \(Mas\)的童年 这题我怎么感觉好像做过--我记得那个时候还因为没有取\(min\)结果\(100\to 0\)-- 因为是个异或我们肯定得按位考虑贡献了 把\(a\)做个前缀异或和,记为\(s_i\),那么就是要找到 \[\max_{j<i}\{s_j+(s_j\oplus s_i)\}\] 我们假设\(s_i\)第\(k\)位为\(a\),\(s_j\)第\(k\)位为\(b\),\(s_j+(s_j\oplus s_i)\)第\(k\)位为\(c\)…
NOI.AC NOIP模拟赛 第三场 补记 列队 题目大意: 给定一个\(n\times m(n,m\le1000)\)的矩阵,每个格子上有一个数\(w_{i,j}\).保证\(w_{i,j}\)互不相同.\(q(q\le5\times10^5)\)次询问,每次给出\(x,y\),询问有多少数满足在本行是第\(x\)大,在本列是第\(y\)大. 思路: 对每行.每列分别排序,求出每个数是本行.本列第几大.然后即可预处理答案. 时间复杂度\(\mathcal O(n^2\log n)\). 源代码…
传送门 Solution A. 一共有\(T\)组数据 每次询问你\([l,r]\)中有多少个数能被他的所有数位整除(如果数位中含有\(0\)忽略掉) 数位dp,咕咕咕 B. 题面略 考虑一个个只有两个元素组成的小区间 可以发现若选择\([l,l+1]\),则必定要选择一个最大的区间包含\([a[l],a[l+1]]\)的区间 每个小区间看成一个点,向它所要求必须要选择的点连边,线段树优化建图 对图进行tarjan缩点,然后拓扑排序即可 全是区间询问,大概要有5棵线段树的样子 其实有简单得多的解…
题目链接:http://noi.ac/contest/12/problem/37 题目: 小W收到了一张纸带,纸带上有 n个位置.现在他想把这个纸带染色,他一共有 m 种颜色,每个位置都可以染任意颜色,但是他发现如果某连续 m 个位置被染成了 m 种不同的颜色,那么就不美观,于是他决定让任意的相邻 m 个位置的颜色至少有两个位置相同.他想知道他一共有多少种染色的方案. 输入格式 第一行三个整数 n,m,p. 输出格式 输出一行一个整数,表示答案对 p 取模的结果. 题解: 我们考虑DP,设序列为…
mmt 居然第一步膜化乘除 都没看出来,没救了... 大概是贡献前缀和优化的做法 巨兔式讲解:大家都学会了么? 咱发现有大量的 (i/j , i%j ) 同时 对很多 c 产生了贡献,咱可以去优化这一部分的转移,具体做法就是根据前面能加的后面也能加,然后一路累加且算贡献 对于小于根号的所有 i/j ,咱可以优化这一部分转移,然后对于大于根号的 i/j ,暴力算就好了,两者复杂度都是是 n 根号 n 的 //by Judge #include<bits/stdc++.h> #define Rg…
给定数组a[],b[] 求$$c_i=\sum_{j=1}^{i} a_{\left \lfloor \frac{n}{j} \right \rfloor}·b_{i \bmod j}$$ 大概就是对于每一个n求上面那个式子,显然数论分块 乱搞有$$c_n=\sum_{i=1}^{n} a_{\left \lfloor \frac{n}{i} \right \rfloor}·b_{n-\lfloor \frac{n}{i} \rfloor * i}$$ 当在同一块内,也就是$\lfloor \f…
题目 比赛界面. T1 数据范围明示直接\(O(n^2)\)计算,问题就在如何快速计算. 树上路径统计通常会用到差分方法.这里有两棵树,因此我们可以做"差分套差分",在 A 树上对 B 的差分信息进行差分.在修改的时候,我们就会在 A 上 4 个位置进行修改,每次修改会涉及 B 上 4 个位置的差分修改,因此总共会涉及 16 个差分信息的修改. 回收标记的时候,我们可以先在 A 树上进行 DFS ,回收好子树内的差分信息后,再进行一次 B 的回收,得到当前节点上 B 的真实信息. 时间…
题目 比赛界面. T1 不难想到,对于一个与\(k\)根棍子连接的轨道,我们可以将它拆分成\(k+1\)个点,表示这条轨道不同的\(k+1\)段. 那么,棍子就成为了点与点之间的边.可以发现,按照棍子连边之后,我们一定可以得到一些链.假设每条轨道的最后一段作为链头,查询实际上就是查询所在链的链头. 使用 LCT 或 Splay 维护这些链即可,时间\(O(n\log_2n)\). #include <cstdio> #include <vector> using namespace…