基础算法题例
文章平均质量分 69
末树之墨
窗外梧桐訴寒意。手撫鍵盤,碼字聲憔悴。明月不諳敲題苦,斜光到曉穿朱戶。 秋去冬來南飛季。指針游移,觀算法獨醉。無數壯士飲淚去,我仍編譯似如故。
展开
-
【Prim】-POJ-2421-构造公路
题目链接:http://poj.org/problem?id=2421题目描述:最裸的最短路题目解题思路:明明是一个最裸的最短路题。周赛那天竟然一直WA。唉,后来自己试试,竟然又WA,拜托。。这是最裸体啊。。我到底怎么了?!然后找张纸画了画,发现prim函数里写得太混乱了,错了好几个地方,看来是我没理解透彻,唉~说来例会那天也挂黑板上了。。下次再也不溜号了。。= = 555555 T原创 2014-03-12 21:06:45 · 1013 阅读 · 0 评论 -
【几何】-Andrew算法求凸包
此乃大白书求凸包模板原创 2014-05-30 14:07:17 · 1968 阅读 · 0 评论 -
【几何】-几何基础大模板(更新中)
四省赛的选拔赛出了一堆几何题原创 2014-05-29 18:30:41 · 683 阅读 · 0 评论 -
【基础小技巧】-如何利用位运算枚举0-1串
从题目 UVA-11464-Even Parity 的大白书代码看来的。比如我们要原创 2014-06-22 22:17:03 · 1505 阅读 · 0 评论 -
【tarjan缩点+小拓展】【POJ-2186】
用刚搞到的模板,去过了一道题原创 2014-08-12 13:40:01 · 679 阅读 · 0 评论 -
【hh大神的】Tarjan + 缩点 模板
此模板来自 notonlysuccess大神就是吊啊。不多说了,想学tarjan ,资料网上是有一堆的这里只存一下转载 2014-08-12 13:31:37 · 835 阅读 · 0 评论 -
【最大流-ISAP】POJ-1273-网络流模板!!
POJ-1273网络最大流裸体直接套ISAP模板,过原创 2014-08-10 18:27:23 · 883 阅读 · 0 评论 -
【线段树】-POJ-3468-区间增减&区间求和
http://poj.org/problem?id=3468依然是模板,原版来自hh原创 2014-08-29 13:02:07 · 930 阅读 · 0 评论 -
【线段树】模板-HDU-1166-点改区查
存个线段树模板,已经用过好多次了,好用的原创 2014-08-29 12:52:40 · 661 阅读 · 0 评论 -
Trie树模板
直接抄大白书模板不解释了,原创 2014-08-29 15:34:24 · 567 阅读 · 0 评论 -
【Trie树】模板题-POJ-2001
给你若干个单词,写出能每个单词的最短前缀也就是说找到原创 2014-08-29 15:42:10 · 903 阅读 · 0 评论 -
【SPFA】-DLUT1218-裸题
题目链接:题目描述:最短路最裸题解题思路:比赛时候用DIJ+heap过了,注意long long 是个坑。例会讲了SPFA算法,拿这题试验一下。所谓SPFA就是对边进行BFS。。不太严密,应该说是通过类似于BFS的方式对dis[i]这个表示i点距起点最短距离的数组进行更新。嗯。。用inqueue数组来判断某点是否已经在队列里,把取出的队列首点能达到的边进行以下判断:if原创 2014-04-04 01:00:31 · 902 阅读 · 2 评论 -
LINUX xia fuzijinchengbingxing
MAKEFILEhead = pctl.hsrcs = pctl.cobjs = pctl.oopts = -g -call : pctlpctl : $(objs) gcc $(objs) -o pctlpctl.o : $(srcs) $(head) gcc $(opts) $(srcs) clean : rm pctl *.o*.H原创 2015-03-31 20:53:04 · 672 阅读 · 0 评论 -
矩阵快速幂模板
struct Matrix { lint a[53][53]; Matrix() { memset(a, 0, sizeof(a)); for(int i = 1; i <= 52; i++) { a[i][i] = 1LL; } }原创 2015-04-30 09:48:37 · 398 阅读 · 0 评论 -
【博弈】【裸题】NIM游戏的食用方法
问题描述:通常的Nim游戏的定义是这样的:有若干堆石子,每堆石子的数量都是有限的,合法的移动是“选择一堆石子并拿走若干颗(不能不拿)”,如果轮到某个人时所有的石子堆都已经被拿空了,则判负(因为他此刻没有任何合法的移动)。结论是:对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示异或(xor)运算。即把各原创 2015-05-14 16:17:45 · 709 阅读 · 0 评论 -
【计算机网络】子网掩码什么用?什么是网段?什么叫做在“同一网段”?
子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。关于网段,这要从局域网说起,局域网的拓扑最早都是总线结构,也就是说大家共用一条线路传输数据,这样网络原创 2015-11-17 21:54:35 · 7970 阅读 · 1 评论 -
Java的String类为什么是不可变的以及字符串常量池
JAVA中的String是一个不可变(immutable)类,即创建一个String对象后,是不能直接改变字符串中的某个字符的。我们打开JDK中String类的源代码来看一下:/** The value is used for character storage. */ private final char value[];其中用于存储String值的仍然是一个char型数转载 2016-03-02 19:47:11 · 2107 阅读 · 0 评论 -
【趣味数学】不使用第三个变量交换两变量的值(推理过程)
问题:怎么不使用第三个变量交换两个变量的值呢?解决方案1——数学计算:推理过程:1、猜想:用脚丫想到,似乎加减乘除就能做到这件事吧。然后想一下,如果用乘法很容易爆Int,而且都乘大了,减回来明显不靠谱,除回来除什么?有余数怎么办?也不靠谱。于是基本策略就是只用加减法,那么不妨试一下(a+b)和(a-b)之类的运算,来找一找规律。2、推理:于是我在纸上写下了:a原创 2016-02-29 12:15:39 · 799 阅读 · 0 评论 -
【简单题】【综合能力】UVA-1030-Image Is Everything
题目连接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=456&page=show_problem&problem=3471题目描述:原创 2014-06-06 21:23:20 · 1426 阅读 · 0 评论 -
【哈希&KMP模板题】-POJ-3461-Oulipo
题目链接:http://poj.org/problem?id=3461题目大意:原创 2014-04-26 15:54:18 · 4082 阅读 · 0 评论 -
【高精度】-DLUTOJ-1176-大数乘法
题目链接:http://acm.dlut.edu.cn/problem.php?id=1176题目描述:赤裸的大数乘法解题思路:突然想到自己没写过高精度乘法,就回咱们自己OJ上找出了这道题,赤裸的高精度乘法而已,没想到依然觉得不好写,准确说来是我从小到大算乘法的习惯使我产生了错觉:“ 想写大数乘法就得先写一个大数加法出来 ”。喂!我短路了半天才想明白,int 数组里可以存个两位数啊,再原创 2014-02-15 13:48:43 · 880 阅读 · 0 评论 -
【同余】-定义&计算&应用
同余符号[编辑]两个整数,,若它们除以正整数所得的余数相等,则称,对于模同余记作读作同余于模,或读作与关于模同余。比如。同余于的符号是同余相等符号 ≡。统一码值为 U+2261。但因为方便理由,人们有时会把它(误)写为普通等号 (=)。性质[编辑]整除性[编辑] (即是说 a 和 b 之差是 m 的倍数)换句话说,[1]原创 2014-01-28 17:02:02 · 1869 阅读 · 0 评论 -
[DFS]最简题-搜索字母排列
题目链接:http://lightoj.com/volume_showproblem.php?problem=1023题目描述:生成前n个字母的前k个排序解题思路:基本是航神指导~用DFS的思想来写AC代码:#include #include #include using namespace std;int n,k;bool use[30]; //定义use数原创 2013-12-29 10:57:20 · 933 阅读 · 0 评论 -
【二分查找】-POJ-2002-Squares
题目链接:http://poj.org/problem?id=2002题目描述:给出平面上若干个点,问能最多构成几个不重复的正方形。解题思路:第一反应是标记数组直接搜,好吧,内存超限。然后想了BFS或者DFS,太没前途了。然后想了哈希,不失为一种方法,但是不会操作。好吧还是按照九野大神选题的初衷来做吧——二分查找,为了锻炼自己,嗯!手写!好吧,我写的只是二分找 x 坐标,y 坐标没二分原创 2014-02-15 22:09:16 · 858 阅读 · 0 评论 -
【BFS+状态压缩】-POJ-1753-Flip Game
题目链接:http://poj.org/problem?id=1753题目描述:4*4的棋盘上翻棋,翻动一个子其上下左右四子也会被翻过去,问对于给出的一个4*4布局,是否能全翻成白棋或黑棋,如果能输出步数解题思路:之前的例会上学长用这个给我们当了状态压缩的栗子,当然,当时一点不明白学长在表达什么,碰巧遇到这题,自己就做了一把。大概知道这样题换成二进制数储存状态,具体怎么对某个数原创 2014-02-23 15:54:53 · 985 阅读 · 0 评论 -
[BFS]最简题-抓奶牛
题目链接:http://poj.org/problem?id=3278题目描述:萌教主丢了。航神要把他抓回来。萌教主和航神分别在X轴上某点,萌教主不动,航神每次移动的移动方式为:1、前进或后退一步。2、瞬移(当前坐标乘以二)。问最少几次移动抓到萌教主?解题思路:BFS的最简单题,所以收藏起来作为模板。思路简单,入队出队什么的就做出来了~。AC代码:#include #incl原创 2013-12-29 12:48:59 · 925 阅读 · 0 评论 -
[BFS]-宽搜算法总结
总结一下宽搜中的一些问题,当然还不全面,以后再补充~问题一:怎么记录步数/层数?从教主的代码那里学来的方法。int 一个变量t,令t=xx.size();,再while(t--)就可以记录步数或者层数了。如下:int bfs(******){ * 略 * while(!xx.empty()) { t=xx.size(原创 2013-12-29 13:16:52 · 2653 阅读 · 0 评论 -
【Dijkstra】-HDU-2544-最短路
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544题目描述:给出若干条路径的信息。每条信息包括起点、终点、距离(花费)。问从点 1 到点 N 最少花费多少?解题思路:最裸的最短路问题,有数种做法,新手入门,选择学习一下dijkstra算法,自己看懂了算法之后动手尝试过,queue什么的都用上了,各种WA,其实是该算法原理没理解透。原创 2014-02-25 20:11:25 · 1078 阅读 · 0 评论 -
[DP动归]-HDU-4405-动态规划的期望计算
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4405传送题目描述:玩耍飞行棋,扔骰子前进,棋盘上有若干“航线”,比如3→5,能让你从3直接到5,给出终点N,问从0到N所需步数的期望。解题思路:第一次做数学期望相关的题,所以这道题还是很典型很有教育意义的,我一开始选择了这样的做法:第一个点的期望值是1,也就是说只要一步肯定能到1点,到原创 2014-01-15 15:40:43 · 1393 阅读 · 0 评论 -
【Dijkstra】-POJ-1847-Tram
题目链接:http://poj.org/problem?id=1847题目描述:给出起点终点,各路径的花费,问点A到点B的最短路。解题思路:最短路裸题,当模板吧AC代码:#include #include #define MAX 999999using namespace std;int cost[120][120],dis[120],vis[120];int原创 2014-03-08 17:48:35 · 880 阅读 · 0 评论 -
【构造策略】-CF-301A-Yaroslav and sequence
题目链接:http://codeforces.com/problemset/problem/301/A题目描述:给出2*n-1个数,每次可以把n个数变成其相反数,可以进行任意次操作,问最后能得到的最大和是多少?解题思路:假设这些数里有k个负数,我们应该尽量减少负数的个数,显然k%n=0的时候我们能全翻成正数。否则的话,我们应该想办法让负数更少,显然每次“沾边”偶数个进行翻转不会改变负数原创 2014-03-15 14:09:09 · 1143 阅读 · 0 评论 -
【字符哈希】-DLUToj-1250-变为回文字串
题目链接:http://acm.dlut.edu.cn/problem.php?id=1250题目描述:给你一个字符串,问至少往这个串的最右端加几个字符能使它变成一个回文串?(每次都只能在字符串的 )原创 2014-04-22 14:08:17 · 999 阅读 · 0 评论 -
【姜神向前星】-链式向前星(数组模拟邻接表)
请原谅我偷个懒。姜神神敲的链式向前星,很好懂,就直接转过来了。自己模仿着敲过,感觉好极了!有的时候有的图可能比较稀疏而且点数较多,邻接矩阵存不下,所以就要用到邻接表。邻接表用vector数组比较方便,但是vector比较慢。所以就有了链式向前星。#include#include#includeusing namespace std;//链式向前星转载 2014-04-22 11:55:56 · 2208 阅读 · 0 评论 -
【转载松松】 hashtable (vector&链式前向星)
hashtable,哈希表,一种可以快速查找信息的数据结构,转载 2014-04-23 05:47:14 · 1057 阅读 · 0 评论 -
【hashtable_哈希表】Dlut-OJ-1247
http://acm.dlut.edu.cn/problem.php?id=1247原创 2014-04-23 05:38:55 · 914 阅读 · 0 评论 -
【简单题】【异或的妙用】-DlutOj-1216
题目链接:http://acm.dlut.edu.cn/problem.php?id=1216题目描述:航神!你给我去重修语文!这题原创 2014-04-11 19:32:54 · 1323 阅读 · 1 评论 -
【Dijkstra】【Floyd】-HDU-2544-最水题演示
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544题目描述:最裸最短路题,拿来做实验。输入节点数n和路线数m,求最短路dijkstra+邻接矩阵+优先队列版:#include #include #include #include #include using namespace std;const int I原创 2014-03-29 02:44:29 · 851 阅读 · 0 评论 -
最长公共子序列(LCS问题)的DP解法
呃。。大一做过,毕竟是ACM入门DP题,但是大三的我已然忘了具体咋做了,只记得是DP,面试常会问这个问题,所以有必要搞明白。题目描述略。解题思想就是DP,DP无外乎需要知道两个东西,一是状态是什么,二是状态之间的递推关系是什么。这道题是一个二维DP,使用状态dp[i][j]表示str1取到第i个字符(包括i),str2取到第j个字符(包括j)时,最长公共子序列的长度。(i,j取值从1开原创 2016-04-23 10:40:52 · 3212 阅读 · 0 评论