算法
usernamezzz
这个作者很懒,什么都没留下…
展开
-
POJ——3259 chong 虫洞
利用虫洞的时光旅行,很有趣的一道题。涉及到图论的知识,关键是构造图,用Bellman-Ford算法找出负权环Bellman-Ford算法核心在于松弛,具体可以百度,这里就不重复前人的智慧了O(∩_∩)O哈哈~需要注意的就是输入说明Input这部分,很多人读不懂这段题意:正权(双向)边部分:Line 1 of each farm: Three space-separated integers re...原创 2018-04-14 20:19:45 · 235 阅读 · 0 评论 -
POJ-1860
提示:关键在于反向利用Bellman-Ford算法题目大意有多种汇币,汇币之间可以交换,这需要手续费,当你用100A币交换B币时,A到B的汇率是29.75,手续费是0.39,那么你可以得到(100 - 0.39) * 29.75 = 2963.3975 B币。问s币的金额经过交换最终得到的s币金额数能否增加货币的交换是可以重复多次的,所以我们需要找出是否存在正权回路,且最后得到的s金额是增加的怎么...原创 2018-04-14 10:34:20 · 153 阅读 · 0 评论 -
差分约束系统例题集
前一部分的算法讲解摘自原文:https://blog.csdn.net/consciousman/article/details/53812818 差分约束系统一、何为差分约束系统:差分约束系统(system of difference constraints),是求解关于一组变数的特殊不等式组之方法。如果一个系统由n个变量和m个约束条件组成,其中每个约束条件形如xj-xi<=b...原创 2019-01-21 20:53:29 · 568 阅读 · 0 评论 -
PAT (Top Level) Practice1005 Programming Pattern (35 分)
题目链接:https://pintia.cn/problem-sets/994805148990160896/problems/994805154748940288用后缀数组求出长度为n所有子字符串的大小关系,然后得出重复最多的。算法:后缀数组#include<iostream>#include<cstdio>#include<cstring>...原创 2018-12-22 19:15:49 · 457 阅读 · 0 评论 -
PAT (Top Level) Practice1004 To Buy or Not to Buy - Hard Version (35 分)
题目链接:https://pintia.cn/problem-sets/994805148990160896/problems/994805155206119424暴力,基本上不会超时,dfs加上一些剪枝算法:dfs#include<iostream>#include<cstdio>#include<string>#include<cs...原创 2018-12-22 19:11:10 · 303 阅读 · 0 评论 -
PAT (Top Level) Practice 1003 Universal Travel Sites (35 分)
题目链接:https://pintia.cn/problem-sets/994805148990160896/problems/994805155688464384题很难理解,但其实就是普通的 网络流最大流(从源点到汇点可以运送的最大乘客)。建图用stl。算法:网络流最大流(Dinic)#include<iostream>#include<cstdio>#...原创 2018-12-22 19:07:27 · 1097 阅读 · 0 评论 -
PAT (Top Level) Practice1002 Business
题目链接:https://pintia.cn/problem-sets/994805148990160896/problems/994805156145643520很入门的动态规划题,一开始需要先排序。算法:dp/背包#include<iostream>#include<cstdio>#include<cstring>#include<...原创 2018-12-22 19:02:29 · 294 阅读 · 0 评论 -
PAT (Top Level)Practice 1001 Battle Over Cities - Hard Version (35 分)
题目链接:https://pintia.cn/problem-sets/994805148990160896/problems/994805156657348608主要考连通性 ,简单来说就是枚举删除每个点的最小生成树的最大的花费是多少,注意如果不能联通那么一定是最大的,最后在遍历一遍输出答案即可 算法:kustal最小生成树code:#include<iostream...原创 2018-12-22 18:56:25 · 326 阅读 · 0 评论 -
poj—1161 -- Walls
描述在一个国家,长城的建造方式使每一堵长城都把两个城镇连在一起。长城不相交。因此,国家被划分为这样的地区:要从一个地区迁移到另一个地区,就必须穿过一个城镇或跨过长城。对于任何两个城镇A和B,最多有一个长城,一端在A,另一个在B,而且,它可以走从A到B总是走在一个城镇或沿着长城。输入格式意味着附加限制。有一个俱乐部的成员住在城镇。每个城镇只有一个成员,或者根本没有成员。成员们想在其中一个地区(...原创 2018-12-06 21:47:21 · 202 阅读 · 0 评论 -
树形dp poj-2342与codeforces Round #525(Div 2)E
poj-2342题目链接:http://poj.org/problem?id=2342很简单的树形dp,状态方程是:dp[i][1]+=dp[j][0] (在选择 i 的情况,j 是 i 的下属 )dp[i][0]+=max(dp[j][0],dp[j][1]) (在不选择 i 的情况,i的下属 j 可选可不选 )ac code:#include<iostream&...原创 2018-12-06 00:16:14 · 113 阅读 · 0 评论 -
1019 Separate the Animals (35 分)DFS或BFS搜索+(位运算)状态去重
题目链接:https://pintia.cn/problem-sets/994805148990160896/problems/994805149963239424直接暴力搜索每一种障碍的状态,用dfs和bfs都可以(我用的dfs),没找到一种状态bfs检查现在有多少个洞,有没有动物相连。可以用set对状态进行去重,用 long long 压缩保存状态写题一定要细心。。。。。。。。。。...原创 2018-11-25 01:33:27 · 557 阅读 · 0 评论 -
PAT (Top Level) Practice 1017 The Best Peak Shape (35 分)
这道题的链接:https://pintia.cn/problem-sets/994805148990160896/problems/994805150479138816这道题很明显是考最长递增序列,用LIS O(NlgN)算法,从网上看了别人写的大多用dp但耗时太长,有用LIS的但却用的不够准确。在LIS时加一个数组nu 记录:到该下标的数时的最长递增序列为多少。code:#in...原创 2018-11-21 20:48:16 · 291 阅读 · 0 评论 -
最小生成树计数(MST) kruskal&矩阵定理
参考的有这位大佬的博客:https://blog.csdn.net/clover_hxy/article/details/69397184最小生成树的两个性质: (1)不同的最小生成树中,每种权值的边出现的个数是确定的 (2)不同的生成树中,某一种权值的边连接完成后,形成的联通块状态是一样的 那么我们其实可以把每种权值的处理看成是分开的好几步,然后根据乘法原理,将每一步得到的结果相乘。 ...原创 2018-11-21 11:48:37 · 2159 阅读 · 0 评论 -
PAT (Top Level) Practice1007 Red-black Tree (35 分)
题目链接:https://pintia.cn/problem-sets/994805148990160896/problems/994805153880719360参考博客:https://blog.csdn.net/u014646950/article/details/48683081算法:dp#include<iostream>#include<cstdio&...原创 2018-12-22 19:22:24 · 461 阅读 · 0 评论 -
poj-2195 最小费用最大流or二分图km算法
Going HomeTime Limit: 1000MS Memory Limit: 65536K Total Submissions: 26221 Accepted: 13140 DescriptionOn a grid map there are n little men and n houses. In each unit time, ever...原创 2018-12-23 11:50:21 · 298 阅读 · 0 评论 -
后缀数组例题集
按这位大佬的博客刷的https://blog.csdn.net/tianyuhang123/article/details/54977648poj-1743不可重叠最长重复子串给你一串数字,求它们最长的重复(公差相同)子序列,且两个子序列不相交我们可以向二分枚举ans长度,如果能找到两个height>=ans,而且通过sa判断两个的间距>=ans,则说明这个答案合适。...原创 2019-09-29 19:36:28 · 260 阅读 · 1 评论 -
poj KMP例题
poj-2406 kmp循环节http://poj.org/problem?id=2406KMP,next表示模式串如果第i位(设str[0]为第0位)与文本串第j位不匹配则要回到第next[i]位继续与文本串第j位匹配。则模式串第1位到next[n]与模式串第n-next[n]位到n位是匹配的。所以思路和上面一样,如果n%(n-next[n])==0,则存在重复连续子串,长度为n-nex...原创 2019-05-11 19:29:45 · 230 阅读 · 0 评论 -
树状数组部分例题
poj-1037给出n个星星的坐标,如果一个星星的左下方(包含正左和正下)有k颗星星,就说这颗星星是k级的,统计每个等级有多少个点。这题可用树状数组,对于每个星星按y坐标从小到大排序,相同y坐标按x坐标从小到大排序(题目中数据已经有序),输入顺序已排好序,那么只要依次统计星星i之前x坐标小于等于i.x的星星有多少,即是星星i的级别code:#include<iostream&g...原创 2019-04-28 11:01:38 · 278 阅读 · 0 评论 -
poj-线段树合集
http://poj.org/problem?id=2828Sample Input40 771 511 332 6940 205231 192431 38900 31492Sample Output77 33 69 5131492 20523 3890 19243题目大意,插队的问题,每个案例给出n,代表有n个插队的,每个给出p,v,意思是代号为v的...原创 2019-04-05 21:20:13 · 709 阅读 · 0 评论 -
2019年 蓝桥杯A组部分题解
试题 I: 糖果时间限制: 1.0s 内存限制: 256.0MB 本题总分:25 分【问题描述】糖果店的老板一共有 M 种口味的糖果出售。为了方便描述,我们将 M 种口味编号 1 ∼ M。小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果,而是 K 颗一包整包出售。幸好糖果包装上注明了其中 K 颗糖果的口味,所以小明可以在买之前就知道每包内的糖果口味。给定 N 包糖果,...原创 2019-04-04 21:43:17 · 898 阅读 · 0 评论 -
一些搜索题
1,poj-2308http://poj.org/problem?id=2308很有意思的题,挺少人写连连看的小游戏(只有4种牌),判断是否能全部消除。思路非常简单但是要注意减枝。外层的DFS指定一张牌来想办法消除它,内层的BFS以指定的这张牌为起点,向四周扩展找到能和它配对的牌。然后每一对能消除的牌都考虑一遍。1.连的线不能越界到格子外边;2.有的牌只有奇数个,无解3...原创 2019-03-16 18:53:56 · 157 阅读 · 0 评论 -
双联通分量及例题
点双连通和边双连通连通的概念:在无向图中,所有点能互相到达连通分量:互相联通的子图点双连通:删掉一个点之后,图仍联通边双连通:删掉一条边之后,图仍联通tarjan 算法:该算法是R.Tarjan发明的。对图深度优先搜索, dfn[i]为第i个结点在搜索树中的深度,low[i]为第i个结点的子树的所有儿子连接到的最上面的结点层数。根据定义,则有:一个顶点u是割点,当且仅当满足(1)或(...原创 2019-02-12 20:41:18 · 331 阅读 · 0 评论 -
强连通分量及缩点 算法解析及例题
算法讲解:https://blog.csdn.net/acmmmm/article/details/16361033#comments例题:poj-2186http://poj.org/problem?id=2186题意:总共有n头牛,m个有序对(a, b) 代表牛a崇拜牛b, 崇拜具有传递性,求出被其他所有牛崇拜的牛的总数。题解:构造一个图,进行求强连通分量及缩点,在强连通分...原创 2019-02-15 22:15:56 · 717 阅读 · 0 评论 -
ACM Presentation Error错误
最近刷poj时遇到了一个错误名为:Presentation Error错误(表示错误)。我就查了下资料,了解了一下,发现该错误不是你的思路错误也不是你的答案错误,主要是因为你的答案输出的不够标准,就是说答案结尾是不是多了后少了应有的回车和空格,如果认真检查过,真的没有问题的话,唯一的可能,就是标准输出结果存在问题!标准的输出结果后面有些你看不见的空格或者换行符!加个空格或换行符再试一试!...原创 2019-02-02 22:12:34 · 460 阅读 · 0 评论 -
最小费用最大流及习题(poj)
该算法讲解来源:https://www.cnblogs.com/gtarcoder/p/4890739.html最小费用最大流 通过EK,Dinic,ISAP算法可以得到网络流图中的最大流,一个网络流图中最大流的流量max_flow是唯一的,但是达到最大流量max_flow时每条边上的流量分配f是不唯一的。 如果给网络流图中的每条边都设置一个费用cost,表示单位流量流经该...原创 2019-02-01 13:36:16 · 3979 阅读 · 0 评论 -
在poj上刷30道DP
听说30道dp可以入门??。。。。1.poj-1015http://poj.org/problem?id=1015#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<cma...原创 2018-10-15 18:08:18 · 306 阅读 · 1 评论 -
大数运算——加法
前言:大数运算一 大数的运算,说大数,那就不能用简单的数据类型能解决的。我想到的是用数组存储数据。 大概思路:说先义字符的形式把数输入到数组中。然后对这些数进行操作。 加法:从最低位开始,将每以为相对的进行相减,如果见不过还要向前面借位。这里的代码也考虑到了小数的问题#include<stdio.h>#include<string.h&...原创 2018-01-17 14:42:36 · 275 阅读 · 0 评论 -
poj-3020 二分图 最小路径覆盖=G-最大匹配数
DescriptionThe Global Aerial Research Centre has been allotted the task of building the fifth generation of mobile phone nets in Sweden. The most striking reason why they got the job, is their discove...转载 2018-06-12 22:10:31 · 238 阅读 · 0 评论 -
并查集部分汇总
POJ-1988题意:有n个箱子,初始时每个箱子单独为一列;接下来有p行输入,M, x, y 或者 C, x;对于M,x,y:表示将x箱子所在的一列箱子搬到y所在的一列箱子上;对于C,x:表示求箱子x下面有多少个箱子;定义d数组表示x下面有多少箱子定义s数组表示当前集合有多少箱子fa[x]=y;x的父亲节点为y;#include<iostream>#include<algori...原创 2018-05-07 17:01:31 · 162 阅读 · 0 评论 -
POJ-1837 dp(01背包)
<span style="color:#ff0000">题意:有一个天平,左臂右臂各长15,然后给出n,m,n代表有几个挂钩,挂钩给出负数代表在左臂的距离,正数则在右臂</span>m代表有m个砝码,要你求出使得这个天平保持平衡有几种方法,要求所有砝码全部使用完题解:首先我们明确dp[i][j]中i与,j分别代表什么:i 代表砝码数量 j 代表现在的平衡状态,dp...原创 2018-05-18 17:42:13 · 122 阅读 · 0 评论 -
poj-2002 枚举&哈希
给定N个点,求出这些点一共可以构成多少个正方形。Sample Input41 00 11 10 090 01 02 00 21 22 20 11 12 14-2 53 70 05 20Sample Output161可列方程:可以得出 ;知道两点求出其余两点x3 = node[i].x + (node[i].y - no...原创 2018-05-17 18:31:10 · 122 阅读 · 0 评论 -
POJ-3253——哈夫曼&优先队列
借鉴别人的思路,使用很简单的哈夫曼树。并且使用优先队列。题目的意思是。要把一块木板切成所需要的n块,但是每切一刀需要收费。收费的方法是(网上有一些人理解有误):每当在一块木板上动刀子,这块木板的原有长度代表了这刀的费用。思路:切割的过程可以用一棵二叉树表示,每个节点有两个或者没有子节点,节点存储切割过程中每块木板的长度。父节点的值=两个子节点相加 根节点是原始木板长度。每块所需要的木板都是叶子节点...原创 2018-05-17 18:06:15 · 204 阅读 · 0 评论 -
POJ-3984迷宫问题
题解:记录路径的简单bfs代码:#include<iostream>#include<cstdio>#include<queue>using namespace std;int mp[6][6];int derti[1000];int dir[4][2] = { 1,0,0,1,-1,0,0,-1 };struct point { int x;...原创 2018-05-17 17:59:53 · 156 阅读 · 0 评论 -
POJ-2586
题目大意:已知一个公司在某一年中,【每个月要么固定盈利s、要么固定亏损d】。 但是具体哪个月盈利、那个月亏损却不得而知。 不过可以肯定的是,这一年中,【任意的连续5个月盈亏和必定是亏损(< 0)】。 问这年是否存在盈利的可能,若可能盈利,【最大的盈利额】是多少题解:运用贪心的思想,将每连续5月的亏损最小,可以设每5个月,x个月盈利,y个月亏损;列方程:s*x-y...原创 2018-05-17 17:56:22 · 286 阅读 · 0 评论 -
POJ-并查集合集
POJ1611 The suspects题目描述:有很多组学生,在同一个组的学生经常会接触,也会有新的同学的加入。但是SARS是很容易传染的,只要在改组有一位同学感染SARS,那么该组的所有同学都被认为得了SARS。现在的任务是计算出有多少位学生感染SARS了。假定编号为0的同学是得了SARS的。解题思路---->显然并查集了。并查集的详细解释在可以点击 并查集(不相交集合)进行学习。采用n...转载 2018-05-03 22:17:10 · 704 阅读 · 0 评论 -
POJ-1258 Agri-Net
InputThe input includes several cases. For each case, the first line contains the number of farms, N (3 <= N <= 100). The following lines contain the N x N conectivity matrix, where each eleme...原创 2018-04-20 10:59:17 · 128 阅读 · 0 评论 -
POJ-3264 Balanced Lineup RMQ(递归与非递归)
题目大意:一个农夫有N头牛,每头牛的高度不同,我们需要找出最高的牛和最低的牛的高度差。题解:使用RMQ,不会RMQ的可以看这个人写的点击打开链接InputLine 1: Two space-separated integers,NandQ.Lines 2..N+1: Linei+1 contains a single integer that is the height...原创 2018-04-19 18:12:47 · 158 阅读 · 0 评论 -
POJ-1664
Description把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。Input第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。Output对输入的每组数据M和N,用一行输出相应的K。Sample Input17 3...转载 2018-04-19 13:09:17 · 333 阅读 · 0 评论 -
POJ-1195 Mobile phones
二维树状数组。DescriptionSuppose that the fourth generation mobile phone base stations in the Tampere area operate as follows. The area is divided into squares. The squares form an S * S matrix with t...转载 2018-04-23 13:46:25 · 144 阅读 · 0 评论 -
POJ-3080 Blue Jeans
DescriptionThe Genographic Project is a research partnership between IBM and The National Geographic Society that is analyzing DNA from hundreds of thousands of contributors to map how the Earth was...原创 2018-04-18 14:54:49 · 127 阅读 · 0 评论