算法
文章平均质量分 66
nonamenotitle
这个作者很懒,什么都没留下…
展开
-
[网络流24题-5] cogs739 运输问题
cogs739题目最小费用最大流问题;我们想要满足这样的一些条件:首先货物供需平衡,然后满足总运输费用最大、最小的条件。为了使得供需平衡,我们需要同时约束商店和仓库的货物运输,约束的方法是增加源点和汇点,在每个点的入边和出边中选择一个来约束它;于是就有这样的一个模型:增加超级源点s\mathcal s和超级汇点t\mathcal t,我们建立从s到商店容量为aia_i费用为0的边;对立的我们建立从每原创 2017-03-28 22:37:13 · 450 阅读 · 0 评论 -
[网络流24题-4]cogs729 圆桌聚餐
我发现我的网络流真的建模很差。。。。这题2星的难度,我觉得我完全可以做下来,但是最终还是无法设计出一个显式的方案,或者说两个限制条件没有结合起来;最终看了hzwer神犇的题解才明白。题目传送cogs729圆桌聚餐首先他说有mm个公司, 每个公司有pi(0≤i≤m)p_i(0 \le i \le m),有nn张桌子,每张桌子有容量ci(0≤i≤n)c_i(0\le i \le n) 求所有代表坐座位的原创 2017-03-26 16:10:18 · 441 阅读 · 0 评论 -
[网络流24题-3]cogs439 软件补丁(详解)
根本不是网络流的题。。。?不过算是有一个重要的思想吧,我之前怎样都不会想到这样的方式去建图。题目传送cogs439软件补丁题意看他的描述我是没懂的,看他的样例就差不多明白了。刚开始我没有意识到一个补丁是可以用多次的,看着数据小用了一个暴搜,结果答案不对;后来发现补丁可以用多次,就把标记数组给取消了,结果爆了栈,为什么呢?因为光是样例里面就有一个不需要任何错误也不需要任何错误存在的补丁,那么每一个状态原创 2017-03-26 11:47:39 · 536 阅读 · 0 评论 -
[网络流24题-2]cogs396魔术球问题
至于那个贪心的证明我是没整出来的。。。看了黑书,可能是我没有认真看吧。 最小路径点覆盖:用最少的边去覆盖尽可能多的点(全部)。黑书上介绍了一个求最小路径点覆盖的方法,很值得借鉴,那就是每个点ii转化为一个ii和i′i',当原图存在边(i,j)(i,j)时,连边(i,j′)(i,j'),求这个S−T\mathcal S-T割的最大二分图匹配,再用点数-这个值即为最小路径点覆盖。为什么呢?因为假定原创 2017-03-25 21:37:18 · 674 阅读 · 0 评论 -
[网络流24题-1]cogs14搭配飞行员
你们就当我又水了一贴吧。。。 纯二分图匹配。。匈牙利算法。。。#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <vector>#include <queue>using namespace std;const int maxn=20原创 2017-03-25 21:20:04 · 387 阅读 · 0 评论 -
UVa1479 - Graph and Queries图询问(Treap名次树)
为什么大家写200行的题我要写400行才过啊QAQ。。。。。 详解在代码注释中 这题真的写了好久 从自己写完到、调试到和刘汝佳的标程核对 前后花了半上午+一下午时间QAQ 程序见下 很长确实,但是可读性我觉得比别人是高了很多的#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <原创 2017-03-29 22:13:46 · 540 阅读 · 0 评论 -
非递归的n顶点m颜色点着色问题
这应该是普及组都应该会的玩意吧。。。 做组合数学的数学题时,做到了一个求6顶点4颜色点着色种数的题,恕我直言,我不会用漂亮的方法来做,然而我这个不氪金的网游一样的脑袋就想着去写个程序试试,结果发现我居然连深搜都无法写出正确结果。再加上昨天CF史上新低,居然一题都没过吓坏了我们学校的学长。是时候反思一下了,省选临近,虽然我是凑数的但是也不能掉以轻心啊。刚刚是读不读都没什么影响的前言,下面正文。如前面原创 2017-03-30 21:23:04 · 1065 阅读 · 0 评论 -
匈牙利算法模板
算是补档? cogs14裸二分图模板#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <vector>#include <queue>using namespace std;const int maxn=200;vector<int原创 2017-03-20 22:53:01 · 469 阅读 · 0 评论 -
POJ3709 K-Anonymous Sequence(k匿名序列)(斜率优化dp)
poj3709题目传送 看到这名字第一反应是那个面具 斜率优化的动态规划,第一次做斜率优化的dp题。。。而且自己也不会,是看着书慢慢弄懂的。书是《挑战》p341 ,这一面有很多错误,刚开始自己写完后照书上一对,一模一样后发现答案很不对,后来才发现书上的状态转移方程存在错误(在下面的公式里你自己对一遍就知道了) 总之就是,书上的不一定对,自己领悟并理解才最重要。首先不难得出,a0a_0是最小的值,原创 2017-03-13 23:08:08 · 925 阅读 · 0 评论 -
素数判定、埃氏筛法与整数分解
素数判定其实和数学里的判定没有过多的区别 只是要注意一定是i*i<=n 如果你用sqrt那玩意的话,可能会超时,具体是因为函数内部的实现和这个有点不同 这个大家应该都会,我这里就不献丑了 这里先说用vector去记录n的约数的方法(整数的分解)#include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm原创 2016-11-11 19:15:37 · 476 阅读 · 0 评论 -
网络流与dinic/Fulkerson模板以及相关题
膜板题 ->排水沟poj1273 网络流弄了将近一个月不过还是先总结一下吧一些概念一 网络流满足三个性质: 1 容量限制 每条边不能够提供大于其流量的边,(反向边要加上对应的增广流量是为了满足流量守恒) 2 对称性 f(u,v)=-f(v,u) 3 流量守恒 所有点的流入量等于流出量 通俗点说就是你不能从1号城市运3个冰球到2号,而运到2原创 2017-03-09 20:36:54 · 418 阅读 · 0 评论 -
Uva1401/LA3942 Remember the Word(trie模板)
LRJ书上例题,但是自己在思考过程中挺有收获。。。。 UVA1401题目直达 题目大意是拆解字符串,有几种方法。 简单思路:设dp[i]dp[i]为字符串从第i位开始的拆解方法;仔细一想的话就会发现这样的关系:dp[i]=∑j∈[1,S]dp[i+len[j]]dp[i]=\sum_{j\in[1,S]} dp[i+len[j]] 其中SS为单词总数,j为单词编号。 使用trie可以实现,原创 2017-03-20 23:05:58 · 368 阅读 · 0 评论 -
gcd欧几里德算法/extgcd扩展欧几里德算法以及在解不定方程中的应用
这个应该是我在noip前就应该会的东西 ,但是当时也许只是记下了代码吧 ,现在有诸多的不理解。后来借着书和几篇博客弄懂了并小证了一下,鉴于网上有些博客关于这个的写的真的不好看,所以自己来总结一下,顺带以后也能看。 顺带一提,gcd(a,b)gcd(a,b)表示a,b的最大公约数。欧几里德算法辗转相除法求最大公约数问题,同可求最小公倍数。 既然是辗转相除法,自然就是%%%,%到互相整除为止。代码也原创 2017-03-19 21:10:15 · 1381 阅读 · 0 评论 -
欧拉函数总结学习
你可以看这几篇欧拉函数了解一下,也可以看我的博客 继莫比乌斯反演以后 我又观摩了几个重要的数学知识,虽然自己面对大厦一般的数学还只是浅尝一勺而已。自己也发现不能被一些东西误导,更不能总用多疑的心去面对生活。扯远了,说一下这几个东西吧。欧拉函数欧拉函数:指小于等于n的正整数中与n互质的数的个数。用ϕ(n)\phi (n)表示欧拉函数。 性质 1 积性函数,这里不给证明。。 2 ϕ(1)=1\p原创 2017-03-18 00:32:15 · 704 阅读 · 0 评论 -
POJ3683 Priest John's Busiest Day(神父约翰的忙日)题解(2-SAT及布尔方程运用)
挑战程序设计竞赛p326例题 poj3683 (奶牛呢) 如果你还不了解布尔方程和蕴含式,请先移步蕴含式是什么和布尔方程简介,运算法则 有些很巧妙的地方和技巧、想要总结一下。 首先这题我们考虑到,每个仪式可以在开始或结束时举行,可以用一个有补的变量表示;这时想到了布尔变量,对于一个仪式,我们用xixi 表示它在刚开始时举行,若!xi!xi 则表示它在结束时举行。我们对于不同时发生的区间记为原创 2017-03-11 00:11:36 · 764 阅读 · 0 评论 -
多重背包(单调队列(滑动最大值)+二进制方法)
自己复习用 1.单调队列法 详见《挑战》p340 然后我其实不懂为什么在deq[s]==j-m[i]时去掉队首,过几天懂了我来更新,如果你知道的话请告诉我qq2298763866#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <vector>#include <algor原创 2017-03-13 01:05:08 · 671 阅读 · 0 评论 -
bzoj2463谁能赢呢?(博弈论)
你们就当我水了一贴好了 我想到了当时poj上的那个funnygame,不过这个是在bzoj水题列表里看到的。既然来了就讲一下吧,这个题为什么不用搜索之类的做而用一个简单的奇偶判定呢?当然是题目所说的“最优解”限制。即,如果移到了一个角落一样的地方,后者一定会将它移植到这个角落使其达成一个必胜态,而不会出现在最终的必胜态中还有格子没走的情况。#include <iostream>#include原创 2017-03-17 23:54:30 · 499 阅读 · 0 评论 -
LCA(最近公共祖先)倍增法模板及总结
还是markdownmarkdown编辑器好啊 写lca写了一段时间 有ST表的在线查询方法但是我一直没写AC过。。。。所以先把倍增的丢这里好了 复杂度O(nlogn)O(nlogn) ,nn是dfs用的 lognlogn是倍增往上跳用的。。。。然后大致的思路就是 在dfsdfs时记每个点的深度 求2点lcalca时先将两点跳到同一深度 再一起跳到同一点 至于每个这样的距离一定会由2的整次幂组成原创 2017-04-03 10:41:06 · 714 阅读 · 0 评论