随笔分类 - AAA模版
摘要:Description 如果无向图G每对顶点v和w都有从v到w的路径,那么称无向图G是连通的。现在给定一张无向图,判断它是否是连通的。 Input 第一行有2个整数n和m(0 < n,m < 1000000), 接下来m行每行有2个整数u,v (1<=u,v<=n)表示u和v有边连接。 Output
阅读全文
摘要:今天要介绍一下母函数,定义为: 生成函数即母函数,是组合数学中尤其是计数方面的一个重要理论和工具。生成函数有普通型生成函数和指数型生成函数两种,其中普通型用的比较多。形式上说,普通型生成函数用于解决多重集的组合问题,而指数型母函数用于解决多重集的排列问题。母函数还可以解决递归数列的通项问题(例如使用
阅读全文
摘要:拓扑排序(Topological sort) 拓扑排序是对有向无环图(DAG)顶点的一种排序,它使得如果存在u, v的有向路径,那么满足序中u在v前.拓扑排序就是由一种偏序(partical order)得到的一个全序(称为拓扑有序).偏序满足自反性,反对称性,传递性的序. 拓扑排序的思路很简单,就
阅读全文
摘要:转自:http://janfan.cn/chinese/2015/01/21/dynamic-programming.html动态规划(Dynamic Programming,以下简称dp)是算法设计学习中的一道槛,适用范围广,但不易掌握。笔者也是一直不能很好地掌握dp的法门,于是这个寒假我系统地按
阅读全文
摘要:数根就是不断地求这个数的各位数之和,直到求到个位数为止。所以数根一定和该数模9同余,但是数根又是大于零小于10的,所以数根模9的余数就是它本身,也就是说该数模9之后余数就是数根。 证明: 假设有一个n位的10进制数,我们写成,其中表示从低到高的每一位因为 那么 也就是一个数和它的各数位之和的模9相同
阅读全文
摘要:《挑战程序设计竞赛》里面介绍了三种方法: Bellman-Ford、Dijkstra and Floyd 三者区别也都很明显: Bellman-Ford: 求单源最短路,可以判断有无负权回路(若有,则不存在最短路), 时效性较好,时间复杂度O(VE)。 Bellman-Ford算法是求解单源最短路径
阅读全文
摘要:原文转自Jelline blog http://blog.chinaunix.net/uid-9112803-id-411340.html 摘要: 本文用另一种思路重新组织《图论及其应用》相关知识。首先,用通俗化语言阐述了如何对事物间联系的问题进行图论建模;接着从现实例子出发,给出 各种典型图论模型
阅读全文
摘要:【string print format】sprintf指的是字符串格式化命令。 【主要功能】是把格式化的数据写入某个字符串中。 sprintf是个变参函数。 使用sprintf对于写入buffer的字符数是没有限制的,这就存在buffer溢出的可能性。【所以buffer数组一般要开的大一些】 【头
阅读全文
摘要:一维差值维护是一种简单的小算法,该算法用一个巧妙地数列机制解决了多次对数列进行数据加减操作的复杂度,这个算法的思维偏向于动态规范。下面我们从一个问题开始入手介绍这个算法: 问题描述: 已知n个数的数列a,有m次操作,每次操作给定l,r,k三个数,使得al到ar内所有数加上k。注意l到r的区间包含al
阅读全文
摘要:今天做牛客网西南民大的题遇到了二维前缀和的题目,是个比较经典出过很多次的题目了, 看来光掌握一维前缀和还是远远不够的,二维前缀和也必须很熟练。 前缀和 前缀和可以理解为数学上的数列的前n项和(对于一个一维数组的前缀和)。 我们定义一个数组a的前缀和数组sum[i]=a[1]+a[2]+...+a[i
阅读全文
摘要:看到双端队列(deque)了,书上是这样说的:除了栈和队列外还有一种限定性数据结构是双端队列;双端队列是限定插入和删除操作在表的两端进行的线性表;尽管双端队列看起来似乎比栈和队列更灵活,但实际上在应用程序中远不及栈和队列有用,故在此不作详细讨论。于是乎就跳了过去讲链队列和循环队列去了,我想反正是复习
阅读全文
摘要:【唯一分解定理】:https://www.cnblogs.com/mjtcn/p/6743624.html 假设x是一个正整数,它的值不超过65535(即1<x<=65535),请编写一个程序,将x分解为若干个素数的乘积。 Input 输入的第一行含一个正整数k (1<=k<=10),表示测试例的个
阅读全文
摘要:能被2、3、4、5、6、7、8、9 等数整除的数的特征 性质1:如果数a、b都能被c整除,那么它们的和(a+b)或差(a-b)也能被c整除。 性质2:几个数相乘,如果其中有一个因数能被某一个数整除,那么它们的积也能被这个数整除。 能被2整除的数,个位上的数能被2整除(偶数都能被2整除),那么这个数能
阅读全文
摘要:http://www.cppblog.com/MatoNo1/archive/2012/09/23/191708.html ——————————————————————————————————————————————————— 普通DFS(不加迭代)的优化方法主要有:(1)可行性剪枝,如果遇到已经无
阅读全文
摘要:题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。 接下来M行每行包含一个不小于1且不大于N的整数,即询问该数是否为质数。 输出格式: 输出包含M行,每行为Yes或N
阅读全文
摘要:如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 输出该小根堆内的最小数 操作3: 3 删除该小根堆内的最小数 输入输出格式 输入格式: 第一行包含一个整数N,表示操作的个数 接下来N行,每行包含1个或2个正整数,表示三种操作,格式如下: 操作1:
阅读全文
摘要:http://noi.openjudge.cn/ch0105/40/ 40:数1的个数-拓展变形 40:数1的个数-拓展变形 查看 提交 统计 提问 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB描述 给定一个十进制正整数n,写下从1到n的所有整数,然后数一下其中出现
阅读全文
摘要:树的BFS不需要判重,因为根本不会重复;但对于图来说,如果不判重,时间和空间都将产生极大的浪费。 双向BFS的使用要求之一就是知道终止状态 状态空间的一般搜索过程 OPEN表:用于存放刚生成的节点 CLOSE表:用于存放将要扩展或已扩展的节点 竞赛中一般都是限制128M(大约10000000) 多源
阅读全文
摘要:头文件 import java.io.*; import java.math.*; 读入 Scanner cin = Scann(System.in); while(cin.hasNext()) <-> !=EOF n = cin.nextInt(); <-> 读入一个int数 n = cin.ne
阅读全文
摘要:问题描述 一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= N。比如,对于序列(
阅读全文

浙公网安备 33010602011771号