ACM 算法
cold__v__moon
这个作者很懒,什么都没留下…
展开
-
hdu 4452 Running Rabbits 模拟
#include using namespace std;struct Nod{ int x,y; int s,t; char flag[2]; int f;}tom,jerry;int dir[4][2]={-1,0,0,1,1,0,0,-1},n;void findway(Nod* e,int k){ int x,y; x=e->x+e->s*dir[e->f][0]原创 2012-11-01 17:08:43 · 200 阅读 · 0 评论 -
最大权闭合图
概念:一个有权有向图,就是:求一些闭合的点的集合(即与该集合中任何一点邻接的点都在这个集合内),使这个集合的权值最大。构造方法:一个点的权值如果为正,则与s相连,且边权为该点的权值,如果为负,则与t相连,且边权为该点权值的绝对值,原来的边的权值设为正无穷。证明过程:首先引入结论,最小割所产生的两个集合中,其源点S所在集合(除去S)为最大权闭合图,接下来我们来说明一些结论转载 2012-11-02 21:22:57 · 230 阅读 · 0 评论 -
hdu 3657 Game
/*这道题和方格取数2相似,是在方格取数2的基础上的变形。方格取数2解法: 由题意知对于每一个方格,有选与不选,显然是二分的最大独立集,先求最小点权覆盖(它的补集恰好 是最大点权独立集),对于任何一条可行流 s->u->v->t, 在求最大流或最小割的时候,在这3条边中 至少选一条,将u->v设为inf,u->v就不可能存在于最小割中,就只是2选1,如果s->u或v->t选为最小原创 2012-08-30 11:37:24 · 726 阅读 · 0 评论 -
hdu 4451 Dressing 水题
//怎么这次金华这么多水题???#include using namespace std;const int maxn=1005;int a[maxn],b[maxn];int main(){ int n,m,k,p,x,y; char str1[30],str2[30]; while(~scanf("%d%d%d",&n,&m,&k)&&!(n==0&&m==0&&k==0))原创 2012-10-31 19:34:55 · 164 阅读 · 0 评论 -
hdu 3917 Road constructions 最大闭合图
#include using namespace std;const int inf=0x3fffffff;const int maxm=5005;const int maxk=3010;int source,sink,head[maxm],e,dis[maxm],gap[maxm],flow[maxm],cur[maxm],ncnt,pre[maxm];struct edge{原创 2012-11-02 21:21:34 · 270 阅读 · 0 评论 -
hdu 4442 Physical Examination 简单贪心
//由题意知道是贪心题 ,假设某个状态后时间tot,2种不同顺序完成2个项目//的时间为b2*((b1*tot+a1)+tot)+a2+(b1*tot+a1)+tot,b1*((b2*tot+a2)+tot)+a1+(b2*tot+a2)+tot//比较a1*b2和a2*b1即可#include #include using namespace std;const __int64 ma原创 2012-10-31 09:56:03 · 203 阅读 · 0 评论 -
hdu 4370 0 or 1
#include #include #include #include using namespace std;const int inf=0x3fffffff;const int maxn=305;int G[maxn][maxn],dis[maxn],vis[maxn],n;queue Q;void spfa(int src){ /*memset(vis,false,si原创 2012-08-30 18:50:06 · 207 阅读 · 0 评论 -
hdu 4081 Qin Shi Huang's National Road System 最优比率生成树
#include #include #include #include #include #include using namespace std;const int maxn=1010;int p[maxn],rd[maxn],cnt,n,sum,pre[maxn];bool vis[maxn];struct Nod{ int x,y;}pnt[maxn];st原创 2012-11-04 15:24:40 · 196 阅读 · 0 评论 -
hdu 2489 Minimal Ratio Tree 枚举+prim
/*可能测试数据有些弱吧,没理解这句话(if there's a tie, look at the second smallest node number),依然过了,大体思路枚举(因为数据小)选的点,就确定节点的和,在用mst就确定最小的边和*/#include #include #include using namespace std;const int maxn=30;con原创 2012-11-05 21:53:09 · 184 阅读 · 0 评论