![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
其他
大贝贝壳
这个作者很懒,什么都没留下…
展开
-
数学
数论因数倍数 欧几里得算法 扩展欧几里得算法同余唯一分解定理一个质数可以被唯一分解为若干质数幂次乘积的形式。常见表达形式:n =p1k1∗p2k2∗..∗pmkm{p_1}^{k_1}*{p_2}^{k_2 }∗ .. ∗ {p_m}^{k_m}p1k1∗p2k2∗..∗pmkm调和级数1+12+13+⋅⋅+1n≈log(n)1+\frac{1}{2}+\frac{1...原创 2018-10-02 11:11:16 · 3397 阅读 · 0 评论 -
树状数组
当我们知道sum(1,8)和sum(1,4)的时候就能算出sum(5,8),所以sum(5,8)不用算,由此类推可以得到C数组sum(x)=sum(1,x)sum(5)=c(5)+c(4)101–5100–4000–0sum(7)=c(7)+c(6)+c(4)111–7110–6100–4000–0int lowbit(int x){return x & -x...原创 2018-11-20 23:08:06 · 109 阅读 · 0 评论 -
保卫王国
看到“单组询问且没有额外限制”,那么就可以发现用一个树形dp来解决,设dp[u][0/1]表示 u这个子 树,u这个点选或者不选的最小代价。转移的时候考虑u这个点选或者不选,以及儿子选或者不选即可。这个时间复杂度是o(nm)只有44分68分的算法,就是在44分的算法上可以加一个特判,当情况等于A,,这个时候我们可以用线段树来解决,对每个区间 [l,r],维护l这个点选或者不 选,r这个点...原创 2018-11-18 21:21:32 · 354 阅读 · 0 评论 -
填数游戏
可以通过找规律做出这题。若令g(n,m)表示答案,可以发现当m>n时,g(n,m+1)=3g(n,m),所以只需要求出g(n,n)和g(n,n+1)的答案。这个规律怎么找出来呢???(把g(n,m)列出来10个左右,根据前5个就可以推出答案,剩余5个验算,基本上所有的找规律题都可以用这个法子)#include<bits/stdc++.h>using namespac...原创 2018-11-18 20:32:44 · 1644 阅读 · 0 评论 -
旅行
除了起点外,恰好访问了n-1个新的点,也就是整个过程只会经过n-1条边那经过的边就形成了一棵生成树。若原图就是一棵树,我们考虑如何计算最优字典序。我们选择以1号点为起点。可以发现题目中的限制等 价于对原图的一次dfs,形成的序列就是dfs序。所以我们只需要确定访问孩子的顺序使得dfs序字典序最小,只需要按照编号从小到大访问孩子。#include<bits/stdc++.h>...原创 2018-11-18 20:12:58 · 173 阅读 · 0 评论 -
货币系统
一个系统中如果有相同的面额显然是不划算的,因此可以用一个面额集合S来描述这个系统,并把a中重复的数 删除。假设给定的系统为集合 A。简化操作就是一种面额ai如果能被其他的面额表示,就把这个ai删去。简化操作 只会产生等价,且这种操作不会无限进行下去。把不能进行简化操作的系统叫做最简系统。#include<bits/stdc++.h>#define ll long long...原创 2018-11-15 22:34:17 · 946 阅读 · 0 评论 -
铺设道路
首先观察到操作结果与次序无关,并假设操作(l+1,l)等同于不进行任何操作。如果原序列中出现了0,任何操作都不能经过这个位置,它的左边和右边就相互独立了,可以分开考虑。其实这题可以笛卡尔优化递归求解过程形成的树就是原序列的 笛卡尔树 ,利用构造笛卡尔树的线性做法,可以把这题优化到O(n)。 (其实不用也可以,n只有10510^5105#include<bits/stdc++.h&...原创 2018-11-15 22:27:10 · 981 阅读 · 0 评论 -
赛道修建
看到“最小值最大”首先可以先二分答案ans,问题就变成为、判断能否选择m条长度至少是ans的链。考虑以x为根的子树,最优解中有一些链完全在子树内部,还可能有一条链经过x并向子树外扩展。可以证明一定存在一个最优解使得完全在子树内部的链尽可能多,否则可以调整子树内部的方案,不会使答案变差。而如果有两种方案使得子树内部的链一样多,我们肯定尽量使剩下可以往上扩展的链尽可能长(如果没有就是0)...原创 2018-11-15 22:04:27 · 620 阅读 · 0 评论 -
龙虎斗
这题n的范围只有10510^5105,所以暴力枚举p2p_2p2是不会超时的,主代码就是if(abs(A+(long long)(m-i)*y-B)<sum) sum=abs(A+(long long)(m-i)*y-B),ans=i;if(abs(B+(long long)(i-m)*y-A)<sum) sum=abs(B...原创 2018-11-15 21:03:07 · 1294 阅读 · 0 评论 -
标题统计
读入的话我用的是getchar,这里不能用string读入,应为string是以空格为分界线单词#include<bits/stdc++.h>using namespace std;int main(){ //freopen("title.in","r",stdin); //freopen("title.out","w",stdout); string s; int ...原创 2018-11-15 20:54:37 · 2586 阅读 · 0 评论 -
对称二叉树
设节点u的左右儿子分别为lsonulson_ulsonu和rsonurson_ursonu 。对于以u为根的一棵子树,如果它是对称的那么必须满足lsonulson_ulsonu和rsonurson_ursonu 是对称的,这一点非常肯定,如果他不是对称的,这棵子树就不是对称的他的儿子,儿子的儿子…也要满足性质1我们可以对于每个节点暴力 判断是否满足条件。可以加上一些判...原创 2018-11-13 22:11:39 · 149 阅读 · 0 评论 -
摆渡车
可以设dp[i]表示从第i个人的时间点发一班车,前面i个人的最小等待时间但在这之前需要把t[i]排序,应为题目中并没有说输入一定是递增的(第一次死在了这里然后枚举k和i,dp[i] = min(dp[k] + cost(k,i),dp[i])可以这么想想吧,在前k个时间的时候已经开出了x次(x不重要,然后我们可以满足在k点发一班车,这是就要计算赶不上这班车等着下一班车的人的所有等待时间...原创 2018-11-13 21:32:29 · 634 阅读 · 0 评论 -
《学chen_zhe叫》
我们一起学chen_zhe一起QAQAQchen_zhe面前撒个娇哎呦QAQAQ看见chen_zhe哇哇叫迷恋chen_zhe的坏笑我看见chen_zhe就要QAQ每天都需要你QAQ珍惜QAQ的每分每秒chen_zhe有多重要我想在座的都知道chen_zhe是洛谷男一号有时候chen_zhe像一只猫AK比赛无聊来撒撒娇chen_zhe是温柔的能把我的心融化掉我想要听...原创 2019-05-21 21:45:36 · 2585 阅读 · 7 评论 -
B. Vova and Trophies
题意自己总结了一下就是给一串只含有 G 和 S 的字符串,有一次将两个字符对调位置的机会,求最长的连续 ‘G‘ 序列的长度。当时做题的时候交了两发才过,哎,还是太弱了,要自闭了。嘤嘤嘤;一开始用了二分搜索,debug到爆炸。其实就是一个贪心:记录中间 ‘S’ 前面的 ‘G’的长度 和 后面 ‘G‘ 的长度,作和。取最大值 maxlen。最后答案和 总的‘G’数量 snt 进行一下比较,如...原创 2018-11-29 21:15:50 · 314 阅读 · 0 评论