10 2020 档案

摘要:P1361 小M的作物 建图好题。 思路: 看得出来还是经典的两者取一模型,也就是找出一种割边方式,将点划分为两个集合,且割边花费最小。但是给出的是收益而非费用,怎么办呢? 最大收益=总收益-最小损失。 总收益就是把题目给出的种A地种B地的收益以及组合的bonus全部加起来。最小损失就是跑最大流(= 阅读全文
posted @ 2020-10-30 19:55 StreamAzure 阅读(70) 评论(0) 推荐(0)
摘要:[SHOI2007]善意的投票 思路 把小朋友视为点,“不睡午觉”和“睡午觉”这两种结果作为源点和汇点。 要求冲突数最小,即找出一种割边方式使点划分为两个集合,且割掉的边数最小。 将想“不睡午觉”的小朋友与源点连一条边$s→i$,如果割掉了这条边表示这个小朋友与自身意愿冲突;同理,将想“睡午觉”的小 阅读全文
posted @ 2020-10-30 17:38 StreamAzure 阅读(74) 评论(0) 推荐(0)
摘要:[USACO5.4]奶牛的电信Telecowmunication 思路 最小割模型。但需要注意的是本题要割掉的是点而不是边,直接跑最大流板子是不行的。 为了将删点转化为删边,只需将原图中每个点拆分成入点$i$和出点$i+n$,原图中所有指向点$i$的边都应指向入点$i$,原图中所有从点$i$出发的边 阅读全文
posted @ 2020-10-30 15:42 StreamAzure 阅读(92) 评论(0) 推荐(0)
摘要:ST表 导入 RMQ(Range Mininum/Maxnum Query):即区间最值查询。对于长度为$N$的数组$A$,有若干次询问$RMQ(i,j)\(,回答下标区间\)[i,j]$内的最大/最小值。 ST表可以很好地解决此类问题,预处理复杂度$O(NlogN)$,查询$O(1)$。 预处理 阅读全文
posted @ 2020-10-28 11:18 StreamAzure 阅读(104) 评论(0) 推荐(0)
摘要:LCA 解法一:Tarjan 【O(n+q)】 流程 初始化fa[i]=i,vis[i]=0. 从树根开始DFS,标记当前搜索中的节点$v$vis[v] = -1。然后搜索其满足$vis[i]=0$的所有子节点$i$。当一个节点$v$的所有子节点均被搜索过(或无子节点)时,则用并查集的合并操作,令$ 阅读全文
posted @ 2020-10-27 17:11 StreamAzure 阅读(145) 评论(0) 推荐(0)
摘要:基于CNN的手写数字识别程序 一、数据准备 训练及测试数据采用Tensorflow官方提供的MNIST数据集,具体内容如下表所示: 文件 内容 图片信息 大小为28*28的灰度手写数字图像,数字从0到9 train-images-idx3-ubyte.gz 训练集图片,55000张训练图片,5000 阅读全文
posted @ 2020-10-23 23:56 StreamAzure 阅读(1119) 评论(0) 推荐(0)
摘要:【模板】2-SAT 问题 通用做法:拆点+Tarjan求强连通分量。将点$i$拆为$i$和$i+n$,分别表示$i$为假以及$i$为真。注意这个顺序不能搞反,否则求可行解的时候会出错。 连边: 本题中给出的命题为:“$x$为$a$或$y$为$b$”。以“$x$为真或$y$为假”为例,连边时作以下考虑 阅读全文
posted @ 2020-10-22 17:55 StreamAzure 阅读(96) 评论(0) 推荐(0)
摘要:UVA1108 Mining Your Own Business 题意:在一个无向图上选择尽量少的点涂黑,使得删除任意一个点后,每个连通分量里都至少有一个黑点。 分析:对于每一个双连通分量,以割点数量分情况讨论: 0个割点:不能与其他双连通分量的黑点连通,因此至少需要设2个黑点,方案为任选其中两个节 阅读全文
posted @ 2020-10-20 14:48 StreamAzure 阅读(110) 评论(0) 推荐(0)
摘要:UVA1364 Knights of the Round Table 题意:求无向图$G$上不在任何一个简单奇环上的点的个数。 分析:首先知道两个定理: 若双连通分量$C$含奇环,则$C$上任意一个点都位于奇环上(不一定是同一个奇环)。 若双连通分量$C$不含奇环,则它一定是个二分图,反之也成立。 阅读全文
posted @ 2020-10-20 11:36 StreamAzure 阅读(153) 评论(0) 推荐(0)
摘要:P1137 旅行计划 思路:缩点+DAGdp,与模板有所区别的是,本题求的是“以节点$i$为终点的最长路”。将缩点之后的新图反向建边,即可直接用“以节点$i$为起点的最长路”的DAGdp。 #define mem(a,n) memset(a,n,sizeof(a)) #define f(i,a,b) 阅读全文
posted @ 2020-10-15 15:06 StreamAzure 阅读(92) 评论(0) 推荐(0)
摘要:UVA11324 The Largest Clique 思路:强连通分量缩点转化DAG+DAG上的DP 解法一:记忆化搜索 #define mem(a,n) memset(a,n,sizeof(a)) #define f(i,a,b) for(int i=a;i<=b;i++) #define af 阅读全文
posted @ 2020-10-14 18:24 StreamAzure 阅读(88) 评论(0) 推荐(0)
摘要:预备知识 强连通:对于图$(V,E)$上的两个顶点$u,v$,若存在从$u$到$v$的有向路径,同时也存在从$v$到$u$的有向路径,(注意有路径即可,也就是允许有中间顶点)则称这两个顶点强连通。 强连通图:若图$(V,E)$上的任意两个顶点都强连通,则称这个图为强连通图。 强连通分量:有向图的极大 阅读全文
posted @ 2020-10-14 18:20 StreamAzure 阅读(458) 评论(0) 推荐(0)
摘要:Johnson 全源最短路 特点 可求图上任意两点间的最短路,比Floyd快 支持负权图,且可判断负环 核心流程 创建超级源点0,并以0为起点向图中各结点建边,边权均为0. 以0为起点进行SPFA,求出节点0到各节点$i$的最短路,记为$h[i]$。由于SPFA的自身特点,这一步可以同时判断负环。 阅读全文
posted @ 2020-10-09 09:24 StreamAzure 阅读(161) 评论(0) 推荐(0)
摘要:预备知识 二分图:如果一张无向图$(V,E)$存在点集$A,B$,满足$|A|,|B|≥1$,\(A∩B=\empty\),\(A∪B=V\),且对于$x,y∈A$或$x,y∈B$,\((x,y)\notin E\),则称这张无向图为二分图,$A,B$分别为二分图的左部和右部。 图的匹配:对于一张无 阅读全文
posted @ 2020-10-07 18:23 StreamAzure 阅读(1917) 评论(0) 推荐(4)