2013年12月28日

图论专题III

摘要: [vijos美食节]最小费用流From:https://www.vijos.org/p/1726Solution:假设厨师i做菜品j做n次, 那么第k次做时对答案的贡献就是(n-k+1)*t[j][i]。我们把每个厨师进行拆点, 建图用费用流即可算出答案。但是这题图较大, 需要动态加边。#include #include #include #include #include #include #include #include #include using namespace std;#define N 45#define M 101#define oo 0x6fffffff#define n 阅读全文

posted @ 2013-12-28 15:38 leezyli 阅读(251) 评论(0) 推荐(0) 编辑

2013年12月15日

图论专题II

摘要: [vijos 生命之泉]最大费用流From:https://www.vijos.org/p/1525Solution:和炸毁燃料库一样,参见http://www.cnblogs.com/leezy/p/3472910.html#include #include #include #include #include #include #include #include using namespace std;#define N 1005#define M 705#define oo 0x6fffffff#define nil (-1)struct {int w,c,to,next;} nod[N 阅读全文

posted @ 2013-12-15 16:00 leezyli 阅读(236) 评论(0) 推荐(0) 编辑

2013年12月13日

图论专题I

摘要: [pku2396 Budget]带源汇的上下界最大流From:http://poj.org/problem?id=2396#include #include #include #include #include #include #include #include using namespace std;#define N 205+25#define M 25#define oo 0x6fffffff#define nil (-1)int cap[N][N], flow[N][N], d[N], fa[N], low[N][N], high[N][N], in[N], out[N], maxf 阅读全文

posted @ 2013-12-13 13:35 leezyli 阅读(256) 评论(0) 推荐(0) 编辑

2013年12月8日

[ZJOI2006 物流运输trans] 最短路径 DP SPFA

摘要: From:http://www.lydsy.com/JudgeOnline/problem.php?id=1003Solution:记cost[i,j]表示i到j天不换路径的最小成本, dp[i]表示前i天的最小成本, 得dp[i] = min(dp[i], dp[j]+cost[j+1,i]+K),其中0<=j<i./************************************************************** Problem: 1003 User: leezy Language: C++ Result: Accepted Time... 阅读全文

posted @ 2013-12-08 21:11 leezyli 阅读(151) 评论(0) 推荐(0) 编辑

2013年12月7日

[HAOI2006 受欢迎的牛] 强联通分量 缩点

摘要: From:http://www.lydsy.com/JudgeOnline/problem.php?id=1051Solution:1.根据题目描述建立图G, 对于任意(a,b)属于G, 表示a认为b受欢迎2.显然, 对于任意的强联通分量C, 对任意(a,b)属于C, a,b都是C中受欢迎的3.缩点,建立SCC图,在原图G中的任意边(a,b), 反向后得到SCC图,显然SCC图是一个有向无回路图。现在,解规约为一个判定性问题: SCC图中是否存在一个点u, u可达SCC图中的所有顶点?4.判断是否存在这样的顶点/***************************************** 阅读全文

posted @ 2013-12-07 23:33 leezyli 阅读(143) 评论(0) 推荐(0) 编辑

[BeiJing2006 狼抓兔子] 最大流

摘要: From:http://www.lydsy.com/JudgeOnline/problem.php?id=1001Solution:这题用sap水过了, 更快的做法是转化成平面图来搞?/************************************************************** Problem: 1001 User: leezy Language: C++ Result: Accepted Time:1292 ms Memory:141744 kb****************************************... 阅读全文

posted @ 2013-12-07 21:25 leezyli 阅读(169) 评论(0) 推荐(0) 编辑

[最大数MaxNumber] 树状数组

摘要: From:http://www.lydsy.com/JudgeOnline/problem.php?id=1012Solution:用树状数组维护最大值/************************************************************** Problem: 1012 User: leezy Language: C++ Result: Accepted Time:500 ms Memory:1588 kb***********************************************************... 阅读全文

posted @ 2013-12-07 14:31 leezyli 阅读(279) 评论(0) 推荐(0) 编辑

2013年11月25日

[序列终结者]( Splay树 )

摘要: From:http://www.lydsy.com/JudgeOnline/problem.php?id=1251Solution: 维护数列的简单版/************************************************************** Problem: 1251 User: leezy Language: C++ Result: Accepted Time:9312 ms Memory:2840 kb***********************************************************... 阅读全文

posted @ 2013-11-25 21:01 leezyli 阅读(165) 评论(0) 推荐(0) 编辑

2013年11月24日

[维修数列]( Splay树 )

摘要: From:http://www.lydsy.com/JudgeOnline/problem.php?id=1500Solution:BT的数据结构。一个技巧, 插入两个哑对象, 把所有操作都转换成"Root的右孩子的左子女"形式来维护。即对于区间[a,b], 把a-1旋转到Root, 再把b+1旋转到Root的右子女, 那么区间[a,b]就是Root右子女的左子树。关于最大字段和的维护, 类比线段树来凑出所有情况。关于翻转操作, 先翻转再旋转 和 先旋转再翻转 是等价操作(随便画下图就知道了)。/*************************************** 阅读全文

posted @ 2013-11-24 13:50 leezyli 阅读(215) 评论(0) 推荐(0) 编辑

2013年11月18日

[郁闷的出纳员] ( Splay树 )

摘要: From: http://www.lydsy.com/JudgeOnline/problem.php?id=1503Input第一行有两个非负整数n和min。n表示下面有多少条命令,min表示工资下界。接下来的n行,每行表示一条命令。命令可以是以下四种之一:名称格式作用I命令I_k新建一个工资档案,初始工资为k。如果某员工的初始工资低于工资下界,他将立刻离开公司。A命令A_k把每位员工的工资加上kS命令S_k把每位员工的工资扣除kF命令F_k查询第k多的工资_(下划线)表示一个空格,I命令、A命令、S命令中的k是一个非负整数,F命令中的k是一个正整数。在初始时,可以认为公司里一个员工也没有。O 阅读全文

posted @ 2013-11-18 07:58 leezyli 阅读(213) 评论(0) 推荐(0) 编辑

导航