- 博客(5)
- 收藏
- 关注
原创 快速维护一个排列两边比他大的数字的位置
考虑从小到大枚举xx,每次维护一个链表,链表里只有>=x>=x的数,那么往左往右找只要暴力跳k次,删除也是O(1)的hdu 6058 Kanade’s sum#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <stack>#include <
2017-08-02 11:07:03
257
原创 HDU 3038 How Many Answers Are Wrong
题意:有n个点,m条信息。每条信息的内容是两个点之间的和的大小。求有多少条信息与上面的信息是矛盾的。思路:a到b 的大小为s,可以理解为b -(a-1) 为s#include<cstdio>#define MAX 200005int f[MAX];int v[MAX];//到根节点的距离int ans;int finds(int x){ if(f[x]==-1)return
2016-07-19 13:11:27
177
原创 poj Silver Cow Party
这题是从起点出发到达目的地后返回,所求的是所有路径中的最大值。 答案:n-1头牛出发抵达目标X的路+目标X再返回个点。返回很简单,只要使用dijkstra就可轻松解决。出发其实只要将这个矩阵转置,再用dijkstra就可以得到。这就像是将路的方向反向后再求X到个点的路。 下面贴代码 poj Silver Cow Party:#include<cstdio>#include<algorithm
2016-07-15 21:39:07
228
原创 poj Frogger&&Heavy Transportation
这两道题比较类似所以我就把它们放在一起了。 Frogger:要求从起点到达目的地的路径上,使其步伐最小。 Heavy Transportation:要求从目的地到达所有终点的过程中,权值最小的一条边的权值尽可能大。所使用的算法类似dijkstra算法,更新的条件有所不同。我先贴上第一道题的代码:#include<cstdio>#include<cmath>#include<algorithm
2016-07-15 21:24:22
233
原创 poj2387 Til the Cows Come Home
题意:有n个点,求从1到n的最短路径。这里使用了Dijkstra算法,使用邻接矩阵来实现的复杂度是O(n^2)。主要思想是通过不断寻找与起点距离最小的点,然后更新与该点所相连的点的值,直到所有点都访问完了以后结束。代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define MAXN
2016-07-13 18:23:46
214
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人