上一页 1 ··· 150 151 152 153 154 155 156 157 158 ··· 182 下一页
摘要: 简单题View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;char key[4][20];int main(){ //freopen("t.txt", "r", stdin); strcpy(key[0], "1234567890-="); strcpy(key[1], "QWERTYUIOP[]\\"); strcp 阅读全文
posted @ 2011-05-18 19:29 金海峰 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 暴力搜索dfs,注意要利用递归来减少计算总通信量的次数。View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;#define maxn 21int map[maxn][maxn], ans = 0;bool in[maxn];int n;void dfs(int now, int sum){ if (now > n) { if (sum > ans) ans = sum; return; 阅读全文
posted @ 2011-05-17 21:19 金海峰 阅读(564) 评论(0) 推荐(0) 编辑
摘要: 线段树,线段树一般是对连续的区块进行操作,每次给出相应的区块,但是本题给出海报覆盖的是区间,要把区间对应到区块上。虽然有些情况还不能处理,但是过了。View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>using namespace std;#define maxn 20005struct Interval{ int s, e;}interval[maxn];struct Node{ N 阅读全文
posted @ 2011-05-17 20:51 金海峰 阅读(870) 评论(1) 推荐(0) 编辑
摘要: 简单并查集View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;#define maxn 50004int father[maxn];int getanc(int a){ if (father[a] == a) return a; return father[a] = getanc(father[a]);}void merge(int a, int b){ if (father[a] == -1) 阅读全文
posted @ 2011-05-17 19:23 金海峰 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 题意:有k种物品,m个供应商,n个收购商。每个供应商和收购商都需要一些种类的物品若干。每个供应商与每个收购商之间的对于不同物品的运费是不同的。求满足收购商要求的情况下,最小运费。分析:最小费用最大流,最大流的前提下求最小费用。这题我们可以把k种物品分开计算,每次对一种物品进行最小费用最大流计算。如果不分开算会超时。对于每种物品,从源到供应商连接,容量为供应商的储存量,费用为0。采购商到汇连边,容量为需求量,费用为0。供应商到采购商连边,容量为无穷,费用为对应的运费。最小费用最大流的计算流程大致是:每次找到一条根据费用来看的最短路,然后对这条最短路进行增加流量,直到所有路径流量都不能增加为止。V 阅读全文
posted @ 2011-05-17 18:58 金海峰 阅读(1286) 评论(0) 推荐(0) 编辑
上一页 1 ··· 150 151 152 153 154 155 156 157 158 ··· 182 下一页