摘要: 题意: 有n 个金矿,每个金矿开发需要一定的价值,开发之后可以获得一定的价值,而且一些金矿受到另一些金矿的限制,即开采这个金矿之前要开采 限制它的金矿,问最多可以获得多少价值。分析: 比较明显的最大闭合权图。 建图:如果某个金矿的开发利润为正值,就在源点和该点之间连一条容量为该利润的边 如果某个金矿的开发利润为负值,就在该点和汇点之间连一条容量为该利润绝对值的边 如果某个金矿收到另一个金矿的限制,就在两个金矿之间连一条容量为INF的边。 累计所有正值利润的和 sum,获得的最大利润为sum - maxflow#include<stdio.h>#include<string.h 阅读全文
posted @ 2012-09-11 17:36 'wind 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一些按键顺序和一个字典,问每个按键顺序可以对应字典中多少个单词。分析: 直接模拟之。#include<stdio.h>#include<string.h>#include<string>#include<map>using namespace std;int a[33];void init(){ int i; for(i=0;i<15;i++) a[i]=i/3+2; for(;i<19;i++) a[i]=7; for(;i<22;i++) a[i]=8; for(;i<26;i++) a[i]... 阅读全文
posted @ 2012-09-11 08:27 'wind 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题意: 已知K,找出 满足等式 X^Z + Y^Z + XYZ = K 的X,Y,Z组合数。分析:固定X,Z,二分枚举Y。#include<stdio.h>#include<string.h>#include<math.h>#define clr(x)memset(x,0,sizeof(x))long long x[50000];int main(){ long long top,i,k,z; while(scanf("%I64d",&k),k) { top=0; clr(x); for(i=1;i*i<=k;i++) .. 阅读全文
posted @ 2012-09-11 08:04 'wind 阅读(244) 评论(0) 推荐(0) 编辑