自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

1292765944的专栏

记录我的acm之路

  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 XMU 1255

http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1255整数划分问题 996ms险过..(递归法)#include#include#includeusing namespace std;int n,mod;long long dps[500][500];long long dp(int n,int m){ //n表示要

2012-03-31 21:26:11 680

转载 STL MAP 的一个注意点

一个map就是一个(关键码(key),值(value))对偶的序列,它提供基于关键码的快速提取操作。也就是说,可以用下标运算符[]将关键码作为下标去执行查找,并返回对应的值。因此可以把map的使用方法想象成有特殊下标的数组。在很多时候用下标运算符[]来对map中的元素进行存取是非常方便和简单的;但是,如果map下标运算符[]运用不得当,也会造成意想不到的问题。    我们知道,C++是不检查下

2012-03-31 19:51:35 1013

原创 生成排列和组合

1 . 无重复元素的全排列当然stl有next_permutation()函数,用起来更方便#include#includeusing namespace std;int n,a[100],count;void permutation(int k){ if(k==n){ for(int i=1;i<=n;i++) printf("%d ",a[i]); printf

2012-03-30 19:21:51 727

原创 一个数学期望问题

1 . 有一个经典的概率问题:平均需要抛掷多少次硬币,才会首次出现连续的 n 个正面?它的答案是 2^(n+1) - 2 。证明还不会。http://www.matrix67.com/blog/archives/3638   http://www.cnblogs.com/atyuwen/archive/2010/09/12/coin.html2 . 随便取一个 0 到 1 之间的数

2012-03-30 12:25:43 988

原创 BOJ 385

Problem C. VaccineDescriptionOn Christmas Eve, 2029, the unidentified "Apocalypse Virus" spreads andplunges JA into a state of emergency in a chaos known as the "LostChristmas" incident. An in

2012-03-25 13:30:51 934

转载 poj 1845

大致题意:求A^B的所有约数(即因子)之和,并对其取模 9901再输出。解题思路:要求有较强数学思维的题应用定理主要有三个:要求有较强数学思维的题应用定理主要有三个:(1)   整数的唯一分解定理:任意正整数都有且只有一种方式写出其素因子的乘积表达式。A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn)   其中pi均为素数(2)

2012-03-25 11:51:29 704

原创 BOI 383

Problem A. Ponding WaterDescriptionThere is a strange building on planet VOID. It is made up of N*Mrectangular parallelepipeds on N*M grids, whose bottom surfaces are 1*1squares. Since heights

2012-03-24 22:28:45 792

原创 HDU 4001 To Miss Our Children Time

一开始我一直想的是简单图论问题,构图SPFA求最长路,发现这样做有环不好处理。比如这组样例:21 1 1 01 1 1 0构图就会有环,不能直接SPFA,tarjan缩点的话应该可以做,但是代码量就太大了。可以这样去处理:bool cmp(block a,block b)  {      if(a.x!=b.x)return a.x    if(a.y!=b

2012-03-24 21:38:20 908

原创 BOJ 396

Problem K. Alice's PianoDescriptionAlice has a piano which can plays nice music, but it's different from otherpianos. It has two rows of keys, and the method of playing it is also quitespecial

2012-03-24 19:39:34 736

原创 BOJ 394

Problem I. The Longest Sequence ofRectanglesDescriptionA rectangle is specified by a pair of coordinates (x1 , y1) and (x2 , y2)indicating its lower-left and upper-right corners (x1 a pair o

2012-03-24 19:10:15 915

原创 Codeforces Problem 161E - Polycarpus the Safecracker

先暴力打素数表,然后枚举5位数里(从高位到低位)有i位确定且为x的数有多少个。 具体解某个数时暴力即可#include#include#include#includeusing namespace std;bool vis[100010];vectordp[5][100010];int k,l;int a[6][6];int dfs(int now){ int i,j,

2012-03-23 23:23:53 1006

原创 HDU 4106 Fruit Ninja

这个考费用流建图(时间跑到HDU目前的第四)是poj3680的加强版poj 3680 是区间对点的限制,而这道题,是点对区间的限制。如果选取取一个数,那么每个包含这个数且长度为 M的连续区间内可以选的数都要减少一个,对吧?转换模型!点变区间,区间变点!把区间离散化为 n - m + 1个部分,那么就有 n - m + 2 个点,left = max(1,i-m+1) ;right =

2012-03-23 00:23:14 1897

原创 POJ 3680

建图很巧妙先离散化区间端点。从0->1,1->2,~~~~~n->n+1每条边容量为k,费用为0,对于每条线段,他的两个端点连边容量为1,费用-w然后跑一遍最小费用流算法正确性证明:如果两个区间没有交集,那么代表它们的边可以出现在同一增广路上,这一点显然。否则,它们就在不同的增广路上。每一个区间对应的边的容量都是1,这样,最后的流量就是被选出的两两有交集的区间的数量。受到(0,

2012-03-21 18:11:33 2083

原创 KM算法理解

转自http://www.byvoid.com/blog/match-km/[二分图带权匹配与最佳匹配]什么是二分图的带权匹配?二分图的带权匹配就是求出一个匹配集合,使得集合中边的权值之和最大或最小。而二分图的最佳匹配则一定为完备匹配,在此基础上,才要求匹配的边权值之和最大或最小。二分图的带权匹配与最佳匹配不等价,也不互相包含。我们可以使用KM算法实现求二分图的最佳匹配。方法我不再

2012-03-19 21:13:09 7402 1

原创 Codeforces Round #112 (Div. 2) C Another Problem on Strings

codeforces上的很多题都需要好的想法才能做。#include#define maxn 10000005using namespace std;int n,i,k,s[maxn],sum[maxn],a[maxn]; // a[i]记录第i个是0或1,s[i]记录第前i个有几个1,sum[i]表示从头开始产生i个1的方法数char st[maxn];long long an

2012-03-17 13:17:30 1378

原创 POJ 2195 Going Home

二分图最佳完备匹配KM算法KM算法是通过给每个顶点一个标号(叫做顶标)来把求最大权匹配的问题转化为求完备匹配的问题的。设顶点Xi的顶标为A[i],顶点Yi的顶标为B[i],顶点Xi与Yj之间的边权为w[i,j]。在算法执行过程中的任一时刻,对于任一条边(i,j),A[i]+B[j]>=w[i,j]始终成立。KM算法的正确性基于以下定理:若由二分图中所有满足A[i]+B[j]=w[i,j]的

2012-03-09 23:20:36 727

原创 [SCOI2005]王室联邦

Description“余”人国的国王想重新编制他的国家。他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成员来管理。他的国家有n个城市,编号为1..n。一些城市之间有道路相连,任意两个不同的城市之间有且仅有一条直接或间接的道路。为了防止管理太过分散,每个省至少要有B个城市,为了能有效的管理,每个省最多只有3B个城市。每个省必须有一个省会,这个省会可以位于省内,也可以在该省外。但

2012-03-09 19:41:52 1772

原创 NOI 2009 植物大战僵尸

【问题描述】Plants vs. Zombies(PVZ)是最近十分风靡的一款小游戏。Plants(植物)和Zombies(僵尸)是游戏的主角,其中Plants防守,而Zombies进攻。该款游戏包含多种不同的挑战系列,比如Protect Your Brain、Bowling等等。其中最为经典的,莫过于玩家通过控制Plants来防守Zombies的进攻,或者相反地由玩家通过控制Zombies对

2012-03-09 18:24:42 2105

原创 BOJ 313 Candy

源向每个小孩连边,容量是该小孩的初始糖数; 每个小孩向汇连边,容量是糖的平均数; 每个小孩想相邻的格子各连一条边,容量是1. 把图建好就很简单了 #include#include#include#define inf 100000000#define min(a,b) ((a)>(b))?(b):(a)using namespace std;int a,b,map[

2012-03-08 23:53:41 934

转载 最小割的一点理解

转自mjmjmtl大牛:一、基本问题:1.到底什么是割:原始点集为V,选出一些点集S使得s∈S,T=V-S,t∈T,则S到T的边为S到T割,记做[S,T]。2.什么是最小割:图中所有的割中,边权值和最小的割为最小割!3.割得容量容量和流量计算的区别:割[S,T]的容量为∑(边(u,v)的容量和),其中u∈S,∈T。也就是说割的容量不计算反向的边!!而流量为正向的和反向的代数和。

2012-03-07 20:52:27 15003 1

转载 刘汝佳黑书 pku等oj题目

一.动态规划参考资料:刘汝佳《算法艺术与信息学竞赛》《算法导论》推荐题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=1141简单http://acm.pku.edu.cn/JudgeOnline/problem?id=2288中等,经典TSP问题http://acm.pku.edu.cn/Jud

2012-03-07 19:45:35 2066

原创 ZOJ 2788 Panic Room

最小割问题。设一个超级源点s,s向每个有入侵者的房间连一条容量为inf的边.然后对于两个房间的门(a,b),如果把手在a,连一条从a到b容量为inf的边,连一条从b到a容量为1的边。求一遍从s到被保护房间的最大流即可#include#include#include#define inf 1000000#define min(a,b) ((a)>(b))?(b):(a)using

2012-03-07 17:43:29 992

原创 ZOJ 2587 Unique Attack

题意:判断最小割是否唯一。思路(转):判断最小割是否唯一,先求一次最大流,然后在残留网络中分别从源汇开始dfs一次,找出最小割[S,T],如果SUT不包含所有点,那么最小割不唯一。假设点i不被SUT包含,那么残留网络中s不能到达i,i不能到达t,即进入i的边和从i出去的边都满流,假设某条进入i的边x满流,这些流量从若干条边y流出i,那么,如果选x为割边,或者选所有对应的y为割边,不会影响最大流

2012-03-07 16:57:42 741

原创 POJ 1637 Sightseeing tour

混合图欧拉回路判断(不会的可以看看刘汝佳的黑书)基础知识    欧拉回路是图G中的一个回路,经过每条边有且仅一次,称该回路为欧拉回路。具有欧拉回路的图称为欧拉图,简称E图。    无向图中存在欧拉回路的条件:每个点的度数均为偶数。    有向图中存在欧拉回路的条件:每个点的入度=出度。    欧拉路径比欧拉回路要求少一点:    无向图中存在欧拉路径的条

2012-03-07 15:17:50 586

原创 计算阶乘的位数 poj 1423

斯特林公式的应用num=floor(log10(N)+1);斯特林公式如下:      带入公式即可。(其中floor可以用(int)代替,但不能用printf输出%.0f的浮点数,因为后者会自动四舍五入)#include#include#define PI 3.141592653589793239#define ee 2.7182818284590452354int an

2012-03-07 14:37:23 1095

原创 POJ 3436 ACM Computer Factory

简单最大流,拆点做。模板敲错WA了好几次#include#include#define inf 1000000#define min(a,b) ((a)>(b))?(b):(a)using namespace std;int num[60],in[60][11],out[60][11];int n,k,dist[200],gap[200],edgeHead[200];//双向边s

2012-03-05 23:16:06 703

原创 POJ 2679 Adventurous Driving

SPFA算法难点: 1. 起始点有自环, 不管正环或者负环, 都需要去判断是VOID还是UNBOUND;          2. 判断负权环是否存在于路径上;(这个算法我一开始想把SPFA某个点进队列次数大于2*n或者更大的数把所有在负环中的点全部找出来,但是有可能做不到,比如从s开始分出2个叉A和B,t在A叉上,A叉上在距离s非常远处有个负环,而B叉上在距离s很近处就有个负环,这样A

2012-03-04 18:02:54 1139

原创 POJ 2391

求最大值最小问题通常都是用二分.#include#include#include#define min(a,b) ((a)>(b))?(b):(a)#define inf 1000100000#define INF (~(0ULL)) >>1using namespace std;int N,n,m;long long map[205][205];int in[205],ou

2012-03-04 11:10:12 958

AC自动机通配符匹配

详细介绍AC自动机原理和通配符匹配原理,值得一看

2014-01-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除