摘要: 基本算法 快速幂 1 ll ksm(ll a,ll b) 2 { 3 ll ans=1; 4 while(b) 5 { 6 if(b&1) ans=ans*a%p; 7 b>>=1; 8 a=a*a%p; 9 } 10 return ans; 11 } 64位大整数乘法 1 ll mul(ll a, 阅读全文
posted @ 2018-10-13 21:27 cellur925&Chemist 阅读(922) 评论(0) 推荐(2) 编辑
摘要: 从今天到noip 记录下我犯的一切愚蠢错误。 7.17~7.19 把文件 注释掉了,输出语句放在了关文件之后 7.19 判断素数的板子 把%写成了& 7.20 慎用诸如“while(tmp)"的表示! 老老实实写tmp>0 or tmp>1 坠吼了。 7.26 写线段树的时候一定要建树啊! 7.26 阅读全文
posted @ 2018-07-20 09:34 cellur925&Chemist 阅读(276) 评论(0) 推荐(2) 编辑
摘要: 质数 线性筛还是要学的qwq(真香),它的原理是每个合数会被它的最小质因子筛一次,利用了当前已经筛出的质数。复杂度真·O(N) 丢几个例题跑嘤嘤嘤 例题1 LuoguP1865 A%B Problem (本博客开通不久的旧文) 因为数据范围较水,仅1e6,所以我们可以先使用线性筛筛出素数。区间个数用 阅读全文
posted @ 2018-11-08 15:13 cellur925&Chemist 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 都要$NOIp$了为啥我还在看这种玄学玩意..... $01$分数规划:这是一个问题模型$qwq$,一般是在求$$\frac{\sum_{i=1}^{n} a_i x_i}{\sum_{i=1}^{n} b_i x_i}$$ 其中$x_i$为$0$或$1$。 通俗地讲,也就是给定$n$对整数$a_i 阅读全文
posted @ 2018-11-07 15:03 cellur925&Chemist 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给你$n$个点,$m$条边,每条边上有两个权值:一级和二级的。选$n 1$条边使这个图连通,并至少有$k$个一级边,求花费最多的一条边最小值及方案。 最大值最小,肯定会先想到二分,如何判定?其实我们仔细读题,应该发现,他不是一个完整的最小生成树,因为没有要求边权和最小,只是需要借鉴$Kru 阅读全文
posted @ 2018-11-07 08:51 cellur925&Chemist 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给你两列数$ai$和$bi$,你可以交换每列数中相邻的两个数,求一个最小交换次数使$\sum_{i=1}^{n}(a_i b_i)^2$ 最小。 最后满足条件的两个序列一定是各个数在各自序列中排名相等的情况(证明不会)。那么我们可以先把两个数组进行离散化,然后将其中一个数组以另一个数组为基 阅读全文
posted @ 2018-11-06 20:57 cellur925&Chemist 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 题意:给你许多字符串,你可以改变字母序大小,问有哪些字符串可能成为字典序最小的字符串。 我们考虑把这些字符串都塞到$trie$树上。之后检索每一个字符串的时候,我们看和他同一层的地方是否有字符,如果有,我们就从他到同层字符连一条有向边,因为 只有同层字符 妨碍他可能会成为第一。之后进行拓扑排序,检查 阅读全文
posted @ 2018-11-06 19:43 cellur925&Chemist 阅读(325) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-11-06 07:50 cellur925&Chemist 阅读(1) 评论(0) 推荐(0) 编辑
摘要: "题目传送门" 可能是我退役/NOIP前做的最后一道状压... 题目大意:给你$k$个硬币,FJ想按顺序买$n$个物品,但是不能找零,问你最后最多剩下多少钱。 注意到$k include using namespace std; typedef long long ll; int k,n,fake; 阅读全文
posted @ 2018-11-05 08:17 cellur925&Chemist 阅读(286) 评论(0) 推荐(1) 编辑
摘要: ~~听说是你谷史上最水月赛?我不听我最菜~~ T1:终于结束的起点 ~~月天歌名好评~~ 给你一个模数 $M$,请你求出最小的 $n 0$,使得$fib(n)$ $mod$ $m=0$,$fib(n+1)$ $mod$ $m=1$。 数学题,开始还想打表验证下,但是我不会告诉你我打表的时候 没有很及 阅读全文
posted @ 2018-11-04 21:43 cellur925&Chemist 阅读(214) 评论(0) 推荐(0) 编辑
摘要: "题目传送门" 这道题暑假做的时候太模糊了,以前的那篇题解大家就别看了==。今天再复习状压感觉自己当时在写些什么鸭...。 题目大意:给你一个$n$ $m$的棋盘和许多$1 2$的骨牌,骨牌可以竖放或横放,问有多少种方案将骨牌铺满。 设计状态,$f[i][j]$表示当前在第$i$行,之前的所有行都已 阅读全文
posted @ 2018-11-04 17:57 cellur925&Chemist 阅读(277) 评论(0) 推荐(0) 编辑
摘要: "题目传送门" emmm..不开结构体的线段树真香! 首先我们知道“三元上升子序列”的个数就是对于序列中的每个数, 它左边比他小的数 它右边比他大的数 。但是如何快速求出这两个数? 我们用到权值线段树来维护。一般我们的线段树都是以下标延伸的,但是这里我们用的是权值,一般需要离散化,效果相当于一个桶。 阅读全文
posted @ 2018-11-04 08:17 cellur925&Chemist 阅读(322) 评论(0) 推荐(0) 编辑
摘要: "题目传送门" 题目大意:维护一个序列,维护区间加等差数列,单点查询的操作。 首先我们肯定是要用线段树来维护了,按照一般的思维局限,我选择了维护序列中的值,但是区间修改的时候由于公差的存在,所以区间修改有些难搞。后来又想分别维护$k$和$d$,但是最终失败了。 正解十分巧妙,维护的是一个差分序列。如 阅读全文
posted @ 2018-11-03 20:58 cellur925&Chemist 阅读(347) 评论(0) 推荐(0) 编辑
摘要: "题目传送门" ~~今天非常想再看一遍霸王别姬想不进去题于是开始刷数据结构~~ 注意到至多只有$30$种颜色,啊啊啊啊我一开始竟然想的不是状态压缩而是在线段树中存一个30大小的数组,这样每次更新的时候暴力循环一遍。hhhhh。 可能这样比较好想吧,但是比正解状态压缩一下不知道差到哪里去了:)。开始还 阅读全文
posted @ 2018-11-03 19:20 cellur925&Chemist 阅读(372) 评论(0) 推荐(0) 编辑
摘要: "题目传送门" 这道题:真·凉心出题人。 二分答案,个人感觉其实并不只适用于有明显的“最大值最小/最小值最大”条件的题目,其实也可以称它为一种“优化的暴力”。这题就是最好的例子。 我们肯定可以先想出朴素的算法:把每个点的答案都算出,但是平方级别的复杂度,铁定超时。 我们考虑用二分优化。这道题的二分其 阅读全文
posted @ 2018-11-03 17:16 cellur925&Chemist 阅读(320) 评论(0) 推荐(0) 编辑
摘要: "题目传送门" 题目大意:给你一个$n$ $m$的矩阵,每个位置都有一个数,求有多少不同的子矩阵使得矩阵内所有数的和是$k$的倍数。 数据范围给的非常友好233,期望得到的暴力分:75分。前12个点可以用$O(n^4)$算法水过,对于$ include using namespace std; ty 阅读全文
posted @ 2018-11-02 20:34 cellur925&Chemist 阅读(293) 评论(0) 推荐(0) 编辑
摘要: "题目传送门" 这道题开始看起来会很晕...$qwq$。首先我们要明确题目中的海拔&&温度。温度是受海拔影响的,每次改变的是海拔,我们求的是温度。 我们开始读入的时候便可以处理出开始$N$位置的温度以及各个位置的海拔差。每次读入影响的是一段区间,区间内的相对海拔是不变的因此温度也不会变。只有区间的边 阅读全文
posted @ 2018-11-02 17:20 cellur925&Chemist 阅读(484) 评论(0) 推荐(1) 编辑