acm/算法
文章平均质量分 61
Geecky
If you want to do it, you can do it.
展开
-
ACM的那些故事
我的ACM参赛故事 作者:PHPPLAY 来自豆瓣转载 2016-06-14 19:34:44 · 8518 阅读 · 0 评论 -
素数筛选
#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MaxSize 100#define inf 0x3f3f3f3fint main(){ int prime[MaxSize]; memset原创 2016-08-16 10:24:59 · 396 阅读 · 0 评论 -
位运算状态压缩
位运算状态压缩:用法:有几把钥匙就用几个二进制位来表示,对于每一把钥匙如果手里有就用1来表示,没有就用0表示。比如题中一共有4把钥匙,现在我们手里有1、3把钥匙,于是现在的钥匙状态就是1010。1、判断是否有第n把钥匙假如现在钥匙状态是1101,询问是否有第2把钥匙。做法:首先12、判断现有钥匙是否能开锁假如现在钥匙有三把,为1101,要开两把锁,为原创 2016-08-15 15:11:16 · 1336 阅读 · 0 评论 -
快速幂取模及其应用
快速幂取模用法:用于求解 a 的 b 次方,而b是一个非常大的数,用O(n)的复杂度会超时。那么就需要这个算法,注意它不但可以对数求次幂,而且可用于矩阵快速幂。假如求 x ^ n 次方我们可以把 n 表示为 2^k1 + 2k2 + 2^k3....,可以证明所有数都可以用前式来表示。(其实就是二进制表示数的原理)那转载 2016-08-15 11:24:00 · 631 阅读 · 0 评论 -
奇技淫巧之节省输入输出时间
int Scan(){ int res = 0, flag = 0; char ch; if((ch = getchar()) == '-') flag = 1; else if(ch >= '0' && ch <= '9') res = ch - '0'; while((ch = getchar()) >= '0' && ch <= '9')原创 2016-08-15 10:13:12 · 390 阅读 · 0 评论 -
从while(scanf() != EOF)说到ACM OnlineJuge的评判原理
前言之前在做课程设计时, 无意间想起了以前做ACM题常用的一行语句:[cpp] view plain copy while(scanf("%d", &a) != EOF) 忽然间对这句话作用产生了好奇,想了半天终于有了一点结果。1. EOF是什么东东?EOF是一个宏,许多函数(包括sc转载 2016-07-29 16:36:47 · 3540 阅读 · 0 评论 -
LCS标准代码
Inputabcfbc abfcabprogramming contest abcd mnpOutput420代码:#include#include#include#include#include#include#include#include#include#includeusing namespace st原创 2016-08-20 11:32:02 · 743 阅读 · 0 评论 -
【待重置】dp专题
1.反向dpPOJ 3628DescriptionFarmer John recently bought another bookshelf for the cow library, but the shelf is getting filled up quite quickly, and now the only available space is at t原创 2016-04-19 21:30:57 · 909 阅读 · 0 评论 -
线段树专题
1、对点操作->查询区间DescriptionLily 特别喜欢养花,但是由于她的花特别多,所以照料这些花就变得不太容易。她把她的花依次排成一行,每盆花都有一个美观值。如果Lily把某盆花照料的好的话,这盆花的美观值就会上升,如果照料的不好的话,这盆花的美观值就会下降。有时,Lily想知道某段连续的花的美观值之和是多少,但是,Lily的算术不是很好,你能快速地告诉她结果吗?Inp...原创 2016-04-28 19:04:25 · 1281 阅读 · 0 评论 -
DFS专题
D - 连连看Time Limit:10000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit Status Practice HDU 1175Description“连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋原创 2016-07-27 17:26:30 · 704 阅读 · 0 评论 -
BFS专题
C - NightmareTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit Status Practice HDU 1072DescriptionIgnatius had a nightmare last night. He found h原创 2016-07-10 22:27:13 · 1293 阅读 · 0 评论 -
BFS算法介绍
定义:广度优先算法(Breadth-First-Search),简称BFS,是一种图形搜索演算法。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点,如果发现目标,则演算终止。算法分析:BFS是一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。时间复杂度:O(|V| +原创 2016-07-08 19:44:37 · 10580 阅读 · 3 评论 -
最短路算法理解
多源最短路:核心代码:for(int p=1; p<=n; p++) for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) dis[i][j] = min(dis[i][p]+dis[p][j], dis[i][j]);理解:此代码是由子问题——“特定点i到特定点j的最短路”扩展成“任意两点间的最短路”问题的原创 2017-02-27 19:09:15 · 665 阅读 · 0 评论 -
快速幂取模
原理:相当于还是用了状态压缩。B - A hard puzzleTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionlcy gives a hard puzzle to feng5原创 2016-08-17 15:18:25 · 323 阅读 · 0 评论 -
矩阵法求第n个斐波拉契数
矩阵(matrix)定义一个m*n的矩阵是一个由m行n列元素排成的矩形阵列。矩阵里的元素可以是数字符号或者数学式.形如{acbd}的数表称为二阶矩阵,它由二行二列组成,其中a,b,c,d称为这个矩阵的元素。形如 {x1x2}的有序对称为列向量Column vector设A={acbd}X={x1转载 2017-03-24 16:47:06 · 1155 阅读 · 0 评论 -
拓扑法判断有向图回路
操作思想就是不停删除图里面入度为0的点,删到最后如果还有点,那么就有回路;反之,则无回路。当然,删出度为0的点也是一样的,就相当于是把图所有边反向,并不会影响图的回路性质。代码:#include#include#include#include#include#include#include#include#include#includeusing namespa原创 2016-08-20 10:47:11 · 1003 阅读 · 0 评论 -
Nim问题讲解
Nim游戏的形象具体论述:Nim取子游戏是由两个人面对若干堆硬币(或石子)进行的游戏。设有k>=1堆硬币,各堆分别含有N1,N2,……NK枚硬币。游戏的目的就是选择最后剩下的硬币。游戏法则如下:1.两个游戏人交替进行游戏(游戏人I和游戏人II);2.当轮到每个游戏人取子时,选择这些堆中的一堆,并从所选的堆中取走至少一枚硬币(游戏人可以取走他所选堆中的全部硬币);3.转载 2016-08-21 15:21:49 · 1516 阅读 · 0 评论 -
ACM学习博客
http://blog.csdn.net/urecvbnkuhBH_54245df/article/list/2原创 2016-07-05 18:26:34 · 405 阅读 · 0 评论 -
滚动数组
滚动数组的作用在于优化空间,主要应用在递推或动态规划中(如01背包问题)。因为DP题目是一个自底向上的扩展过程,我们常常需要用到的是连续的解,前面的解往往可以舍去。所以用滚动数组优化是很有效的。利用滚动数组的话在N很大的情况下可以达到压缩存储的作用。一个简单的例子:斐波那契数列:一般代码:[cpp] view plain copy翻译 2016-07-25 16:58:01 · 372 阅读 · 0 评论 -
P/NP/NPC问题
什么是P问题、NP问题和NPC问题 这或许是众多OIer最大的误区之一。 你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已经被澄清了。下转载 2016-07-25 15:32:38 · 520 阅读 · 0 评论 -
背包慢慢讲
原始背包问题:有n件物品,每一个物品的体积是c[i],价值是v[i],有一个背包最大容量为sum。现在在这n个物品里面任意选物品放入背包,使得背包里面物品的总价值最高。思路:现在我们把这n个物品一字排开,我们拖着个容量为v的背包从头走到尾去收物品。每走到一个物品面前我们就要想到底要不要这个物品。显然,我们的选择就只有两个:要或是不要。那我们怎么知道要不要呢?显然,我们就要比较这原创 2016-07-19 11:39:20 · 1117 阅读 · 0 评论 -
【待重置】记忆化搜索思想
写得真好,原地址:http://blog.csdn.net/urecvbnkuhbh_54245df/article/details/5847876记忆化搜索: 算法上依然是搜索的流程,但是搜索到的一些解用动态规划的那种思想和模式作一些保存。一般说来,动态规划总要遍历所有的状态,而搜索可以排除一些无效状态。更重要的是搜索还可以剪枝,可能剪去大量不转载 2016-07-05 17:13:29 · 362 阅读 · 0 评论 -
【待重置】二分图最大匹配讲解
二分图的最大匹配、完美匹配和匈牙利算法August 1, 2013 / 算法这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm);不讲带权二分图的最佳匹配。二分图:简单来说,如果图中点可以被分转载 2016-05-15 16:30:49 · 406 阅读 · 0 评论 -
【待重置】二分图最大匹配各种题型
DescriptionThere are a group of students. Some of them may know each other, while others don't. For example, A and B know each other, B and C know each other. But this may not imply that A and C k原创 2016-05-23 12:18:14 · 434 阅读 · 0 评论 -
队列题目
A - 士兵队列训练问题Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit Status Practice HDU 1276Description某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一原创 2016-07-08 21:21:48 · 1671 阅读 · 0 评论 -
ACM牛人集
楼天成——楼教主陈立杰——高二学生,codeforces全球排名第五,入选国家OI集训队,发明后缀自动机。可能是因为codeforces的排名,高三意外得到google总部的offer。原创 2016-06-21 17:01:01 · 883 阅读 · 0 评论 -
【待重置】最小生成树各种题型
最小生成树=党组织之树DescriptionThe Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money was spent on extra roads between villages some years ago. But原创 2016-05-08 12:23:00 · 785 阅读 · 0 评论 -
双向dp题目
风格你原创 2016-08-15 15:23:25 · 907 阅读 · 0 评论 -
暑假集训提纲
双向dp输入输出省时间状态压缩用位运算判断钥匙和开锁原创 2016-08-15 10:34:12 · 332 阅读 · 0 评论 -
博弈
2147 大魔王和小受原创 2016-08-21 10:09:14 · 634 阅读 · 0 评论 -
KMP讲解
原文: http://blog.csdn.net/yutianzuijin/article/details/11954939/kmp算法又称“看毛片”算法,是一个效率非常高的字符串匹配算法。不过由于其难以理解,所以在很长的一段时间内一直没有搞懂。虽然网上有很多资料,但是鲜见好的博客能简单明了地将其讲清楚。在此,综合网上比较好的几个博客(参见最后),尽自己的努力争取将kmp算法思想和实现原创 2016-08-19 11:20:22 · 408 阅读 · 0 评论