2011年9月25日
摘要: HDU_2236为了保证每行每列只取一个元素,我们可以从二分图最大匹配的思想入手,把行和列分别看做二分图左右两部分,i-j的边权就是第i行第j列的元素的值。这样构图之后,求得的二分图最大匹配的4条边就是不在同行或同列的4个元素。有了这个思想时候,我们只需要再保证4个元素中最大值与最小值之差尽量小就可以了,于是我们可以二分枚举最大值与最小值之差,并枚举边权值的下界,如果枚举到某个边权值的下界时该图存在最大匹配,那么就更新max,否则就更新min。#include<stdio.h>#include<string.h>int n,G[110][110],xM[110],yM[ 阅读全文
posted @ 2011-09-25 23:43 Staginner 阅读(457) 评论(1) 推荐(1) 编辑
摘要: HDU_1753 大数加法,固定好小数点的位置,分整数和小数两部分读取和输出即可。#include<stdio.h>#include<string.h>int a[1010],b[1010],sum[1010];char str[1010];int main(){ int i,j,k,p,q,n,s,c; while(scanf("%s",str)==1) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(sum,0,sizeof(sum)); n=strlen... 阅读全文
posted @ 2011-09-25 22:32 Staginner 阅读(275) 评论(0) 推荐(0) 编辑
摘要: HDU_1690 直接用Floyd算法求出任意两点之间的最少花费即可。#include<stdio.h>#include<string.h>#include<stdlib.h>long long int L1,L2,L3,L4,C1,C2,C3,C4;long long int f[110][110],d[110];int main(){ int i,j,k,N,M,t,tt,a,b; long long int temp; scanf("%d",&t); for(tt=0;tt<t;tt++) { scanf(" 阅读全文
posted @ 2011-09-25 22:27 Staginner 阅读(297) 评论(0) 推荐(0) 编辑
摘要: HDU_3329我们可以二分枚举涨水的高度,然后先对外围一层做一次深搜,把所有被淹没的点做上标记,再对没有标记过的点进行深搜,如果深搜后发现有两块或多于两块的土地,那么当前深度的水就是符合要求的,否则就是不符合要求的,之后更改相应的max以及min的值即可。#include<string.h>#include<stdio.h>int a[110][110],vis[110][110];int n,m,max,min,mid;int dx[]={-1,1,0,0},dy[]={0,0,-1,1};void dfs1(int x,int y){ int i,newx,new 阅读全文
posted @ 2011-09-25 22:24 Staginner 阅读(332) 评论(0) 推荐(0) 编辑
摘要: HDU_1003最大和的子串是具有这个一个特征的,从左边第一个元素开始逐个累加,每次得到的和一定是大于等于0的,因为如果某一时刻小于0,那么前面一段我们可以抛弃,而后面一段的和一定是大于目前记录的最大和的,这样就矛盾了。然后我们根据这一特征去寻找最大和的子串即可。#include<stdio.h>#include<string.h>int main(){ int i,j,k,N,T,t,ans,x,y,tx,ty,sum; scanf("%d",&T); for(t=0;t<T;t++) { scanf("%d",& 阅读全文
posted @ 2011-09-25 22:14 Staginner 阅读(174) 评论(0) 推荐(0) 编辑
摘要: HDU_1728一开始用广搜的时候没有想到用什么方法去进行判重或剪枝,后来突然想到原来可以用走到某个点时已经拐过弯的次数作为剪枝的依据。我们用turn[i][j]这样一个数组记录走到(i,j)时已经转弯的个数,如果再次搜到这个点时转弯次数比turn[i][j]大的话,那么便不用以这个点为基础再继续向下搜了,因为之前搜过的情况一定比这种情况更优(前面的状态可以在这个点进行一次转弯来达到当前状态)。#include<stdio.h>#include<string.h>int dx[]={-1,1,0,0},dy[]={0,0,-1,1};int a[110][110],tu 阅读全文
posted @ 2011-09-25 00:33 Staginner 阅读(387) 评论(0) 推荐(0) 编辑