摘要: 哈夫曼编码#include<iostream>#include<queue>#include<vector>using namespace std;const int Max = 2001;struct Tode { int id; int weight;};struct node{ int left , right ; int weight;}p[Max];int tail,root,ans;struct cmp{ bool operator() ( Tode a, Tode b ){ return a.weight>b.weight; ... 阅读全文
posted @ 2012-11-27 21:22 HaoHua_Lee 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 简单的深搜。。。#include<iostream>#include<cstring>#include <cstdio>#include<string>#include<queue>#include<vector>#include<map>#include <set>#include<ctime>#include<cmath>#include <cstdlib>#include<algorithm>using namespace std;const i 阅读全文
posted @ 2012-09-08 20:19 HaoHua_Lee 阅读(227) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>#include<cstring>#include <cstdio>#include<string>#include<queue>#include<vector>#include<map>#include <set>#include<ctime>#include<cmath>#include <cstdlib>#include<algorithm>using namespace std;#define eps 1e- 阅读全文
posted @ 2012-06-17 22:01 HaoHua_Lee 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 没想到两场都是200分,虽然两场都只做两题。初赛第一场: 题目:http://wenku.baidu.com/view/0dd551a8dd3383c4bb4cd2bb.htmlA题:搜索一下,复杂度不算高#include<iostream>#include<cstring>#include <cstdio>#include<string>#include<queue>#include<vector>#include<map>#include <set>#include<ctime>#i 阅读全文
posted @ 2012-06-10 09:30 HaoHua_Lee 阅读(243) 评论(0) 推荐(0) 编辑
摘要: uva C – Central Post Officelow[i][0] 表示不回到i点 ,以i节点为根,其子树的最小值,low[i][1] 表示回到i点up[i][0] 表示不回到i点 ,除去以i节点为根,其子树的最小值,up[i][1] 表示回到i点#include<iostream>#include<cstring>#include <cstdio>#include<string>#include<queue>#include<vector>#include<map>#include <set> 阅读全文
posted @ 2012-05-13 17:05 HaoHua_Lee 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 复杂度O(min(k,n-k)^2)#define LL long long LL gcd(LL a, LL b) { return b? gcd(b, a%b): a;}LL C(int n, int k) { vector<int> vn; k=min(n-k,k); for(int i=n-k+1; i<=n; ++i) { vn.push_back(i); } for(int i=2; i<=k; ++i) { int t = i; for(int j=0; j<vn.size(); ++j) { ... 阅读全文
posted @ 2012-05-12 22:23 HaoHua_Lee 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 模拟题,很暴力的水过,不过可以用并查集优化注意两个重点是可以的#include<iostream>#include<cstdio>#include<cmath>#include<cstring>using namespace std;const int N = 500;int ar[N][N];struct Point{ int x,y;}a,b,ra,rb;bool ok(Point a,Point b){ if(a.x==b.x) { for(int i=min(a.y,b.y);i<=max(a.y,b.y);i++) if(ar[a 阅读全文
posted @ 2012-05-12 13:29 HaoHua_Lee 阅读(181) 评论(0) 推荐(0) 编辑
摘要: poj 2096详解见:http://blog.csdn.net/morgan_xww/article/details/6774708View Code #include<iostream>using namespace std;const int N = 2000;double dp[N][N];int n,s;double dfs(int x,int y){ if(x==n&&y==s) return 0; if(x>n||y>s) return 0; if(dp[x][y]!=0) return dp[x][y]; dp[x+1][y]=dfs(x 阅读全文
posted @ 2012-05-10 20:39 HaoHua_Lee 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 最近发现此类题目特别多#include<iostream>#include<cstring>#include <cstdio>#include<string>#include<queue>#include<vector>#include<map>#include <set>#include<ctime>#include<cmath>#include <cstdlib>#include<algorithm>using namespace std;#def 阅读全文
posted @ 2012-05-09 18:26 HaoHua_Lee 阅读(753) 评论(0) 推荐(0) 编辑
摘要: help 那位大神帮我看看到底哪儿错了#include<iostream>#include<cstring>#include <cstdio>#include<string>#include<queue>#include<vector> #include<map>#include <set>#include<ctime>#include<cmath>#include <cstdlib>#include<algorithm>#include <io 阅读全文
posted @ 2012-05-06 10:51 HaoHua_Lee 阅读(210) 评论(3) 推荐(0) 编辑