摘要: [1][1]格子是W,其余都是B即可 题目: nxm的网格,只能是黑白两种颜色,有至少一个相邻格子为白色的黑色数目为B,至少一个相邻格子是黑色的数目是W; 输入n,m。输出一种B = W + 1的涂色方法。 题解: 分类讨论n,m是奇偶的情况即可。 阅读全文
posted @ 2020-04-29 23:12 A_sc 阅读(161) 评论(0) 推荐(0) 编辑
摘要: NTT模板题 阅读全文
posted @ 2020-04-28 10:04 A_sc 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题目: 给一张图,让你找一条1到n的路径,可以重复走边和点,问路径权值异或和最大是多少。 题解: 基本思路就是对每条路径把路径上的环的权值异或和放进线性基,因为环要走就走全部一次,走两次会异或掉。所以我们dfs找环,把环放进一个线性基,最后把1到n的简单路径异或和放进去,如果1到n有多个路径,就有环 阅读全文
posted @ 2020-04-27 23:59 A_sc 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题目: 输入n,k求$\sum_{i = 1}^{n} i^k$ 。 题解: 这个和是k+1次的多项式,我们用k+2个值就可以唯一确定这个多项式,计算f(n)即可 阅读全文
posted @ 2020-04-27 11:48 A_sc 阅读(106) 评论(0) 推荐(0) 编辑
摘要: "学习博客" 拉格朗日插值 $O(n^{2})$ 阅读全文
posted @ 2020-04-26 09:58 A_sc 阅读(319) 评论(0) 推荐(0) 编辑
摘要: FFT(快速傅里叶变化) 可以加速求多项式乘法。 阅读全文
posted @ 2020-04-20 23:14 A_sc 阅读(119) 评论(0) 推荐(0) 编辑
摘要: codeforces 629 F Make k Equal 题意:给n个数,你只能执行2个操作:选择一个最大值 1,选择一个最小值+1。问通过最少多少次操作,才能让数组有大于等于k个相同的数。 题解: 先设最后k个值为x。 这道题最关键的是发现x只能是数组中出现的数,这样o(n)扫描这个数组,计算每 阅读全文
posted @ 2020-04-19 18:38 A_sc 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题意: 给一个以1为根节点树,m次询问,每次选k个节点,问是否存在一个节点u,在1~u的路径上所有这k个点到这条路径的距离都小于等于1。 题解: d[]记录每个点到根节点的距离,这个u一定是k个点中d[]最大的那个点。然后判断其他点满足条件吗。判断方法就是看d[a[i]] d[lca(u, a[i] 阅读全文
posted @ 2020-04-18 15:45 A_sc 阅读(115) 评论(0) 推荐(0) 编辑
摘要: ``` //模板 const int maxbit = 63; //maxbit不能太大 struct L_B{ ll lba[maxbit], p[maxbit]; int cnt; L_B(){ memset(lba, 0, sizeof(lba)); memset(p, 0, sizeof(p)); cnt = 0; } /* bool Insert(ll val){ //插入 for(in 阅读全文
posted @ 2020-04-18 13:39 A_sc 阅读(149) 评论(0) 推荐(0) 编辑
摘要: D.Carousel 题意 :n个数环形排列,让你去染色,唯一的限制是相邻不相同的数要用不同颜色染色。问染色方案。(颜色使用要少) 题解 : 如果不是环形只需要1,2交错排列就可以满足要求,但是环形会出现 a[n]!=a[1]&&res[n]==res[1]这种情况,我们可以令res[n]=3 re 阅读全文
posted @ 2020-04-18 13:38 A_sc 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 题目: 求 $$ ans = \sum_{k=1}^{k include include include using namespace std; typedef long long ll; const int N = 2e5 + 5; int pri[N], cnt; int vis[N]; in 阅读全文
posted @ 2020-04-03 18:53 A_sc 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 题意: 求 x 在[1, n]范围内,y 在[1, m]范围内的满足 gcd(x, y) 为质数的x,y对数。 题解: 前面已经计算了gcd(x,y)=k的数量是 $$ f(k) = \sum_{k|d} \mu(\frac{d}{k}) \lfloor\frac{n}{d}\rfloor \lfl 阅读全文
posted @ 2020-04-03 17:09 A_sc 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 题意: 求 x 在[a, b]范围内,y 在[c, d]范围内的满足 gcd(x, y) = k 的x,y对数。 题解: 这道题是在luogu P3455上的拓展。加一个容斥就好了。如果sol(n,m,k)表示x在[1, n]范围内,y在[1, m]范围内的满足gcd(x, y)=k 的x,y对数. 阅读全文
posted @ 2020-04-03 14:55 A_sc 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 题意: 求 x 在[1, n]范围内,y 在[1, m]范围内的满足 gcd(x, y) = k 的x,y对数。 题解: 与GCD那题稍有不同。首先这道题(x,y)(y,x)认为不同。 这道题要用到一个分块的技巧。 题解博客:https://blog.csdn.net/litble/article/ 阅读全文
posted @ 2020-04-03 14:51 A_sc 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 题意: 求 x 在[1, n]范围内,y 在[1, m]范围内的满足 gcd(x, y) = k 的x,y对数。 题解: 如果f(k) 表示题目范围内gcd(x, y)=k 的对数,但是这个f(k)比较"难求"。我们发现gcd(x,y) %k == 0的x,y对数却很好求。我们先用 F(k) 表示 阅读全文
posted @ 2020-04-03 14:46 A_sc 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 题意: 输入k,输出第K个因子中不含完全平方数的值。k include include include include using namespace std; typedef long long ll; const int N = 4e5 + 5; int pri[N], cnt; int mu[ 阅读全文
posted @ 2020-04-03 14:10 A_sc 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 模板: 阅读全文
posted @ 2020-02-16 22:05 A_sc 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 被3整除的子序列 题目: 给你一个长度为50的数字串,问你有多少个子序列构成的数字可以被3整除 答案对1e9+7取模 题解: 将所有字符转成数字在对3取模,那么序列中只有0,1,2三个数字 如果是子序列,那么 $dp[i][0]$ 表示$1到i$ 中子序列和模3等于0的个数,$dp[i][1]$ 和 阅读全文
posted @ 2020-02-08 11:24 A_sc 阅读(597) 评论(0) 推荐(0) 编辑
摘要: J. u's的影响力 题目: ​ 输入$n,x,y,a,b$ 。输出 $x^{f(n 2)} y^{f(n 1)} a^{[f(n) 1] b}$ .其他f(i)表示Fibonacci数值 题解: 通过观察前几项得到上面的公式。利用矩阵快速幂可以计算很大的Fibonacci数,然后用快速幂求结果。 阅读全文
posted @ 2020-02-07 22:55 A_sc 阅读(240) 评论(0) 推荐(0) 编辑
摘要: Treap/平衡二叉树 蓝书习题:普通平衡树 这道题是一道平衡树模板题,可以用多种解法,这里用最简单的Treap,下面简单说一下各种操作的思路 添加 : 当要添加一个值时,先判断所要加入的以p为根节点的子树是否为空,为空添加新的节点:New(val)。 当然平衡树,当加入新节点后,子节点dat变得大 阅读全文
posted @ 2020-01-30 23:32 A_sc 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 0x21 树与图的遍历 1.树的深度遍历 2.时间戳 3.树的DFS序 4.树的深度 5.找树的重心· 6.图的连通块划分 阅读全文
posted @ 2020-01-29 21:22 A_sc 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 0x44 分块 1. 介绍 ​ 分块的基本思想就是通过适当的划分,预处理一部分信息并保存下来,用空间换取时间。总之就是一种“优雅” 的暴力,遵循“大段维护,局部朴素”的思想。 2. 总结 1. 划分区块 t 为区块个数,len为区块长度,一般为n/t,有时候根据复杂度调整。 3. "磁力距" 一开始 阅读全文
posted @ 2020-01-29 16:48 A_sc 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 对扫描线步骤的理解: 1:首先要保存所有的边,并按照x值从小到大排序,如果是左边,标记为1,如果是右边,标记为 1。 struct line { double from,to,x;//边起点y坐标,终点y坐标,x坐标 int flag; //左右边标记 } 2:扫描线从左往右扫描,每遇到一条边就停下 阅读全文
posted @ 2020-01-21 22:36 A_sc 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 603(div 2) E .Editor 题意: 输入一串字符串,由 , , ,`R` 和其他字符组成。 分析: 首先要知道这几点,( 一 )对于括号匹配问题我们一般让左括号表示$+1$ ,右括号表示$ 1$ 。这样如果前缀和为0表示左右括号都合理的匹配了。( 二 ) 跟据题意最后左右括号的最大嵌套 阅读全文
posted @ 2020-01-13 22:13 A_sc 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 613 (div2) B. Just Eat It! 题意:一段数字序列,如果存在一个不包括所有值的连续区间的和大于等于序列所有值的和,输出 , 否则输出 在 。 分析: 最大连续子区间解法:$dp[i]=max(dp[i 1],0)+a[i]$ 。 如何不让包括所有值呢?只需要$[1,n 1]$ 阅读全文
posted @ 2020-01-11 09:47 A_sc 阅读(121) 评论(0) 推荐(0) 编辑
摘要: Educational Codeforces Round 77 C.Infinite Fence 题意:现有 $ 10^{100}$ 块木板需要涂漆,第 $x$ 块如果 $x$ 是 $r$ 的倍数,则涂上红色,是 $b$ 的倍数,则涂蓝色。如果既是 $r$ 又是 $b$ 的倍数,那么两种颜色都可以涂 阅读全文
posted @ 2020-01-09 17:13 A_sc 阅读(101) 评论(0) 推荐(0) 编辑
摘要: Hello 2020 B New Year and Ascent Sequence 题意:一个数字序列 S 中如果存在$S_{i} using namespace std; typedef long long ll; const int MA=1e6+15; const int MB=1e5+5; 阅读全文
posted @ 2020-01-07 09:16 A_sc 阅读(132) 评论(0) 推荐(0) 编辑
摘要: Codeforces Round 601 (Div. 2) C League of Leesins 题意:有一个由数字1~n构成的序列,现在给你这个序列所有相邻3个数的值,他们不一定按顺序。现在要根据这些值输出原序列。有多解输出其中一个。如,具体见下图样例。 分析: 简单想一想就可以发现如果你知道a 阅读全文
posted @ 2020-01-01 09:57 A_sc 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出三个序列的值( 1到 n),移动三个序列中的一些值,使得第一个序列是1 ~ n的一个前缀,第三个序列为1~ 2的一个后缀,第二个序列是其他的值。问移动次数的最小值。 分析: 先放个例子。 我们试着写出每个值所属的序列:13123 (这就是1,2,3,4,5每个值所在的组)。 问题就转变为 阅读全文
posted @ 2019-11-16 19:38 A_sc 阅读(95) 评论(0) 推荐(0) 编辑
摘要: D. Yet Another Monster Killing Problem 题意: 有m个怪兽,power为a[i] ,有n个hero,他们都有自己的power和每天最多能处理的怪物数s[i] , 在每个英雄都可以使用多次的条件下问处理完这些怪兽最少需要多少天。m个怪兽只能按顺序处理,一天之能派出 阅读全文
posted @ 2019-11-15 18:03 A_sc 阅读(137) 评论(0) 推荐(0) 编辑