图论
青云66
既然点进来,就顺便关注一下,谢谢
展开
-
蓝桥杯第十届迷宫(学霸的迷宫)---dfs和bfs两种(一种巧妙地做法)
30 500101010100101100100101011001011010010000100010101000001000100000101010010000100000001001100110100101011110110100100010000011010010111000110000000100000100000000101010001101000010100000101010...原创 2020-02-07 22:18:55 · 554 阅读 · 0 评论 -
poj2676 Sudoku 数独(一种简单的做法)
又是一种有趣的dfs读题我们可以知道:0上要填的数应该是该行、该列和方块(33)中都未出现的数字这是我们机会想先做一个check函数,用来检查填的数是否合格这里的难点是方块(33)如何判断,这就需要我们常用的数学,x本身减去x%3,结果就是它第一个数字。通过这种方式,我们可以确定(x,y)所在位置的方块的首地址int check(int x,int y,int num){ for(in...原创 2020-01-30 20:57:05 · 247 阅读 · 0 评论 -
[poj 1416]暴力dfs--我果然太菜
切碎公司时限: 1000MS 内存限制: 10000K提交总数: 7356 接受的: 3972描述您刚刚负责为碎纸公司开发新的碎纸机,尽管“正常”的碎纸机会将纸片切成小块,以使内容物变得不可读,但这种新的碎纸机需要具有以下与众不同的基本特征。1.切碎机将目标编号和上面写有编号的纸张作为输入。2.它将纸张切成薄片(或切成薄片),每个薄片上都有一个或多个数字。3.写在每件作品上的数字...原创 2020-01-28 20:50:26 · 230 阅读 · 0 评论 -
最大割详解poj-2531Network Saboteur(网络破坏者)
什么是最大割你可以简单理解为:割是图中定点的一个划分,它把图中的所有顶点划分成两个顶点集合S和T。最大割就是令这两个集合之间割线权值最大例如红色圈中的两条边之和就是最大割左边为S集合,右边为T集合做法分成两个子集S和T,一开始所有的点都在S集合里面,DFS遍历(回溯法)判断每一个点是继续留在S集合还是移动到T集合里面去,继续留在S里面的话对现有的代价总和没有影响。移动到集合T的...原创 2020-01-27 23:16:00 · 2909 阅读 · 3 评论 -
[HAOI2006]受欢迎的牛---强连通分量加缩点
题目描述每头奶牛都梦想成为牛棚里的明星。被所有奶牛喜欢的奶牛就是一头明星奶牛。所有奶牛都是自恋狂,每头奶牛总是喜欢自己的。奶牛之间的“喜欢”是可以传递的——如果A喜欢B,B喜欢C,那么A也喜欢C。牛栏里共有N 头奶牛,给定一些奶牛之间的爱慕关系,请你算出有多少头奶牛可以当明星。输入格式:第一行:两个用空格分开的整数:N和M第二行到第M + 1行:每行两个用空格分开的整数:A和B,表示...原创 2020-01-23 12:18:38 · 200 阅读 · 0 评论 -
强连通------tarjan算法详解及与缩点联合运用
@强连通基本定义什么是tarjan算法?(如何求强连通)1.首先定义两个数组dfn和low,dfn[x]表示x节点是第几个被遍历到的。low[x]表示包含x在内的强连通分量的dfn的最小值。(也就是说这个强连通分量中最早被遍历到的)2,我们用一个栈stack来存储遍历到的点,再定义一个数组vis[],把当前搜到的点的入栈标记为vis[x]=1。3,对于每一个当前节点的子节点,如果之前没...原创 2020-01-22 15:59:37 · 276 阅读 · 0 评论