![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM学习笔记
蓝宇
这个作者很懒,什么都没留下…
展开
-
博弈论
<br />本篇主要以取石子游戏为例,简单介绍以下博弈论。共有 3 种类型:<br />(一)巴什博弈(Bash Game):<br />只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取 m 个。最后取光者得胜。<br />显而易见,当剩余的石子个数为 1,2...m 时,此状态必为必胜状态,由此可知,当剩余的石子个数为 m+1时为必败状态,但是当剩余石子个数为 m+2, m+3 ... 2m+1 时,玩家可以取走一定量的石子,使剩余的石子数为必败状态的 m+1 个石子,故当剩余石子原创 2011-05-17 13:47:00 · 399 阅读 · 0 评论 -
kruskal_poj 1251Jungle Roads
poj1251http://poj.org/problem?id=1251此题一看就知是最小生成树,由于数据量很小,输入的数据形式也没有那一种比较方便,所以prim和kruskal都可以下面给出kruskal代码 #include#include#include#include#include#define MAXEN 200#define MAXVN 60原创 2012-03-31 01:06:29 · 357 阅读 · 0 评论 -
kruskal_poj 3522 Slim Span
题意为求一棵生成树,其最大边权-最小边权最小先枚举生成树中的最小边,再用kruscal求最小生成树http://poj.org/problem?id=3522#include #include #include #include #include #include #include #include #include #include #include #incl原创 2012-03-31 18:54:59 · 303 阅读 · 0 评论 -
DP_bnu 13565 Flags
题意:由红白蓝按照规则形成的旗帜的种类数WA点:注意longl long 则f[i] = f[i-1] + f[i -2] ,因为,在f[i-1]后面加一种颜色(红或白)或者在f[i-2]中加上包括蓝的两种颜色即可形成f[i]; #include long long color[46];int main (){ int n; color[1] = 2;原创 2012-04-03 00:40:27 · 290 阅读 · 0 评论 -
差分约束系统_bellman_ford_poj 1201 Intervals
题目大意是:告诉你一个数列B在另一个数列A中每一个闭区间[a,b]中至少包含c个数,求B数列的最小长度。 模型转换一下,使用二进制0、1表示当前数取还是不取,此问题即成为典型的查分约束系统。 令S[i]表示0..i中1的个数,第i位状态即 S[i]-S[i-1] ,满足 0 ≤ S[i]-S[i-1] ≤ 1. 对于每一个条件(a,b,c),满足 c ≤ S[b]-S[a-1]原创 2012-04-01 19:45:38 · 317 阅读 · 0 评论 -
BFS_poj 2251 Dungeon Master
题目大意: 给出一三维空间的地牢,要求求出由字符'S'到字符'E'的最短路径移动方向可以是上,下,左,右,前,后,六个方向每移动一次就耗费一分钟,要求输出最快的走出时间。不同L层的地图,相同RC坐标处是连通的/*Sample Input3 4 5S.....###..##..###.#############.####...###########原创 2012-04-03 00:16:52 · 285 阅读 · 0 评论 -
Bellman_Ford poj 1860
题意:求根据各种货币之间的汇率能否使某种货币升值。货币a兑换成b所得值是 (a-c[a][b])*r[a][b]。 思路:令dist[a]表示从s(最初所持货币)出发经过各种已知的汇率兑换成a所能得到的最大值。那么便可以发现一个明显的放缩条件:(dist[a]-c[a][b])*r[a][b]>dist[b]。如此便可以用bellman水了。另外需要注意的是不仅是存在正权回路的时候原创 2012-03-22 13:58:18 · 259 阅读 · 0 评论 -
spfa poj 3259
题意:一个图,有一些“正常”的点和边(废话),点表示农场的位置、边表示从一个农场到另一个农场花费的时间。打住。还有些特别的点(虫洞),这些特别的点和其他点的边代表着能“穿越”的时间。问:有没有可能从虫洞穿越到某个点,时间倒流。这个模型就是把正常的点互相连接起来或者把正常的点到虫洞,权是正。但是虫洞到其他的点,权为负。建立一个存在负权的图,然后最最最最关键的就是:判断是否存在负权回路。单原创 2012-03-22 14:36:37 · 315 阅读 · 0 评论 -
Bellman_Ford POJ3259
题意:一个图,有一些“正常”的点和边(废话),点表示农场的位置、边表示从一个农场到另一个农场花费的时间。打住。还有些特别的点(虫洞),这些特别的点和其他点的边代表着能“穿越”的时间。问:有没有可能从虫洞穿越到某个点,时间倒流。这个模型就是把正常的点互相连接起来或者把正常的点到虫洞,权是正。但是虫洞到其他的点,权为负。建立一个存在负权的图,然后最最最最关键的就是:判断是否存在负权回路。单源最原创 2012-03-16 13:57:44 · 414 阅读 · 0 评论 -
DP_poj3022_The Uxuhul Voting System
Sample Input248 7 6 5 4 3 2 18 6 3 1 2 4 5 78 3 6 5 1 2 7 41 2 3 4 5 6 7 811 2 3 4 5 6 7 8Sample OutputNYYNNY#include #include using namespace std;int arr[105][8];char ch[8][4原创 2012-04-20 16:21:29 · 926 阅读 · 0 评论 -
DP_poj1887_Testing the CATCHER
题意: 输入一组数据,求最大不连续降序数值个数。 输入: 每组数据以-1结束,连续两个-1则程序结束。 输出: 输出测试数据组数及求出的最大值。#include #include #include #include #include #include #include #include using namespace std;原创 2012-04-19 19:37:22 · 443 阅读 · 0 评论 -
LCS_poj1458 Common Subsequence_空间复杂度O(n)
求最长公共子序列,题意就不再解释了,裸地、、、、、、、、、、#include #include #include #include #include #include #include #include #include using namespace std;int s[250], t[250];int LCS(string s1, string s2){原创 2012-04-20 13:21:54 · 549 阅读 · 0 评论 -
CF_Croc Champ 2012 - Round 2 (Unofficial Div. 2 Edition)
题目大意:给你这么一些星球,可以进行买卖,只能在一个星球买,另一个星球卖,而且总的买卖操作只能进行一次,然后房间数位k,也就是说最多只能买k件商品。现在问你最多能够收益的金额。直接暴力枚举就行了#include #include #include #include #include #include #include #include #include using name原创 2012-04-21 12:25:08 · 418 阅读 · 0 评论 -
POJ 2488 _ DFS
大致题意:给出一个国际棋盘的大小,判断马能否不重复的走过所有格,并记录下其中按字典序排列的第一种路径。经典的“骑士游历”问题,DFS水题一道 解题思路:难度不大,但要注意的地方有3点: 1、 题目要求以"lexicographically"方式输出,也就是字典序...要以字典序输出路径,那么搜索的方向(我的程序是path()函数)原创 2012-06-19 23:41:02 · 458 阅读 · 0 评论 -
kruskal_poj 2485 Highways
此题关键要理解输出的定义For each test case, you should output a line contains an integer, which is the length of the longest road to be built such that all the villages are connected, and this value is minimu原创 2012-03-31 00:29:21 · 318 阅读 · 0 评论 -
Prim_poj2075 Tangled in Cables
题意:最小生成树问题,加上简单的字符串处理/*Sample Input100.04JonesSmithsHowardsWangs5Jones Smiths 2.0Jones Howards 4.2Jones Wangs 6.7Howards Wangs 4.0Smiths Wangs 10.0Sample OutputNeed 10.2 miles of ca原创 2012-03-26 21:33:26 · 328 阅读 · 0 评论 -
三十分钟掌握STL
<br />这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。<br />译者:kary<br />contact:karymay@163.net<br />STL概述<br />STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全原创 2011-05-24 23:25:00 · 315 阅读 · 0 评论 -
堆排序
#include#include#includeusing namespace std;void max_heapkeep(int a[], int heapsize, int i){//将a树的第i个元素“下沉”,使其保持最大堆的性质,heapsize为原创 2011-09-02 21:32:06 · 234 阅读 · 0 评论 -
stl list学习
头文件: #include 实例化: listListName 原型: namespace std { template > class list; }构造函数(使得可以在定义时赋初值) list (); list (size_type原创 2011-08-04 01:11:46 · 458 阅读 · 0 评论 -
表达式计算
输入一个由+、-、*、/、(、)和浮点数组成的合法表达式,计算并且输出其结果:如输入:((1+2)*(2-1)+2-1*(1+1))时;输出:3.000000 直接上代码:#include#include#include#include#原创 2011-09-10 00:25:35 · 318 阅读 · 0 评论 -
hdu 1932(Ambiguous Codes)
题意大概是这样的就是让我们去早这么一个字符串,是由前面给的字符串拼成的,然后如果这个拼成的字符能够拆成另外的由前面给出的字符串的话就是Ambiguous ,让我们输出长度最短的Ambiguous 的长度,如果没有就输出-1如输入0110101可以找到最短的原创 2011-08-20 17:42:06 · 423 阅读 · 0 评论 -
Floyd-Warshall算法详解(转)
Floyd-Warshall算法,简称Floyd算法,用于求解任意两点间的最短距离,时间复杂度为O(n^3)。我们平时所见的Floyd算法的一般形式如下:1 void Floyd(){2 int i,j,k;3 for(k=1;kn;k++)4转载 2011-09-20 00:00:59 · 34154 阅读 · 1 评论 -
poj 3615(Cow Hurdles) floy 算法
Cow HurdlesTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 4082 Accepted: 1760DescriptionF原创 2011-09-20 22:40:22 · 467 阅读 · 0 评论 -
poj 1847(Tram) Dijkstra
TramTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 6000 Accepted: 2193DescriptionTram network原创 2011-09-21 22:13:31 · 483 阅读 · 0 评论 -
poj 1125(Stockbroker Grapevine)Dijkstra算法
Stockbroker GrapevineTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 17918 Accepted: 9671Descrip原创 2011-09-21 13:29:18 · 447 阅读 · 0 评论 -
prime_poj 1287O(n^2) 邻接表实现
#include#include#include#define MAXN 60#define INF 1000000000using namespace std;typedef struct{ int v, value;}Edge;typedef vector VE;VE eg[MAXN];bool visited[MAXN];int LowValue[MAX原创 2012-03-26 23:14:35 · 408 阅读 · 0 评论 -
PRIM_poj 2349Arctic Network
题意:有两种不合的通信技巧,有卫星通信的两个城市之间可以随便率性联络,但用无线电通信的城市只能和间隔不跨越D的城市接洽。无线电的才能越高(即传输间隔D越大),花费就越大。已知无线电的数量m,让求最小的D。之前自己写的prim算法是O(n^3)的,当写到这道题TLE过后,我才发觉我的算法写的很挫,本来PRIM应该是O(n^2)的,所以又重写写了一下,把这题给A了#include#inclu原创 2012-03-26 20:35:27 · 271 阅读 · 0 评论 -
Prim_poj 1287 Networking
题意:给出一个具有n个顶点和m条边的图,求其最小生成树。#include#include#include#define MAXVN 55#define INF 10000000using namespace std;typedef struct{ int u,v,value;}Edge;typedef vector VE;VE eg[MAXVN];vecto原创 2012-03-26 14:59:02 · 315 阅读 · 0 评论 -
Prime_poj2031 Building a Space Station
题目意思很简单,就是给出一些点,让你搭建通路,使得他们能够相互连通起来,就是把他们连接成一颗树,其中每个点都是一个球,如果两个球有重叠的部分则算为连通。让我们求搭建通路的最小费用(费用和通路长度成正比)。显然这个是个最小生成树的问题,用那种都行,我用的是Prim算法/*Sample Input310.000 10.000 50.000 10.00040.000原创 2012-03-26 14:49:11 · 335 阅读 · 0 评论 -
通过金矿模型介绍动态规划
原文地址:http://www.cnblogs.com/sdjl/articles/1274312.html 对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划。本文力求通俗易懂,无异性,不让读者感到迷惑,引导读者去思考,所以如果你转载 2012-07-25 20:49:59 · 1623 阅读 · 0 评论