自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(266)
  • 收藏
  • 关注

转载 HDU 4965 Fast Matrix Calculation (矩阵快速幂取模----矩阵相乘满足结合律)

http://acm.hdu.edu.cn/showproblem.php?pid=4965利用相乘的可结合性先算B*A,得到6*6的矩阵,利用矩阵快速幂取模即可水过。 1 #include<iostream> 2 #include<stdio.h> 3 #include<iostream> 4 #include<st...

2014-08-22 11:04:00 139

转载 HDU 1565 (最大流+黑白染色化二分图求最小割)

http://acm.hdu.edu.cn/showproblem.php?pid=1565思路:将横纵坐标和为偶尔染白色,其他染黑色,黑点连接源点,流量为该点的值,白点连接汇点,流量为该点的值,黑白点有相邻的就连边,值为无穷大。最后求最大流,即该图的最小割。PS:刚开始不明白为为什么最大流会等于最小割,为什么所有的点之和减去最小割就会等于答案。我的理解是:整张图其实就跟连接...

2014-08-14 15:09:00 141

转载 HDU 4289 Control (最大流+拆点)

http://acm.hdu.edu.cn/showproblem.php?pid=4289题目讲的是有一些恐怖分子要从S市去往D市,要求在一些城市中安排特工,保证一定能够抓住恐怖分子,因为安排特工需要一定的费用,所以希望找出最小的花费。思路:可以把每个城市,即每个点拆分成进来的点和出去的点,如x点分成x和x+n,两点连接的边权值为x点上安排特工的费用。而如果x和y两点有连线,则...

2014-08-13 11:33:00 139

转载 HDU 3605 Escape(最大流+缩点转换)

http://acm.hdu.edu.cn/showproblem.php?pid=3605题目很简单,要求的就是最后能搬到星球上去的人的个数。刚开始看到,知道是最大流,就把人和星球都设为点,能生存就连线,权值为1,最后建立超级源点和超级汇点。求出最大流量即可。先是RE,开大数组后TLE。仔细算了,光光人到星球的便就可达到100w了,超时的概率太大了。后来找了解题报告,知道了缩点这一...

2014-08-09 16:14:00 96

转载 HDOJ4886(hash+枚举)

http://acm.hdu.edu.cn/showproblem.php?pid=4886思路是队友想出来的,代码我写。因为只有8个字母,容易证明答案只会在长度为8之内。长于8的因为可以用长度n+8得到,所以不存在。从长度1到8依次枚举所有原串中的子串,并将此串当成8进制存在哈希表中,每次枚举前都将哈希表置空,而后再从小到大遍历哈希表,将第一个没用过的下标换算为字符串输出,当位...

2014-07-28 15:00:00 87

转载 POJ 2446 Chessboard (二分匹配)

1 #include<stdio.h> 2 #include<math.h> 3 #include<string.h> 4 #define maxn 1050//表示x集合和y集合中顶点的最大个数 5 int nx,ny;//x集合和y集合中顶点的个数 6 int edge[maxn][maxn];//edge[i][j]...

2014-04-24 20:37:00 122

转载 POJ 1469 COURSES (二分匹配,邻接表)

http://poj.org/problem?id=1469 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 #define point_MAX 10000 5 #define edge_MAX 100000 6 using na...

2014-04-23 20:42:00 75

转载 POJ 1273,HDU 1532 Drainage Ditches(最大流)

http://acm.hdu.edu.cn/showproblem.php?pid=1532使用网络流最大流中的DINIC算法解决 1 #include<stdio.h> 2 #include<string.h> 3 #define point_MAX 10000 4 #define edge_MAX 100000 5 #defin...

2014-04-22 19:28:00 84

转载 POJ 2262 Goldbach's Conjecture

1 #include<stdio.h> 2 int phi[1000010]; 3 int prime[100000],len; 4 int euler() 5 { 6 int i,j; 7 len=0; 8 for(i=0;i<1000010;i++) 9 phi[i]=0;10 f...

2014-04-08 20:51:00 73

转载 HDU 1018 big number(两个公式,两种方法)

1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int t,n,i; 6 double sum,a,b,c; 7 a=0.434294481903; 8 b=0.798179868358; 9 scanf("%d",...

2014-04-08 20:33:00 51

转载 hdu 2553 N皇后问题(递归)

1 #include<iostream> 2 #include<stdio.h> 3 using namespace std; 4 int N,sum; 5 int m[11][11]; 6 int isok(int x,int y) 7 { 8 for(int i=0;i<=x;i++) 9 ...

2014-04-03 20:37:00 76

转载 百练oj 2766 最大子矩阵和

1 #include<stdio.h> 2 #include<string.h> 3 int a[110][110],n; 4 int maxx(int *b,int m) 5 { 6 int i,max,now; 7 for(i=0;i<m;i++) 8 { 9 if(i==...

2014-04-03 12:21:00 123

转载 POJ 1664 放苹果

1 #include<iostream> 2 using namespace std; 3 int f(int m,int n) 4 { 5 if(m==0||n==1) 6 return 1; 7 if(m<n) 8 return f(m,m); 9 else return f(m-n,...

2014-04-02 20:30:00 57

转载 POJ 3617 Best Cow Line(贪心)

1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 using namespace std; 5 int main() 6 { 7 char cow[2005]; 8 char New[2005]; 9 i...

2014-04-02 20:22:00 60

转载 HDU 2013 ACM/ICPC Asia Regional Hangzhou Online ------ Zhuge Liang's Mines

http://acm.hdu.edu.cn/showproblem.php?pid=4739这题是dfs,只需一个一个搜就可以了#include<stdio.h>#include<math.h>#include<stdlib.h>struct node{ int x,y;}s[50];int N,ans...

2013-09-21 10:02:00 126

转载 HDU 4712 Hamming Distance (随机算法)

http://acm.hdu.edu.cn/showproblem.php?pid=4712所谓的hamming distance就是the Hamming distance is equal to the number of ones in a XOR b. For calculating Hamming distance between two strings a and b, ...

2013-09-10 11:09:00 123

转载 HDU 1171 Big Event in HDU

http://acm.hdu.edu.cn/showproblem.php?pid=1171这题是1085的通用版本,这个模板可同用于任意面值,任意数量的硬币和#include<stdio.h>int c1[250010], c2[250010];int v[55];int m[55];int main(){ int n,i,j,...

2013-09-07 23:29:00 62

转载 HDU 1085 Holding Bin-Laden Captive!

http://acm.hdu.edu.cn/showproblem.php?pid=1085这题是母函数的运用,解题关键在于硬币的数量即不是1,也不是无限,所以要一种面值,一种面值的往上叠加#include<stdio.h>int c1[10001],c2[10001];int main(){ int max,num1,num2,num5...

2013-09-07 23:03:00 63

转载 HDU 1028 母函数

http://acm.hdu.edu.cn/showproblem.php?pid=1028母函数的简单运用。。大牛解说http://www.wutianqi.com/?p=596#include <stdio.h>#define _max 10001// c1是保存各项质量砝码可以组合的数目// c2是中间量,保存没一次的情况int c1...

2013-09-07 20:52:00 79

转载 HDU 2680 Choose the best route (SPFA 算法求最短路径o(ke))

#include<stdio.h>#include<string.h>#define MAX 9999999int visited[10000],dis[10000],map[1010][1010];int vertex,edge;int init(){ int i,j; for(i=1;i<=vertex...

2013-08-28 10:43:00 85

转载 HDU 1874 畅通工程续 FLOYD 算法

http://acm.hdu.edu.cn/showproblem.php?pid=1874这题坑在于会出现重边,必须保留小的那个#include<stdio.h>#include<string.h>#define MAX 9999999int map[1000][1000];int vertex,edge;void init(...

2013-08-27 20:36:00 74

转载 HDU 1869 六度分离 (floyd)

http://acm.hdu.edu.cn/showproblem.php?pid=1869这题是简单的弗洛伊德算法的转变,在最后判定的时候是跟7进行判定,因为点与点间的路径是没用算上本身那个cost的#include<stdio.h>#include<string.h>#define MAX 9999999int map[1000][...

2013-08-27 20:18:00 76

转载 HDU 1385 Minimum Transport Cost (floyd算法,求最短路径)

http://acm.hdu.edu.cn/showproblem.php?pid=1385这个是模板题目。核心算法:通过一个图的权值矩阵求出它的每两点间的最短路径矩阵。从图的带权邻接矩阵A=[a(i,j)] n×n开始,递归地进行n次更新,即由矩阵D(0)=A,按一个公式,构造出矩阵D(1);又用同样地公式由D(1)构造出D(2);……;最后又用同样的公式由D(n-1)...

2013-08-27 20:17:00 96

转载 HDU 2063 过山车(匈牙利算法模板)

http://acm.hdu.edu.cn/showproblem.php?pid=2063#include<stdio.h>#include<math.h>#include<string.h>#define maxn 1000//表示x集合和y集合中顶点的最大个数! int nx,ny;//x集合和y集合中顶点的个数 ...

2013-08-26 20:19:00 65

转载 匈牙利算法

匈牙利算法是解决寻找二分图最大匹配的。(一)预备知识 什么是二分图:二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。 什么是匹配:把上图想象成3男4女搞对象(无同性恋...

2013-08-26 17:03:00 60

转载 HDU 1068 Girls and Boys(二分图+匈牙利算法)

http://acm.hdu.edu.cn/showproblem.php?pid=1068这题是模板题。题目大意:给你每个人互相认识的人,然后问最多能找到多少个人都互不认识。其实就是找:最大独立集合!已知:二分图最大独立集合 = 节点数 - 最大匹配数而:最大匹配数=最大匹配 / 2。用匈牙利算法先算出最大匹配,然后就可以解了。对于这个算法,每次找到增广路后,只...

2013-08-26 17:02:00 93

转载 HDU 1756 Cupid's Arrow(判断点是否在多边形内模板)

http://acm.hdu.edu.cn/showproblem.php?pid=1756方法:求解以某点为起点的射线与多边形边的交点个数,奇数时则点在内,偶数在外需要特别注意交点在顶峰和谷底以及射线与边平行的情况#include<stdio.h>#include<math.h>typedef struct node{ ...

2013-08-24 16:52:00 88

转载 HDU 1411 欧拉四面体公式

http://acm.hdu.edu.cn/showproblem.php?pid=1411直接套公式公式:欧拉四面体公式,用来求三棱椎的体积。V=sqrt((4*a*a*b*b*c*c-a*a*(b*b+c*c-m*m)*(b*b+c*c-m*m)-b*b*(c*c+a*a-n*n)*(c*c+a*a-n*n)-c*c*(a*a+b*b-l*l)*(a*a+b*b-l*l)+(...

2013-08-24 10:59:00 195

转载 旋转卡壳

算法流程:1:计算凸多边形y方向上的极值点,记为ymin,ymax。经过ymin,ymax作两条平行于x轴的水平线。这两点意见就是对踵点,计算它们的距离并维护最大值2:同时旋转两条直线,直至某一条线与多边形的一条边重合。此时产生了新的一对对踵点,计算新的距离并更新重复前两个步骤,直至重新回到ymin,ymax这对对踵点。输出最大直径(这里做适当改变就可以求最大面积...

2013-08-24 08:41:00 36

转载 HDU 2202 最大三角形(graham扫描法&&分治法凸包----又名快包)

http://acm.hdu.edu.cn/showproblem.php?pid=2202这题先用凸包找出顶点,再暴力枚举两种凸包一:Graham扫描法:(1)找出点集p[]中最左下的点p1,把p1同点集中其他各点用线段连接,并计算这些线段与水平线的夹角,然后按夹角从小到大和按到p1的距离从近到远排序(夹角范围为 [0, 180)度,而且可以删除相同夹角且距离p1较近的...

2013-08-23 16:59:00 152

转载 HDU 2201 熊猫阿波问题==金刚坐飞机问题

http://acm.hdu.edu.cn/showproblem.php?pid=2201题目描述现在有一架飞机要起飞,乘客们正准备按机票号码(1,2,3...,N)一次排队登机。突然来了一只大猩猩(金刚)。他也有机票,但是他插队第一个登上了飞机,然后随意的选择了一个座位坐下了。根据社会的和谐程度,其他的乘客有两种反应:1.乘客们都义愤填膺,“既然金刚同志都不守规矩,为什么...

2013-08-22 23:38:00 92

转载 HDU 2100 (模拟进制加法)

http://acm.hdu.edu.cn/showproblem.php?pid=2100直接模拟#include<stdio.h>#include<string.h>int main(){ char a[220],b[220]; int i,j,ans[440],lena,lenb; while(sca...

2013-08-22 21:55:00 62

转载 HDU 2151 Worm

http://acm.hdu.edu.cn/showproblem.php?pid=2151简单dp,动态转移方程:dp[N][T]=dp[N-1][T-1]+dp[N-1][T+1],注意判断边界是否存在#include<stdio.h>#include<string.h>int main(){ int N,P,M,T,i,...

2013-08-22 21:20:00 47

转载 qsort快速排序

手搓//快速排序void quick_sort(int s[], int l, int r){ if (l < r) { //Swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换 参见注1 int i = l, j = r, x = s[l]; ...

2013-08-22 20:17:00 43

转载 HDU 1007 (最近点对+qsort对结构体的排序!!!)

http://acm.hdu.edu.cn/showproblem.php?pid=1007这题需要注意的有两点:一:题目本身,做的思路是分治,像快速排序那样,把所有的点分成差不多的两段,然后再分……直至只剩2个或三个,那样就可以直接算了。算法流程:1:进入递归过程:如果是该段点数不大于三,那么就可以直接算了,否则用分治法递归解决2:将大于四的这堆点分成两部分,得到最...

2013-08-22 20:11:00 67

转载 HDU 1348 wall (简单凸包)

http://acm.hdu.edu.cn/showproblem.php?pid=1348这题是在求凸包的基础上,再求每个顶点对应角度及半径的弧长,外面围墙的直线部分与城墙的凸包长相同;再求弧长总和,注意每段弧长对应的角与凸包顶点的夹角是一样的,所以,又因为每个顶对应的半径长都是l,所以一个多边形的所顶点对应弧长相加其实就是一个圆。所以,最后总长为 凸包边长+2*3.14159...

2013-08-21 17:13:00 64

转载 HDU 1392 Surround the Trees(凸包模板)

http://acm.hdu.edu.cn/showproblem.php?pid=1392这题是凸包的模板题目……看算法后纯原创+_+思路:1:在输入的时候就保留住最下面而又靠左的点,这点为起点p0;设置hash表为是否访问过该点,因为结束标志是找到下一个顶点为p0,所以初始化时不可以将p0点赋为已经访问做n个循环,pi保留下一个要开始求凸包边的点2:循环从P0开始...

2013-08-21 11:38:00 78

转载 HDU 1431素数回文

http://acm.hdu.edu.cn/showproblem.php?pid=1431先判断回文,用时较少,再判断素数。最重要的。。。9989899这个数以上都是合数,擦----#include<stdio.h>#include<string.h>#include<math.h>int sushu(int a){...

2013-08-20 23:32:00 78

转载 HDU 2108 Shape of HDU(判断拐点)

http://acm.hdu.edu.cn/showproblem.php?pid=2108这题是用矢量相乘来判断拐向的,三个点a,b,c,矢量叉乘(b-a)×(c-b)为正就左拐,否则右拐,出现右拐就是凹的#include<stdio.h>#include<math.h>int x[1000000],y[1000000],n;int ...

2013-08-20 23:00:00 98

转载 HDU 2857 Mirror and Light(镜面反射模板)

http://acm.hdu.edu.cn/showproblem.php?pid=2857这题是求关于已知前后光路上的两点,和镜面位置,求出反射点的位置。这里需要有1:两点求直线方程,即得到直线的三系数已知x1,x2,y1,y2,则a=y2-y1;b=x1-x2;c=x2*y1-x1*y2;2:已知两直线,求交点struct line{ ...

2013-08-20 22:28:00 94

空空如也

空空如也

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

TA关注的人

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