匈牙利算法样例程序 格式说明 输入格式: 第1行3个整数,V1,V2的节点数目n1,n2,G的边数m 第2-m+1行,每行两个整数t1,t2,代表V1中编号为t1的点和V2中编号为t2的点之间有边相连 输出格式: 1个整数ans,代表最大匹配数 //邻接矩阵-C #include <stdio.h> #include <string.h> int n1,n2,m,ans; //n1 表示左边有n1 个元素, n2 表示右边有n2个元素 ]; //记录V2中的点匹配的点的编号 ];…
这是一个绝妙的比喻,如果青岛二中的台阶上每级站一只平度一中的猫,差不多站满了吧 自己的理解 [2016-12-31] [主席树] http://www.cnblogs.com/candy99/p/6160704.html 就是可持久化线段树,对于每个版本建立一颗线段树,可以查询历史版本 为了节省内存和时间直接使用历史版本的形态,把修改的地方沿途新开节点,其他地方继承历史版本 主席树就是前缀和套线段树,每个前缀和建立一颗线段树,继承上一个历史版本,只是单点修改 区间修改也一样,所有区间修改到的点都…
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 38780    Accepted Submission(s): 12797 Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats gu…
现在是晚上十二点半,好累(无奈脸),接着给各位——也是给自己,更新笔记吧~ 序列型状态划分: 经典例题:乘积最大(Luogu 1018) * 设有一个长度为 N 的数字串,要求选手使用 K 个乘号将它分成 K+1 个部分,找出一种分法,使得这 K+1 个部分的乘积能够为最大.* 例如,有一个数字串: 312,当 N=3, K=1 时会有以下两种分法:1 3×12=362 31×2=62* 符合题目要求的结果是: 31×2=62* 现在,请你帮助你的好朋友 XZ 设计一个程序,求得正确的答案.*…
最近有机会参加微软面试前的英语集训. 第一天是由wendy老师主讲.热场题目是介绍你自己.包括你的姓名,家庭hobby,爱好,专业,学校,工作经历等等. 接下来的主题是friendship.给我印象较深的是wendy让我们想一想关于朋友的好的.正面的词汇有哪些.同学们都想了好多,比如honest,open-minded,humorous,frank,ambitious,generous,responsible,considerate,optimistic,imaginative,thoughtf…
以下资料来自:http://blog.csdn.net/Dinosoft/article/details/6795700 http://qianmacao.blog.163.com/blog/static/203397180201222945212647/ http://blog.csdn.net/qinmusiyan/article/details/7950642# HDU 1850 Being a Good Boy in Spring Festival   下面是一个二人小游戏:桌子上有M堆…
以下资料摘自 http://www.cnblogs.com/wally/archive/2012/07/13/hdu1028_1085_1171_.html 生成函数是说,构造这么一个多项式函数g(x),使得x的n次方系数为f(n). 对于母函数,看到最多的是这样两句话: 1.“把组合问题的加法法则和幂级数的乘幂对应起来.” 2.“把离散数列和幂级数一 一对应起来,把离散数列间的相互结合关系对应成为幂级数间的运算关系,最后由幂级数形式来确定离散数列的构造. “ 例子: 有1克.2克.3克.4克砝…
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3324 http://blog.csdn.net/xymscau/article/details/6776182 #include<cstdio> #include<cstring> #include<string> #include<queue> #include<iostream> #include<algorit…
http://acm.hdu.edu.cn/showproblem.php?pid=2546 http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=3361 http://blog.sina.com.cn/s/blog_5123df350100e8p8.html http://blog.sina.com.cn/s/blog_51cea4040100gvn3.html http://blog.csdn.net/wukon…
终于开始DP了] HDOJ_1159  Common  Subsequence 题目链接 Sample Input abcfbc abfcab programming contest abcd mnp Sample Output   4   2   0 子结构特征: lf(i,j)=  f(i-1,j-1)+1 (a[i]==b[j]) max(f(i-1,j),f(i,j-1)) (a[i]!=b[j]) 由于f(i,j)只和f(i-1,j-1), f(i-1,j)和f(i,j-1)有关, 而…
改革春风吹满地 Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accepted Submission(s): Problem Description “ 改革春风吹满地, 不会AC没关系; 实在不行回老家, 还有一亩三分地. 谢谢!(乐队奏乐)” 话说部分学生心态极好,每天就知道游戏,这次考试如此简单的题目,也是云里雾里,而且,还竟然来这么几句打油诗. 好呀,老师的责任就是帮…
例:(2050)折线分割平面 问题描述: 平面上有n条折线,问这些折线最多能将平面分割成多少块? 样例输入 1 2 样例输出 2 7 平面上有n条折线,问这些折线最多能将平面分割成多少块? 解: 折线反向延伸就是相交线 ,n条相交线分割平面的块数最多为 F(n) =2n(2n+)/ + 由于反向延伸而增加的平面数为 g(n)= +(n-) - =2n 所以 f(n)= F(n)- g(n) =2n^ -n + .“佐罗”的烦恼 说起佐罗,大家首先想到的除了他脸上的面具,恐怕还有他每次刻下的“Z”…
Day_6 计算几何 点积\Large 点积点积 叉积\Large 叉积叉积 极角\Large 极角极角 < π\piπ :叉积判断 else :atan2 旋转\Large 旋转旋转 左乘第一类正交矩阵 [cos θ−sin θsin θcos θ][cos ωsin ω]=[cos θ cos ω−sin θ sin ωsin θ cos ω+cos θ sin ω]=[cos(θ+ω)sin(θ+ω)]\left[ \begin{array}{} cos\ \theta & -sin\…
学习体会: 在参加这次集训之前我自己学过一段时间的Python,看过老男孩的免费视频,自我感觉还行,老师写的代码基本上都能看懂,但是实际呢?....今天是集训第一次交作业的时间,突然发现看似简单升级需求,自己硬是一点思路没有,慢慢的想了想,有了点思路,但是发现想用列表时,却忘了有哪些方法,想到用文件存储用户信息,文件操作竟然也忘了,通过查找之前笔记和网上资料,最后终于磕磕绊绊把程序写完了,虽然写完了,但思路感觉还不太清晰,看来以后真的要多练了,光看不练真的不行. 另外之前也记过一些笔记,之前有记…
题目描述 Description 今年是国际数学联盟确定的“2000――世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加.活动中,主持人给所有参加活动的选手出了这样一道题目: 设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大. 同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子: 有一个数字串:312, 当N…
Day -4 训练戳SX2019 3月训练 ZJOI2019 Day1几天前就考了 T1真考了麻将QwQ 九条可怜的毒瘤真的是业界良心 今天中午才起,要开始调整生物钟了 9012HBOIers群里讨论了一整天Quank大爷的GuOJ/HBOJ 窝没啥兴趣只知道锅有点儿多 下午去了机房不过也一直在颓 好像去年NOIP之前也有段时间状态跟现在一样 感觉有好多事要做,但又不知道做啥 考前学新的东西不太合适,复习旧的芝士又觉得还剩下几天没啥动力 刷不动题,写不动代码 晚上CF有场愚人节赛也不想熬夜打又不…
震惊,新的功能:可以按Ctrl + F 进行关键字查询. \(update\) on 10.26:把这两个月的日报也加入进去了,并且修复了几个错误. 本文会把小编用过的博客和比较好的博客放在这里. 可能分类不是很好. \(update\) on 10.9: 突然发现未公开,现在公开了. 关于我原来的博客,给一个博客链接吧. 图论 用最通俗的语言让你学会网络流 SPFA算法教学 初探tarjan算法(求强连通分量) dijkstra 详解 最大流与Dijkstra做费用流 浅析最近公共祖先(LCA…
震惊,新的功能:可以按Ctrl + F 进行关键字查询. \(update\) on 10.26:把这两个月的日报也加入进去了,并且修复了几个错误. 本文会把小编用过的博客和比较好的博客放在这里. 可能分类不是很好. \(update\) on 10.9: 突然发现未公开,现在公开了. 关于我原来的博客,给一个博客链接吧. 图论 用最通俗的语言让你学会网络流 SPFA算法教学 初探tarjan算法(求强连通分量) dijkstra 详解 最大流与Dijkstra做费用流 浅析最近公共祖先(LCA…
loj6068. 「2017 山东一轮集训 Day4」棋盘 链接 https://loj.ac/problem/6068 思路 上来没头绪,后来套算法,套了个网络流 经典二分图 左边横,右边列 先重新算一下行和列,就是他们x相通的的算一个 然后就去掉了障碍的作用 然后每一行贡献是递增的(0,1,2,3,4---) 直接暴力连上每条可能有的流量为1的边就行了 下面的图可能没啥用就是个普通二分图 错误 有的数组开小了 有的memset(1e6) T成40 代码 #include <bits/stdc…
二分图? 不存在奇环(长度为奇数的环)的图 节点能黑白染色,使得不存在同色图相连的图 这两个定义是等价哒. 直观而言,就是这样的图: 二分图有一些神奇的性质,让一些在一般图上复杂度飞天的问题可以在正常时间得到解.(这就是我们研究它的原因鸭!) 然后是一些可能会用到的定义(确实用到了 还搞得人一头懵逼QAQ 匹配:图中边的一个子集,使这些边没有公共顶点. 当边数最大化的时候,称这个边集为一组最大匹配. 独立集:图中点的一个子集,使点的导出子图中不存在边. 人话:选一些点,使得中间任意两个点之间没有…
目录 WC集训DAY2笔记 组合计数 part.1 基础知识 组合恒等式 错排数 卡特兰数 斯特林数 伯努利数 贝尔数 调和级数 后记 补完了几天前写的东西 WC集训DAY2笔记 组合计数 part.1 今天开 幕 雷 击:PKUWC没过 UPD:THUWC也没过,听说群友380过了,也是高一,我378...,WC集训完可以愉快地vanyousee了(呜呜呜 UPD2:由于我在弱校,是高中rk1(黄神MLE了...),苟进了NOIWC 写笔记,就是记结论的意思 基础知识 组合恒等式 \[ 2^n…
Day_1 计数 它咕掉了 Day_1 序列数据结构 它咕掉了 Day_2 线性代数 高斯消元\Large{高斯消元}高斯消元 普通版:略 模质数:求逆 模合数:exgcd 逆矩阵\Large{逆矩阵}逆矩阵 AA−1=I=[10⋯001⋯0⋮⋮⋱⋮00⋯1] AA^{-1}=I=\left[ \begin{matrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots &…
前言 呜,好久没写博客了,DDL 也有好多,一不留神就轮到我了呜. 看了一眼其它同学写的博客,什么数模啊,什么 CTF 啊,什么 Python 爬虫啊,感觉自己真是越来越菜了呜. 然后在我一愁莫展之际,我突然发现,我去年开学初还有一篇写了一半的博客没有发. 于是我就把它补全重新排了下版然后扔上去敷衍部长了 本帖为蓝书(<算法竞赛入门经典训练指南>)中 5.5二分图匹配 相关内容的自学笔记 对书中大多数难懂的内容如最佳完美匹配做了详细的解释并加上了自己的理解 (毕竟原文是真的谜语人) 可能大概似…
题意 链接 Sol 第一次做在二分图上博弈的题..感觉思路真是清奇.. 首先将图黑白染色. 对于某个点,若它一定在最大匹配上,那么Bob必胜.因为Bob可以一直沿着匹配边都,Alice只能走非匹配边.到最后一定是Alice不能移动. 否则Alice必胜.这个我不会证,但是又举不出反例来qwq.手玩了几个数据发现Alice总会有一种方法走某个非匹配边干掉Bob. 那么如何找不一定在最大匹配上的点呢?首先求出一个最大匹配,结论是从所有不在最大匹配上的点开始dfs,通过交叉边(目标点的匹配边)走到点都…
题目 1  问题转化: 求二分图最小点覆盖(覆盖所有的边) 2  问题的解决: 二分图最小点覆盖==其最大匹配数 3   证明: 链接 =#include <bits/stdc++.h> using namespace std; ; vector < vector <int> > g(N); int match [N]; bool visit[N]; int n; bool dfs (int x) { ;i<g[x].size();i++) { int t=g[x…
题意 题目链接 分析 二分图博弈经典模型,首先将棋盘二分图染色. 考虑在某个最大匹配中: 如果存在完美匹配则先手必败,因为先手选定的任何一个起点都在完美匹配中,而后手则只需要走这个点的匹配点,然后先手只能再找一个匹配点,所以先手必败. 从非匹配点出发先手必胜:后手只能走到匹配点(否则不是最大匹配),之后先手只需要一直走匹配边即可.从匹配点不可能走到非匹配点(否则存在增广路,与最大匹配矛盾),所以先手必胜. 记状态 1 表示一定在最大匹配中,0 表示不一定.我们发现只要一个点状态为 0,从这个点出…
题意:有n个人,要彼此认识.选择一个集合,使得集合里的每个人相互不认识.求集合中人数的最大值. 求二分图的最大独立集. 公式:最大独立集=顶点数-最大匹配 这个题目中因为集合是一个,所以求出最大匹配数后要除以2. #include<iostream> #include<cstring> #define maxn 1005 using namespace std; int n; int map[maxn][maxn],used[maxn],match[maxn]; void init…
目录 1 问题描述 2 解决方案   1 问题描述 何为二分图的最大权匹配问题? 最大权二分匹配问题就是给二分图的每条边一个权值,选择若干不相交的边,得到的总权值最大. 2 解决方案 对于此问题的讲解,引用文末参考资料1: 解决这个问题可以用KM算法.理解KM算法需要首先理解“可行顶标”的概念.可行顶标是指关于二分图两边的每个点的一个值lx[i]或ly[j],保证对于每条边w[i][j]都有lx[i]+ly[j]-w[i][j]>=0.如果所有满足lx[i]+ly[j]==w[i][j]的边组成…
目录 1 问题描述 2 解决方案   1 问题描述 何为二分图的最大匹配问题? 引用自百度百科: 首先得说明一下何为匹配: 给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附于同一个顶点,则称M是一个匹配. 极大匹配(Maximal Matching)是指在当前已完成的匹配下,无法再通过增加未完成匹配的边的方式来增加匹配的边数.最大匹配(maximum matching)是所有极大匹配当中边数最大的一个匹配.选择这样的边数最大的子集称为图的最大匹配问题. 特别注意:二分图…
定义 左边一堆点 右边一堆点 树是一个二分图,奇数深度和偶数深度可以组成二分图, 二分图匹配 左边的点和右边的点有边 匈牙利算法 可能的答案 ans,n-ans,m-ans,n+m-ans  ||  组合 //n点 m边…