- 博客(42)
- 资源 (1)
- 收藏
- 关注
转载 从入门到精通: 最小费用流的“zkw算法”
点击打开链接1. 网络流的一些基本概念 点击阅读 很多同学建立过网络流模型做题目, 也学过了各种算法, 但是对于基本的概念反而说不清楚. 虽然不同的模型在具体叫法上可能不相同, 但是不同叫法对应的思想是一致的. 下面的讨论力求规范, 个别地方可能需要对通常的叫法加以澄清. 求解可行流: 给定一个网络流图, 初始时每个节点不一定平衡 (每个节点可以有盈余或不足), 每
2014-08-31 19:26:51 7524
原创 HDU 4067 Random Maze
题意:给出一个有n个点m条边的有向图,现在要从图中删去一些边使得图满足以下条件:1.图中只有一个入口(s)和一个出口(t)2.所以边都是单向的(这个原图已经保证了)3.对入口(s)而言,其出度=入度+14.对出口(t)而言,其入度=出度+15.对入口(s)、出口(t)以外的点,其入度=出度而对图中每条边,保留这条边或者删去这条边都有相应的花费,分别为a、b,求使得该图满足条
2014-08-31 15:33:01 620
原创 HDU 3395 Special Fish
此题解转载自#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2014-08-30 11:49:26 682
原创 Codeforces Round #262 (Div. 2) D Little Victor and Set
If r - l ≤ 4 we can all subsets of size not greater than k. Else, if k = 1, obviously that answer is l. If k = 2, answer is 1, because xor of numbers 2x and 2x + 1 equls 1. If k ≥ 4 an
2014-08-27 10:54:35 585
原创 Codeforces Round #263 (Div. 1) B. Appleman and Tree
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define CLR(x,y) mem
2014-08-27 10:44:02 798
原创 HDU 4978 A simple probability problem
/*author: birdstorm*/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define MAXN 105//#define N 105#def
2014-08-21 20:16:05 597
原创 HDU 4971 A simple brute force problem.
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define CLR(x,y) mem
2014-08-21 20:11:07 545
转载 HDU 4964 Emmet
出神入化的string#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2014-08-19 23:26:04 733
原创 HDU 4960 Another OCD Patient
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define CLR(x,y) mem
2014-08-19 22:34:34 561
转载 【完整版】线段树(转载 NotOnlySuccess)
http://www.notonlysuccess.com/【完全版】线段树很早前写的那篇线段树专辑至今一直是本博客阅读点击量最大的一片文章,当时觉得挺自豪的,还去pku打广告,但是现在我自己都不太好意思去看那篇文章了,觉得当时的代码风格实在是太丑了,很多线段树的初学者可能就是看着这篇文章来练习的,如果不小心被我培养出了这么糟糕的风格,实在是过意不去,正好过几天又要给集训队
2014-08-19 11:07:33 561
原创 Codeforces Round #261 (Div. 2) E. Pashmak and Graph
有点dp的思路,如果我们把边按照权重排序,则直接加边就可以了。例如dp[x]表示当前以x为终点的最长路。那么加上一条边(x,y)后,dp[y] = max(dp[x] + 1, dp[y]),大概就是这个思路。但是注意边权有相同的,我们必须把相同边权的边统一一起处理掉,并且暂时不能更新,只有等所有相同边权的边都计算完之后再更新。因为是按边处理的,所以复杂度是O(M),当然还有排序的O(MlogM)
2014-08-16 08:58:49 630
原创 Codeforces Round #261 (Div. 2) D. Pashmak and Parmida's problem
离散化+树状数组树状数组维护见代码
2014-08-16 08:53:50 566
原创 Codeforces Round #224 (Div. 2) E.Ksenia and Combinatorics
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define CLR(x,y) mem
2014-08-14 21:45:54 635
原创 HDU 4946 Area of Mushroom
感觉就是计算几何的模拟#include#include#include#include#include#include#include#define pi acos(-1.0)#define eps 1e-8#define ll long long#define L 10050#define N 1050#define Mod 1000000007#defin
2014-08-14 19:16:43 519
原创 HDU 4937 Lucky Number
先#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define C
2014-08-12 20:23:34 556
原创 Poj 1112 Team Them Up!
首先分析这道题目,题目给出的是一个有向图,即如果有A认识B,但不一定有B认识A。但是在所分配的组里面,任意两个人都要互相认识。1、 先读入数据建立有向图,然后对这个有向图进行处理,如果两个点之间的边是单向边,就认为两个点之间无边(因为这两个人不互相认识),对于两个点间的双向边,即建立一条无向边(这两个人互相认识),这样就可以把一个有向图转化为一个无向图。2、 将这个无向图转化为它的
2014-08-12 10:45:09 1072
原创 Poj 3691 & Hdu 2457 DNA repair
解题思路:AC自动机+DPdp[ i ][ j ]表示主串匹配到了第 i 个位置,然后到达的是AC自动机上的 j 状态(可以理解为Trie树的节点位置)时最少修改字符的个数,我们保证 j 状态不是模式串( DNA病毒串)的结束节点,然后不断地往后走选出一条匹配完主串,并且修改字符串数最少的的一条。状态转移为dp[ i ][ j ] = min( dp[ i ][ j ],
2014-08-11 12:06:51 772
原创 HDU 4055 Number String
dp[ i ][ j ]表示前i个满足字符串条件的结尾为j的 i 的排列,注意是i的排列,前面并没有数大于i。那又是如何往下递推呢?如果s[i - 1]是' I ',那么dp[i][j] = dp[i-1][j-1] + dp[i-1][j-2] + .. + dp[i-1][1]如果s[i - 1]是‘D’,那么dp[i][j] = dp[i-1][j] + dp[i-1][j+
2014-08-10 17:06:37 517
原创 HDU 4689 Derangement
考虑到每个数字 i 只有两种放置方式,前面或者后面,同时,某个状态,’-‘一定是放置前面的数,’+’一定是放置后面的数,这样,我们设计状态f[i][j],表示前i个有j个‘+’没有解决,由于都是要放置后面的数,且前面的剩余什么数对后面没有影响,故状态设计没有问题。如果第i个是‘+’,则考虑i放在前面还是后面,如果放在后面,则f[i][j]+=f[i-1][j-1],否则,j放在前面哪一个‘
2014-08-10 15:55:46 864
原创 Codeforces Round #260 (Div. 1) A. Boredom
简单动态规划用计数排序统计数字的个数dp[ ]#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2014-08-09 10:33:16 647
原创 HDU 4928 Series 2
神奇的剪枝将数列中 零与#include#include#include#include#include#include#include#include#define pi acos(-1.0)#define eps 1e-8#define ll long long#define L 1000050#define N 100050#define Mod 1
2014-08-07 16:59:35 720
原创 HDU 4923 Room and Moor
先按照#include#include#include#include#include#include#include#define pi acos(-1.0)#define eps 1e-8#define ll long long#define L 1000050#define N 100050#define Mod 1000000007#defin
2014-08-07 16:58:49 1046 2
转载 KM算法 详解+模板
先说KM算法求二分图的最佳匹配思想,再详讲KM的实现。【KM算法求二分图的最佳匹配思想】对于具有二部划分( V1, V2 )的加权完全二分图,其中 V1= { x1, x2, x3, ... , xn }, V2= { y1, y2, y3, ... , yn },边具有权值 Wi,j 。该带权二分图中一个总权值最大的完美匹配,称之为最佳匹配。 记 L(x) 表示结点
2014-08-07 00:17:34 1135
原创 五子棋AI设计
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define eps 1e-9#de
2014-08-06 12:06:00 934
原创 HDU 4915 Parenthese sequence
从前扫一遍,记录最大和最小的可能的左括号的值#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2014-08-05 18:54:57 949
原创 HDU 4920 Matrix multiplication
#include#include#include#includeusing namespace std;#define L 805templateinline bool read(T &n){ T x = 0, tmp = 1; char c = getchar(); while((c '9') && c != '-' && c != EOF) c = getch
2014-08-05 18:30:22 556
原创 27E - Number With The Given Amount Of Divisors
#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define ULL unsigned long longusing namespace std;const int INF=0x3f3f3f3f;c
2014-08-05 16:17:35 545
转载 克努特-莫里斯-普拉特操作(简称KMP算法)
小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一只河蟹,于是河蟹就向小Hi和小Ho提出了那个经典的问题:“小Hi和小Ho,你们能不能够判断一段文字(原串)里面是不是存在那么一些……特殊……的文字(模式串)?”小Hi和小Ho仔细思考了一下,觉得只能想到很简单的做法,但是又
2014-08-05 10:12:17 1050
原创 BOJ 487 xor
时间限制 5000 ms 内存限制 65536 KB题目描述Given a sequence A1,A2,…,AN, you're required to answer the following queries: given three integers l,r and x, find out max{ai⊕x}, where l≤i≤r, and a⊕b
2014-08-03 22:21:18 575
转载 POJ 3468 A Simple Problem with Integers 树状数组 区间修改 区间查询
题目链接点这儿给你一个数列,最多10W次操作,要么区间统一加上某个值,要么查询某个区间的和。第一反应肯定是线段树,但是呢,这个能不能用树状数组做呢?如果是单点修改,区间查询,我们直接在原数列上进行树状数组的操作。如果是区间修改,单点查询。由于树状数组每次update一个单点x之后,会对n>x的getsum(n)(或者说树状数组的Query(n
2014-08-03 10:21:26 470
原创 Codeforces Round #259 (Div. 2) D Little Pony and Harmony Chest
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define eps 1e-9#de
2014-08-02 09:39:38 685
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人