05 2015 档案
摘要:一个水题WA了60发,数组没开大,这OJ也不提示RE,光提示WA。。。。。。思路:先求出最短路,如果删除的边不是最短路上的,那么对结果没有影响,要有影响,只能删除最短路上的边。所以枚举一下最短路上的边,每次求最短路即可。#include#include#include#include#include...
阅读全文
摘要:写的很丑的字典树。听王大神的话 需要改进。#include#include#include#includeusing namespace std;struct nn{ int zero; int one;}node[320005];int findd[35];int main(){ ...
阅读全文
摘要:接触图论一个月了,学了拓扑排序、 最小生成树的两种写法,最短路的三种写法、差分约束系统,但总觉得网络流,支配集,独立集,匹配,连通性才是图论的精髓,出题应该就是出这些知识点,但是依旧没有学过............一个月中别的内容一点也没有学,蓝桥杯全国赛即将来袭,目测要完蛋!
阅读全文
摘要:最短路+二分。对容量进行二分,因为容量和时间是单调关系的,容量越多,能用的边越少,时间会不变或者增加。因为直接暴力一个一个容量去算会TLE,所以采用二分。#include#include#include#include#include#includeusing namespace std;const...
阅读全文
摘要:最短路+记忆化搜索#include#include#include#include#includeusing namespace std;const int maxn = 1003;const int INF = 0x3f3f3f3f;vectorljb[maxn];int jz[maxn][max...
阅读全文
摘要:DescriptionInk最近得到了一张藏宝图,这张图上共有n个藏宝室,但因为年代久远藏宝图上的路已经模糊不清,于是Ink找到了智慧的Pseudo,Pseudo告诉Ink,这个宝藏中每两个藏宝室之前都有一条通路,每条通路上都有一定数量的机关。现在Ink已经探明了其中n-1条路上的机关数目,这n-1...
阅读全文
摘要:按题意建立好二叉树,再按照先序遍历输出结果。#include#include#include#include#includeusing namespace std;struct node{ int left, right, date;}node[1005];int a[1005], flag[...
阅读全文
摘要:floyd算法好像很奇妙的样子。可以做到每次加入一个点再以这个点为中间点去更新最短路,效率是n*n。#include#include#include#include#includeusing namespace std;const int maxn = 305;const int INF = 0x7...
阅读全文
摘要:floyd算法。这题目比较操蛋,首先INF需要比较大,我选择了INF = 0xffffffffffffff。还有一点就是%lld会挂掉的,用%I64d才能AC。#include#include#include#includeusing namespace std;const int maxn = 1...
阅读全文
摘要:Flody多源最短路#include#include#include#include#include#include#includeusing namespace std;const int maxn=35;mapzh;string s,s1,s2;double jz[maxn][maxn],A[m...
阅读全文
摘要:差分约束系统。#include#include#include#include#include#include#includeusing namespace std;const int maxn = 50005;map jz[maxn];vectorljb[maxn];int dist[maxn],...
阅读全文
摘要:今天刚刚学差分约束系统。利用最短路求解不等式。世界真的好奇妙!感觉不等式漏下几个会导致WA!!#include#include#include#include#include#includeusing namespace std;const int maxn = 1111;vectorljb[max...
阅读全文
摘要:SPFA+枚举。每条边的权值都设置一次为0 用一次SPFA,算出最短路,每次的最短路取最小值就是答案。#include#include#include#include#include#include#include#include#includeusing namespace std;const i...
阅读全文
摘要:#include#include#include#includeusing namespace std;int mapp[111][111];int uu[111][111];struct abc{ int x, y, hh; } node[111 * 111];bool cmp(const abc...
阅读全文
摘要:最短路问题稍微复杂了一点,松弛的时候多判断一些条件就可以了。第一次用SPFA写最短路。#include#include#include#include#include#includeusing namespace std;const int maxn = 305;vector cost[maxn][...
阅读全文
摘要:求出根节点到每个叶子节点的距离,找到最大的。然后总权值减去最大叶子距离就是答案。GNU C++ ACVisual C++ TLE#include#include#include#includeusing namespace std;const int maxn = 111111;vector ljb...
阅读全文
摘要:#include#include#include#includeusing namespace std;char s[20];long long t, y;long long gcd(long long a, long long b){ long long t; while (b) ...
阅读全文
摘要:迪杰斯特拉最短路径。1.every city must wait till all the goods arrive, and then transport the arriving goods together with its own goods to the next city. 这个条件貌似...
阅读全文
摘要:迪杰斯特拉单源最短路算法。对成语进行预处理。做出邻接矩阵即可。#include#include#include#includeusing namespace std;const int maxn = 1005;int c[maxn], len[maxn], cost[maxn][maxn], fla...
阅读全文
摘要:Dijkstra单源最短路算法#include#include#include#includeusing namespace std;const int maxn = 205;int cost[maxn][maxn];int n, m, u, v, c, su, eu;int mincost[max...
阅读全文
摘要:先用DFS求出全组合,然后每个组合求最小生成树。#include#include#include#includeusing namespace std;int n, m, summ;int u[10000][20];int t[20], ff[20], nodecost[20], father[20...
阅读全文
摘要:2018.04.05 update: 今天无意间重新翻开了博客发现了这个历史遗留问题,已经知道是卡特兰数了,但由于取模的数不是素数啊。。。好像还是不太会做。 不会做。打表打不起来,只知道规律。 规律: a[i][1]=i; a[i][i]=a[i][i-1]; a[i][j]=a[i-1][j]+a
阅读全文
摘要:每个连通分量最多只有一个环,求怎么连接使费用最大按费用从大到小排序,一条一条加边,连接一个集合内两个点的时候,判断这个集合之前有没有成环,连接两个集合的时候,判断两个集合的状态,如果都没有,则合并后也没有环,如果有一个有环,合并有也有环,如果两个都有环,则不能合并。#include#include#...
阅读全文
摘要:最小生成树,刚刚学了Prim算法。对每条边变的权值进行预处理,c[i][j] = c[i][j] + p[i] + p[j] 其中c[i][j]为输入的权值,p[i],p[j]为连接这两个节点所需的费用。#include#include#include#includeusing namespace ...
阅读全文
摘要:最小生成树,用了Kruskal算法。POJ上C++能过,G++不能过。。。 算出每两个圆心之间的距离,如果距离小于两半径之和,那么这两个圆心之间的距离直接等于0,否则等于距离-R[i]-R[j]。#include#include#include#includeusing namespace std;...
阅读全文
摘要:拓扑排序。深刻体会:ACM比赛的精髓之处不在于学了某个算法或数据结构,而在于知道这个知识点但不知道这个问题可以用这个知识去解决!一看题目,根本想不到是拓扑排序。T_T......#include#include#include#include#includeusing namespace std;i...
阅读全文
摘要:map水过去了,240ms的样子。。。用字典树应该比map快多了吧。#include#include#include#include#includeusing namespace std;map abc;char s[50005][1000];int main(){ char k[1000];...
阅读全文
摘要:卡特兰数*阶乘就是答案 第一次用java。。高精度写起来好快。。。。不过代码比较丑。。import java.math.BigInteger;import java.util.Scanner; public class Main{ public static void main(St...
阅读全文
摘要:算了前三项.....发现是个大水题。。。#includeint main(){ int n; while (~scanf("%d", &n)) { double k = 1.0*n; printf("%lf\n", k+1); } retur...
阅读全文
摘要:给四个数 问能不能算出24点。。。我的方法比较烂。。。920ms 差点TLE。应该有更好的方法。#include#include#include#includeusing namespace std;double a[5], ff[5], n;double rt[30][5], yy[5];int ...
阅读全文
摘要:并查集。从后往前加边。#include#include#include#includeusing namespace std;const int maxn = 1000000 + 10;int father[maxn], u[maxn], v[maxn], Q, q[maxn], ans[maxn]...
阅读全文
摘要:字典树。建树的过程中,一边建树一边判断有没有重复前缀的。#include#include#include#includeusing namespace std;char s[1000]; int i, j, summ;struct nn{ int tot, ling, yi; }dt[50000];...
阅读全文
摘要:数学题目。折腾了一天,这种方法不是最好的,不过按照自己的第一直觉的方法AC还是很开心的。#include#include#include#includeusing namespace std;struct abc{ int start, end;}dt[5000000];bool cmp(co...
阅读全文
摘要:对于每个输入的站点求出所有点到这个站点的最短路。用anss数组存下来,然后就可以用anss数组求出答案了。题目分析清楚了 还是比较水的,折腾了一早上。。#include#include#include#include#include#includeusing namespace std;struct...
阅读全文