![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM2019
文章平均质量分 92
#魔君#
算法比赛参与者
展开
-
POJ 3159 Candies 解题报告
Question Link差分约束系统对应的最短路。题意:n个人,m个约束,约束是,由,A,B,C,三个数字组成。B比A多出来的糖果不超过C个,问,n号人最多比1号人多几个糖果?解法:对应最短路模型,在松弛完最短路后则变为 d[v] <= d[u] + w ,转化为 d[v] - d[u] <= w,这个和上面的 B - A <= C 是相同的模式 , 因此建图的...原创 2019-04-25 20:51:06 · 93 阅读 · 0 评论 -
HDU 2612 Find a way
题目通道简单的bfs,两次,注意到了 KFC不要return;有一些KFC是到不了的,这是代码体现在len1[i][j] == 0 上题解代码#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream>#includ...原创 2019-04-14 12:29:33 · 97 阅读 · 0 评论 -
POJ 2387 Til the Cows Come Home
Question linkSolution 1You can use Dijkstra algorithm to solut this question.The following is the code that can be accepted#include<iostream>#include<queue>#include<cstring>#i...原创 2019-04-14 13:13:51 · 67 阅读 · 0 评论 -
Tarjan 求强连通分量 的优质博客和优质代码
优质博客地址inline void dfs(int u){ dfn[ u ] = low[ u ] = ++t; tack[++top] = u;intack[u] = true; for (int i = head[u]; i ; i = a[i].d ){ if ( !dfn[ a[i].y ] ){ dfs( a[i].y ); low[ u ] = min( low...转载 2019-04-17 19:37:16 · 70 阅读 · 0 评论 -
POJ 2240 Arbitrage 解题报告
Question Link单向图,就是bellman-ford求正环,但是应该预设起点的钱的值为1,或者任意正数。起点暴力,枚举。好吧(其实我是真的傻了)。傻傻的代码#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream&...原创 2019-04-22 21:07:03 · 154 阅读 · 0 评论 -
POJ 1511 Invitation Cards 解题报告
Question LinkSPFA algorithm最短路建立反图和正图,均是以1为起点。Time: 1969msMemory: 49084kB#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream>...原创 2019-04-22 22:02:33 · 115 阅读 · 0 评论 -
POJ 2502 解题报告
Question Link题目分析第一、用时间作为边的代价。那么,你可以从一个点走到任意一个点,此时行走的时间就是代价。但是,你还可以,从在相邻,地铁,的结点中,乘坐地铁,那么,乘坐地铁的时间,就是代价。为什么只能是从相邻的地铁站中呢? 因为 1 到 3 结点必须经过 2, 换句话说 1 到 3 一般是折线,不是直线。下面是其他人的题解代码,我觉得很清晰。到自己能写出这样的代码是,再...转载 2019-06-24 13:12:36 · 101 阅读 · 0 评论 -
POJ 1860 Currency Exchange 解题报告
Qusetion LinkProblem analysisingThere is n type money, just like the node, m curreny exchange points ,just like m edges.The first thing you should know is that the digraph is directed.The cost from...原创 2019-04-18 19:56:00 · 111 阅读 · 0 评论 -
POJ 3259 Wormholes 解题报告
Qusetion LinkProblem analysisingJust try to find the negative edge.Here are AC code (Bellman-Ford)#include<iostream>#include<queue>#include<cstring>#include<string>#inc...原创 2019-04-18 20:52:39 · 101 阅读 · 0 评论 -
POJ - 1847 Tram
Question Link题目意思3 2 12 2 32 3 12 1 2第一行从点1 出发,接下来有两个点。2(直接到达)。3,要改变方向才能到。所以意思就是 1->2 可以直接到达,1->3要改变方向才能到第二行从点2 出发,接下来有两个点。3(直接到达)。1,要改变方向才能到。所以意思就是 2->3 可以直接到达,2->1要改变方向才能到第三行...原创 2019-04-28 21:54:52 · 192 阅读 · 0 评论 -
HDU 4725 The Shortest Path in Nya Graph 解题报告
题目大意给了若干个点,每个点分属于一个层,同层之间的点不能够直接到达,但是相邻层的可以到达,代价是c,现在在这个基础之上,给了若干条无向边,现在要求结点1到结点n的路径的最小代价。此题的难点在于建图现在我们将层这个概念变成实际意义上的结点,层这个虚拟概念正式成为两个结点,第r层,对应的结点编号是,n + u * 2 - 1 ,和, n + u * 2 。i 结点对应的层数是r,那么 令 i ...原创 2019-05-04 12:41:50 · 179 阅读 · 0 评论 -
Light OJ 1074 Extended Traffic 解题报告
Question Link题目大意n个点,每个点都有一个拥挤度,m条边,由 u 到 v 点的代价是 v 的拥挤度 减去 u 的拥挤度 的差 的立方, 由题意分析可知,这是一个有向图,接下来q个数字,num i ,这个数字 numi 代表结点,问由结点 1 到 numi ,的情况。如果不能联通,或者,到达他的代价总和,小于 3 则,输出 ?题目分析由于是立方,所以我们知道这个图的边是有负权的...原创 2019-04-29 19:01:07 · 185 阅读 · 0 评论 -
POJ 1289 解题报告
Question LinkKruskal code#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream>#include<map>#include<vector>#include<...原创 2019-05-14 21:27:00 · 129 阅读 · 0 评论 -
最短路的母题,包含四种模板。
题目描述现在有n个结点,m条无向边,其中1<n<1000,1<m<5003,起点是1,终点是n。求1到n的最短路径。输入样例5 61 2 22 3 32 5 53 4 23 5 14 5 1输出样例6dijkstra#include<iostream>#include<queue>#include<cstring&...原创 2019-07-03 09:40:08 · 106 阅读 · 0 评论 -
不可\可重复经过点的次短路(POJ 3255 Roadblocks\ 迷阵突围 )
传送门次短路分两类。一、可以重复经过一个点的次短路。可以在进行dijkstra的过程中,更新两个数组,分别是dis1,和dis2,代表最短路和次短路,每一次更新时,原来的dijkstra是只更新最短路数组dis,但是现在你需要做的是,更新dis1,和dis2,两个数组。能更新dis2,次短路数组的结点也必须入队,这样才能保证dis2,确实是次短路。POJ 3255 AC code (dij...原创 2019-07-03 13:30:21 · 582 阅读 · 0 评论 -
HDU 1495 非常可乐 解题报告
非常可乐思路六大状态,一共12种子状态。慢慢写呗,不要烦躁就写的对。题解代码#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#define N 100+5using namespace std; struct node{ int a,...转载 2019-04-13 16:41:34 · 172 阅读 · 0 评论 -
POJ 3660 Cow Contest
Question LinkQuestion analysising如果一只奶牛能确定和另外n-1头奶牛的关系,那么就能确定这头奶牛在奶牛中的ranking写法e[i][j] 有值 即 i 打败了 j 。否则无关系,或者被打败。只能是有向图,否则多对一,无法确定关系。当i打败k,k也打败了j时,能确定i和j的关系。当i打败k,j也打败了k时,不能确定i和j的关系。#include<...原创 2019-04-20 20:28:34 · 73 阅读 · 0 评论 -
算法竞赛中的标准模板
#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream>#include<map>#include<vector>#include<cstdio>#include<ios...原创 2019-03-23 11:48:33 · 243 阅读 · 0 评论 -
算法竞赛中的链式前向星
链式前向星适用范围:稀疏图写法:定义类型:struct PO{ int u,v,nex;}e[100];int fir[100],tot = 0; u 是起点,v是终点,nex是对应的下一条边的编号(同起点的)。编号的确立是由输入顺序决定的。加边操作:void add_ead(int u,int v){ e[++tot].u = u; e[tot].v = v; e[to...原创 2019-03-23 09:21:10 · 127 阅读 · 0 评论 -
STL中队列(queue)的具体使用方法。
queue的优势1、动态分配空间。queue的劣势1、操作缓慢。比起手写队列来说。基本操作:push(x) 将x压入队列的末端pop() 弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值front() 返回第一个元素(队顶元素)back() 返回最后被压入的元素(队尾元素)empty() 当队列为空时,返回truesize() 返回...转载 2019-04-04 17:46:30 · 10639 阅读 · 0 评论 -
POJ-2251 Dungeon Master(BFS+queue)
题目通道题解分析绝对不能用dfs,否则会超时,逐层深入,一旦找到立刻退出,能使用时期望最小。必备vis入队判重。queue存储队列。判断continue: 1、已经入队。2、下个方块为rock。3、越界。判断队列退出:1、队列为空(无解)。2、到达E点(得出解)。AC代码#include <iostream>#include <stdio.h>#inclu...转载 2019-04-04 21:11:54 · 86 阅读 · 0 评论 -
POJ-3278 Catch That Cow
bfs+queue写法一//Accepted 736K 0MS C++ 1017B 2012-11-10 04:24:09//#include"pch.h"//#pragma warning(disable:4996);#include<iostream>#include<queue>#include<cstring>#include<st...原创 2019-04-05 11:56:10 · 149 阅读 · 0 评论 -
POJ 3279 Fliptile
题目通道解法先枚举第一行的翻转的所有情况。再根据第一行的枚举情况,综合,黑板的分布,确定下一行的翻转情况。前提是保证上一行的板块都是白。接着枚举下一行,直到最后一行为止。到最后一行时,已经确定了所有翻转情况,已经能确定前n-1行全部是白的,如果这时n行全部是白的,说明这个解是成立的。AC代码//#include"pch.h"//#pragma warning(disable:499...转载 2019-04-05 16:55:16 · 73 阅读 · 0 评论 -
POJ 1426 Find The Multiple
题目通道题解代码#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;bool vis;int n;void dfs(unsigned __int64 x,int n,int k){ if(vis) ret...转载 2019-04-05 22:07:07 · 67 阅读 · 0 评论 -
素数筛法四种(包含时间比较)
法一#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream>#include<map>#include<vector>#include<cstdio>#include<i...原创 2019-04-07 22:11:23 · 171 阅读 · 0 评论 -
STL中的map的用方法
1、什么是map?映射。可以多对一。 但是不可以一对多可用< int , char > < int ,string> < string, int > 2、map的优势1、根据key值快速查找记录,查找的复杂度基本是Log(N)2、快速插入Key -Value 记录。3、快速删除记录4、根据Key 修改value记录。3、如何插入...转载 2019-04-02 17:06:55 · 138 阅读 · 0 评论 -
FZU 2150 Fire Game(暴力双起点+bfs)
题目通道解题思路先暴力取两个点,这里的n和m的上限都很小,不会炸。接着双起点bfs,把草烧到无法再烧的程度( 全部草烧着了,或许有些草无法被点燃 )。此时已经点燃的草vis的值是1。记录烧的最大时间 temp。再判断,草坪上的草是不是全部烧着了,状态(是草,是烧着了,对应的变量是 grid[i][j] == ‘#’ 和 vis[i][j] == 1 )。如果全部草烧着了, ans=min(an...转载 2019-04-11 17:53:22 · 129 阅读 · 0 评论 -
POJ 3087 Shuffle'm Up 解题报告
题目通道部分题目The single resultant stack, S12, contains 2 * C chips. The bottommost chip of S12 is the bottommost chip from S2. On top of that chip, is the bottommost chip from S1. The interleaving proces...转载 2019-04-08 20:52:15 · 62 阅读 · 0 评论 -
POJ 3414 Pots 解题报告
题目通道AC代码#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream>#include<map>#include<vector>#include<cstdio>#inclu...原创 2019-04-09 16:23:06 · 164 阅读 · 0 评论 -
P1013 进制位 洛谷
题目通道题解代码#include<bits/stdc++.h>using namespace std;map<char,int> a;//储存该字母在两位数个位中出现的次数 map<char,int> total;//储存这个字母这一行有几个两位数 char le[10];string x,y;int main(){ int n,i,j;...转载 2019-04-03 20:11:33 · 177 阅读 · 0 评论 -
POJ-1321 棋盘问题
题目地址题解dfs基本模板,需要注意结束条件并不单一。解法一#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream>#include<map>#include<vector>#inc...原创 2019-04-03 20:17:12 · 76 阅读 · 0 评论 -
POJ 1502 MPI Maelstrom 解题报告
Question linkDijkstra#include<iostream>#include<queue>#include<cstring>#include<string>#include<sstream>#include<map>#include<vector>#include<cstd...原创 2019-04-20 19:30:21 · 108 阅读 · 0 评论