03 2018 档案
摘要:Kosaraju算法也许最容易理解的一个算法是Kosaraju于80年代提出的,它执行两次DFS。第一次DFS得到了关于各个SCC拓扑顺序的有关信息,而第二次DFS按照这个拓扑顺序的逆序进行DFS,从而把每个SCC分开。 算法步骤如下:第一步调用$DFS(G)$,计算出每个结点的$f[u]$或者$p
阅读全文
摘要:题目大意是:在一个牧群中,有N个奶牛,给定M对关系(A,B)表示A仰慕B,而且仰慕关系有传递性,问被所有奶牛(除了自己)仰慕的奶牛个数 因为仰慕关系具有传递性,因此在一个强连通分量中,每个奶牛都被分量中的其他奶牛膜拜,而且也膜拜着分量中的其他奶牛,这种互相膜拜的场景在现实生活中也是经常存在的,因此,
阅读全文
摘要:首先,你必须先上维基百科了解一些基本知识: ~~ "link_wiki" ~~ 以上的这些你都没有必要了解,2333。 下面就跟着Douglas一起走进神奇的C++的语言基础课堂。 你将会用大约3天基本入门C++。 准备工作: 1. 在 "luogu.org" 注册一个账号 2. 按照说明,安装好编
阅读全文
摘要:10.1.1 欧几里德算法和唯一分解定理 除法表达式。给出一个这样的除法表达式:$X_1/X_2/X_3 / …/ X_k$,其中$X_i$是正整数。除法表达式应当按照从左到右的顺序求和,例如,表达式$1/2/1/2$的值为$1/4$。但可以在表达式中嵌入括号以改变计算顺序,例如,表达式$\frac
阅读全文
摘要:C++STL sort sort( begin, end, cmp),将begin end 按照cmp规则排列 lower_bound lower_bound(begin, end, a),在begin end的序列中查找第一个大于等于a的位置。 vector vector不定长数组,有以下的几种用
阅读全文
摘要:快速读入模板 为什么要用快速读入?因为快速度有以下几个优点: 1. 快速读入效率高。 2. 快速读入使用方便,因为你可直接在函数定义时就对其输入,使程序可读性更强。 3. 写成模板函数后更是方便。 以下是代码: ps: 快速读入的效率是cin的50倍,是scanf的2 3倍
阅读全文
摘要:本蒟蒻共发两篇题解都以同样的理由被拒绝了 \_ //神奇头文件不用解释 define INF 10234567 using namespace std; //额……@_@ int main() //不用递归 { int n,s[1001],ans=0,max= INF; //n表示输入有n个正整数,
阅读全文
摘要:本蒟蒻第二次发题解,要认真写(怕被拒) 本蒟蒻在刚开始做这题时第一反应就是递归,题目不难,但我提交了n次才过。 下面粘代码,我的代码冗长,但思路非常明确。 cpp include//看到大佬们都不推荐使用,但我还是会使用,因为到目前为止我还没有遇到一个与它有关的问题 using namespace
阅读全文
摘要:这一道题目的解法多种多样,但就对于题目本身而言拿暴力分应该不是太难,简单地模拟一下斐波拉契的过程,求出第n个,最后分解质因数也不难暴力出奇迹。对于代码的实现我只花了几分钟,一次就AC ^\_^ cpp include define max 2147483648 //2^31次方的值,拿计算器算的 u
阅读全文
摘要:这可能是CCF的NOIP普及组历年来最简单的一道题了,考试时看到这题直接晕倒,这题是不是有坑?这么简单?没错,还真就这么简单,专门来考验你是否会编程。但CCF出来的成绩却令我非常意外,60分!!谷测满分,CCF60分!!看到之后我就愤怒了,接下来我来总(pan)结(dian)当年那些神错法。 30分
阅读全文
摘要:首先,我确定我的不是最优解,但最好写。看到楼上DALAO用记忆化搜索和状压DP本蒟蒻感到瑟瑟发抖,这好似是一个简单的DFS问题,乍一看数据我稍有担忧,但是洛谷有全宇宙最快的评测机我就放心提交了。(第9个点400ms)详情看代码。
阅读全文
摘要:蒟蒻对这题的思路很简单,懒得想太多复杂的细节,先打一个O(n)的暴力算法,再一次像下方粘的代码这样输出 cpp freopen("DABIAO.ans","w",stdout); bool a[10010000]; cout using namespace std; int a[101010000]
阅读全文
摘要:这是一道SPOJ的试机题,题目简单,但是还是不像A+B problem那样简单。 解题思路:(For 像我这样的新手们的)边读入边输出,这个程序在你的电脑上可能会得到很奇怪的答案,但是这在算法竞赛中是可以的。对于42以后的甚至可以不用读入了。 cpp include using namespace
阅读全文
摘要:用DFS求联通块 【分析】图也可以有dfs,bfs遍历。由于dfs更容易编写,一般用dfs找联通块:从每个'@'格子出发,递归遍历它周围的'@'格子每一次访问到一个就给它写上“联通分量编号”即下面的idx数组。这样就可以在访问之前知道是否已经被访问过,从而避免一个格子被访问多次。 cpp inclu
阅读全文
摘要:这绝对是一道小学奥数神题。。。蒟蒻的我竟然花了20秒写这题。。。我也不知道为什么是一道黄题。。。 主要思路 许多项都抵消了,只剩下a$_n$ a$_1$。于是就有了下面这段代码。
阅读全文
摘要:本题的关键是,如何判断一个双引号是左双引号还是右双引号。 方法一:使用“fgetc(fin)”它读取一个打开的文件fin读取一个字符,然后返回一个int值。 如果把fgetc(fin)的返回值强制转换为char,将无法把特殊的EOF和普通字符区分开。如果要从标准输入读取一个字符,可以用getchar
阅读全文
摘要:这应该是一道atcoder的试机题,具体的历史故事我不清楚(看原题翻译好像是什么大赛,了解后我会补充的),只是知道这题水得应该没人会看题解。 cpp include // define BL 暴力 using namespace std; int a[10010][10010],se[10010],
阅读全文
摘要:这不仅是Douglas的博客也可以是广大~~初学者~~交流学习的地方。因为这里可是水题大军,但也不乏一些紫题,蓝题……。 很抱歉,这个博客已经停用,已经转移到 "MicDZ's blog"
阅读全文
摘要:数据小,这道题可以用暴力的算法,也可以用更加高级一点的素数筛法 暴力做法已经有了,线性筛的算法有了,这里给出一个简单一点的但比暴力算法快一点的算法: cpp include using namespace std; bool a[10000010];//合数表 int main() { long l
阅读全文

浙公网安备 33010602011771号