摘要: 题意: 有 F种食物和D种饮料,知道了每种食物和饮料的数量,有n 个人,知道了这些人分别喜欢的食物和饮料,当每个人能够吃到自己喜欢的一个食物和喝到自己喜欢 的一种饮料,他就会开心,问最多能有多少人可以开心。分析:在 源点 和 每种食物之间 连一条边,容量为 食物的数量,将每头牛拆成两个点,将每头牛的第一个点和第二个点之间连一条容量为 1 的边,在每头牛喜欢的食物和该牛的第一个点之间连一条容量为 1 的边,在每头牛喜欢的饮料和该牛的第二个点之间连一条容量为 1 的边,在 汇点 和每种饮料之间连一条容量为饮料数量 的边,求最大流。#include<stdio.h>#include< 阅读全文
posted @ 2012-09-16 18:26 'wind 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 题意:已知有 2*n个敌人,用枪射击n 次,每次消灭2个敌人,消耗的能量为自己所在位置到第一个敌人的距离加上第一个敌人到第二个敌人的距离,问消灭 所有敌人所需要消耗的最少能量是多少。分析:状态DP: 由于每两个敌人消灭的时间不影响答案,所以只需要一维的DP保存所有可能的组合状态即可 转移方程:dp[i] = min (dp[i], dp[i+(1<<i)+(1<<j)]+dis)#include<stdio.h>#include<string.h>#include<math.h>#define clr(x)memset(x,0,siz 阅读全文
posted @ 2012-09-16 09:34 'wind 阅读(338) 评论(0) 推荐(0) 编辑