loj553 「LibreOJ Round #8」MINIM】的更多相关文章

最简单的暴力dp就是f[i][j]表示到i异或和为j的最小花费. 然后我们发现两堆大小为i,j的石子合并,可以更新到一堆大小为k=i,j最高公共的1以下都是1,以上是i|j,权值为v1+v2的石子. 我们可以打表发现这个段数其实很小,其实也可以严谨的证明或者感性理解,但是我不会.. 所以我们记录当前的所有f值以及端点然后暴力转移就可以了. #include <cstdio> #include <cstring> #include <iostream> #include…
#547. 「LibreOJ β Round #7」匹配字符串   题目描述 对于一个 01 串(即由字符 0 和 1 组成的字符串)sss,我们称 sss 合法,当且仅当串 sss 的任意一个长度为 mmm 的子串 s′s's​′​​,不为全 1 串. 请求出所有长度为 nnn 的 01 串中,有多少合法的串,答案对 655376553765537 取模. 输入格式 输入共一行,包含两个正整数 n,mn,mn,m. 输出格式 输出共一行,表示所求的和对 655376553765537 取模的结…
[LOJ#531]「LibreOJ β Round #5」游戏 试题描述 LCR 三分钟就解决了问题,她自信地输入了结果-- > -- 正在检查程序 -- > -- 检查通过,正在评估智商 -- > 对不起,您解决问题的速度过快,与加密者的智商不符.转入精确匹配. > 由于您在模糊匹配阶段的智商差距过大,需要进行精确匹配. LCR 发现,精确匹配是通过与随机对手(称为「神犇」)游戏的方式,藉由游戏的决策来评定智商的机制.游戏规则如下: 有一个长为 \(n\),下标为 \([1,n]…
[LOJ#530]「LibreOJ β Round #5」最小倍数 试题描述 第二天,LCR 终于启动了备份存储器,准备上传数据时,却没有找到熟悉的文件资源,取而代之的是而屏幕上显示的一段话: 您的文件存在被盗风险,为安全起见,您需要通过「智商·身份验证 ver. 5.0 β 版」的验证,以证明您是资料的主人.请写一个程序解决下述问题: 给定 \(p\),求最小的正整数 \(n\),使得 \(n! mod p = 0\). 由于 \(p\) 很大,输入将给出 \(m\) 和 \(e_1, e_2…
[LOJ#516]「LibreOJ β Round #2」DP 一般看规律 试题描述 给定一个长度为 \(n\) 的序列 \(a\),一共有 \(m\) 个操作. 每次操作的内容为:给定 \(x,y\),序列中所有 \(x\) 会变成 \(y\). 同时我们有一份代码: int ans = 2147483647; for (int i = 1; i <= n; i++) { for (int j = i + 1; j <= n; j++) { if (a[i] == a[j]) ans = s…
[LOJ#515]「LibreOJ β Round #2」贪心只能过样例 试题描述 一共有 \(n\) 个数,第 \(i\) 个数 \(x_i\) 可以取 \([a_i , b_i]\) 中任意值. 设 \(S=\sum{x_i^2}​​\) ,求 \(S\) 种类数. 输入 第一行一个数 \(n\). 然后 \(n\) 行,每行两个数表示 \(a_i, b_i\). 输出 输出一行一个数表示答案. 输入示例 5 1 2 2 3 3 4 4 5 5 6 输出示例 26 数据规模及约定 \(1 \…
[LOJ#525]「LibreOJ β Round #4」多项式 试题描述 给定一个正整数 k,你需要寻找一个系数均为 0 到 k−1 之间的非零多项式 f(x),满足对于任意整数 x 均有 f(x) mod k=0.你给出的多项式次数不能超过 60000,且最高次系数必须非 0. 输入 输入一行,包含一个正整数 k. 输出 若无解,则只输出一个整数 −1.否则首先输出一个整数 n 表示你寻找的多项式的次数,随后 n+1 个整数按照从低位到高位的顺序输出多项式的系数. 在此之后的输出将被忽略.…
[LOJ#526]「LibreOJ β Round #4」子集 试题描述 qmqmqm有一个长为 n 的数列 a1,a2,……,an,你需要选择集合{1,2,……,n}的一个子集,使得这个子集中任意两个元素 i,j 均满足条件 gcd(ai,aj)×gcd(ai+1,aj+1)≠1,其中gcd(i,j)表示最大公约数,且这个子集的元素个数是所有满足上述条件的子集中最多的.输出这个子集的元素个数. 输入 输入的第一行包含一个正整数n. 随后n行,每行一个正整数ai. 输出 输出一个整数代表符合条件…
[LOJ#522]「LibreOJ β Round #3」绯色 IOI(危机) 试题描述 IOI 的比赛开始了.Jsp 和 Rlc 坐在一个角落,这时他们听到了一个异样的声音 …… 接着他们发现自己收到了一封电子邮件: 我们在考场上放置了 N 个炸弹.如果建立一个直线坐标系(数轴)的话,第 i 个炸弹的坐标是 Xi​​,爆炸半径是 Ri,当一个炸弹爆炸时,如果另一个炸弹所在位置 Xj​​ 满足: Xi−Ri≤Xj≤Xi+Ri 那么,炸弹 j 也会被引爆. 若 i 和 j 满足上述关系式,称 i …
二次联通门 : LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 /* LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 叫做计算几何 实则毒瘤数据结构 看到xor后 考虑Trie树 Trie树的每一个节点保存的是以当前子树中每个二进制位的个数 给Trie打一个全局xor标记,如果标记这一位是1,就交换它的两个儿子 另外维护一个前缀和 前缀和存的是没sort过的值的和 Trie维护的是sort之后的值 1操作直接在前缀和后加就好…
二次联通门 : LibreOJ #528. 「LibreOJ β Round #4」求和 /* LibreOJ #528. 「LibreOJ β Round #4」求和 题目要求的是有多少对数满足他们的最大公约数的质因子不超过一个 f (x) 表示有多少对数满足最大公约数中含有x^2这个因子 那么f (x) = N / x ^ 2 * M * (x ^ 2) 答案即为所有数字减去不符合要求的数字个数 但是我们发现,可能某对数字的最大公约数含有多个质数平方因子 那么在处理的时候就会重复筛去 这时我…
二次联通门 : LibreOJ #527. 「LibreOJ β Round #4」框架 /* LibreOJ #527. 「LibreOJ β Round #4」框架 %% xxy dalao 对于每一个小方格 统计一下顶边向右延伸出几条边 左边的边向下延伸出几条边 后枚举每个小方格即可 */ #include <cstdio> #include <iostream> ; char Buf[BUF], *buf = Buf; inline void read (int &…
二次联通门 : LibreOJ #526. 「LibreOJ β Round #4」子集 /* LibreOJ #526. 「LibreOJ β Round #4」子集 考虑一下,若两个数奇偶性相同 若同为奇数, 那加1后就是偶数, gcd的乘积就一定不是1 偶数相同 那么我们把原数中的偶数分为一个集合,奇数分为一个集合 把互相之间不符合要求的连边 那么问题就转化为了二分图求最大独立集 */ #include <cstdio> #include <iostream> #includ…
二次联通门 : LibreOJ #525. 「LibreOJ β Round #4」多项式 官方题解 : /* LibreOJ #525. 「LibreOJ β Round #4」多项式 由于会有多种解 所以只需要找出一组特殊解即可 */ #include <cstdio> #include <iostream> void read (int &now) { register char c = getchar (); ; !isdigit (c); c = getchar…
二次联通门 : LibreOJ #524. 「LibreOJ β Round #4」游戏 /* LibreOJ #524. 「LibreOJ β Round #4」游戏 找找规律就会发现.. 当有X的时候,答案跟X个数的奇偶有关 否则就求一下逆序对就好了.. 由于SB的错误..WA了3发才过 然后就签完到走人了 */ #include <cstdio> #include <iostream> #include <cstring> #include <algorit…
二次联通门 : LibreOJ #516. 「LibreOJ β Round #2」DP 一般看规律 /* LibreOJ #516. 「LibreOJ β Round #2」DP 一般看规律 set启发式合并 题目中给定的代码意思求相同的数中间隔最小的值. 那么维护n个set就好 合并时把小的向大的上暴力合并 用了map所以不用离散化 */ #include <iostream> #include <cstdio> #include <set> #include &l…
LOJ528 「LibreOJ β Round #4」求和 先按照最常规的思路推一波: \[\begin{aligned} &\sum_{i=1}^n\sum_{j=1}^m\mu^2(\gcd(i,j))\\ =&\sum_{d=1}^{\min(n,m)}\mu^2(d)\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=d]\\ =&\sum_{d=1}^{\min(n,m)}\mu^2(d)\sum_{t=1}^{\min(n,m)}\mu(t)\lflo…
loj536「LibreOJ Round #6」花札(二分图博弈) loj 题解时间 很明显是二分图博弈. 以某个点为起点,先手必胜的充要条件是起点一定在最大匹配中. 判断方法是看起点到该点的边有流量且该点不在起点割集中. #include<bits/stdc++.h> using namespace std; typedef long long lint; struct pat{int x,y;pat(int x=0,int y=0):x(x),y(y){}bool operator<…
$ \color{#0066ff}{ 题目描述 }$ 「Hanabi, hanabi--」 一听说祭典上没有烟火,Karen 一脸沮丧. 「有的哦-- 虽然比不上大型烟花就是了.」 还好 Shinobu 早有准备,Alice.Ayaya.Karen.Shinobu.Yoko 五人又能继续愉快地玩耍啦! 「噢--!不是有放上天的烟花嘛!」Karen 兴奋地喊道. 「啊等等--」Yoko 惊呼.Karen 手持点燃引信的烟花,「嗯??」 Yoko 最希望见到的是排列优美的烟火,当然不会放过这个机会-…
题目链接 题目描述 「UniversalNO」的规则如下:每张牌有一种颜色和一个点数.两个人轮流出牌,由 Alice 先手,最开始牌堆为空,出的人可以出任意牌(放到牌堆顶),之后出的牌必须和当时牌堆顶的牌的颜色或点数至少有一个相同.有牌可出者必须出,无牌可出者输. Alice 和 Shinobu 玩了几局后觉得原来的规则太依靠运气,于是她们加了一个新玩法:Alice 出了第一张之后,两个人立即交换手里的牌,然后从 Alice 开始继续按原来的规则进行游戏.当然,这次 Alice 出的牌必须和她刚…
这道题好神啊!!! 发现这题就是定义了一种新的卷积,然后做k+1次卷积. 这里我们就考虑构造一个变换T,使得$T(a) \cdot T(b) =T(a∘b)$,这里是让向量右乘这个转移矩阵. 于是我们可以得到 $$\sum_{j=0}^{m-1}{T_{j,i}  \sum{[k ∘ l =j] a_{k} b_{l}}  }   = (\sum_{j=0}^{m-1}{T_{j,i}a_{j}}) \cdot  (\sum_{j=0}^{m-1}{T_{j,i}b_{j}})$$ $$\sum…
一眼二分图博弈,于是我们可以拿到69分的好成绩. 二分图暴力加边的数目是O(n^2)的,于是我们考虑网络流优化建图,将alice的每个牌向其的颜色和编号节点连边,bob的每个牌由其颜色和编号节点向其连边,之后在分别和源汇连边,我们发现我们现在是要找哪些点在所有最大流的方案中都有流量流入,我们发现这样的点在跑完最大流后的残留网络上一定是源点所不能到达的,因为否则我们可以通过把这条路径以及S->i的边取反即可得到反例,所以我们直接跑一遍最大流再在残留网络上bfs一遍即可. #include <cs…
题面 loj #include <cmath> #include <cstring> #include <cstdio> #include <cstdlib> #include <algorithm> #include <complex> #include <ctime> #include <vector> #include <bitset> #define mp(x, y) make_pair(x…
题解: 对于subtask3:可以把相同的归在一起就是$nlogn$的了 对于subtask4: 可以使用高维前缀和的技术,具体的就是把每个质因数看作一维空间 那么时间复杂度是$\sum \limits _{i=1}^{n} {质因数个数}$ 这个东西是$nloglogn$的 对于subtask2:我们可以考虑每个修改对每个操作的贡献 正解的话: 我们考虑那些只有这10个质因数组成的数,$2e5$种 然后我们需要计算的就是包含这个数然后乘上一个小于等于$[n/k]$的不含这10个质因子的数的平方…
题目链接:https://loj.ac/problem/528 题目:给定两个正整数N,M,你需要计算ΣΣu(gcd(i,j))^2 mod 998244353 ,其中i属于[1,N],j属于[1,M] 解题思路: 代码: #include<iostream> #include<cstdio> #include<cmath> using namespace std; typedef long long ll; ; ; ll n,m,mu[maxn],sum[maxn],…
题意 题目链接 分析 记操作异或和为 \(tx\) ,最后一次排序时的异或和为 \(ax\) ,每个数插入时的 \(tx\) 记为 \(b\). 我们发现,一旦数列排序,就会变得容易操作. 对于新加入的数字用一个前缀和数组维护每一位为 1 的个数(每个数保证在 \(xor​\) 当前 \(tx​\) 之后能够得到真实结果).对于进行过排序的数字用 trie 维护(每个数用 \(a_i\ xor\ b_i​\) 表示). 查找 trie 上的数字在 \(xor\ ax\) 排序后的前 \(k\)…
题意 求 \[ \sum_{i = 1}^{n} \sum_{i = 1}^{n} f(\gcd(i, j))^k \pmod {2^{32}} \] 其中 \(f(x)\) 为 \(x\) 的次大质因子,重复的质因子计算多次. 特别的,定义 \(f(1) = 0, f(p) = 0\) ,此处 \(p\) 为质数. 题解 首先先莫比乌斯反演前几步. \[ ans = \sum_{d = 1}^{n} f(d)^k \sum_{i = 1}^{\lfloor \frac{n}{d} \rfloo…
题面 戳这里,题意简单易懂. 题解 首先我们发现,操作是可以不考虑顺序的,因为每次操作会加一个 \(1\) ,每次进位会减少一个 \(1\) ,我们就可以考虑最后 \(1\) 的个数(也就是最后的和),以及成功操作次数,就行了. 然后根据期望的线性性,我们可以从低到高按位考虑贡献. 考虑一个递推:\(f(i, j)\) 表示从后往前第 \(i\) 位总共被改变 \(j\) 次的概率,那么有两种转移: 进位:\(\displaystyle f(i - 1, j) \to f(i, \lfloor…
转化思维的好题! 链接:here 大致题意: 有$ n$个数字,你每次可以交换相邻两个,还有一次交换任意两个元素的机会,求最少的交换次数使得这些数字升序排序(原数列两两不同) $ solotion:$ 首先有一个结论:交换任意两个元素可以选择在第一次交换,且一定不会劣 证明:假设不在第一次交换,可以通过倒推这次交换的贡献,使得这次机会平移到第一次交换,结果不变 第二个结论:交换相邻两个元素的次数等于逆序对数 证明:略 第三个结论:交换两个元素$ x,y$,所能够减少的逆序对数量等价于把每个数$…
一道ZZ结论题,主要是来写一写交互题的. 我们要先知道一句话: 扶着墙是肯定可以走出简单迷宫的. 然后我们冷静分析问题.若这个迷宫是\(n\times m\)的,那么最多有\(2mn+n+m\)个墙壁. 由于题目中提到方格之间都联通且形成一棵树,那么我们删去\(nm-1\)条边. 由于边界其中至多一半会经过一次,其余则不会经过,内部边可能经过两次,因此摸着墙壁前进的步数上限为 \(2(nm+n+m+1)-3(n+m)=2nm-n-m-2\).我们在观察一下数据范围,发现: \(l>2nm\ge…