上一页 1 ··· 8 9 10 11 12
摘要: //最原始的矩阵应用,不解释 #include "Mat.h" #include <iostream> #include<map> #include<string> using namespace std; map<string, int> M; Mat mat, temp1, temp2; int main() { int n, cnt, k, t1, t2, ans, a1, a2; string p1, p2, v1, v2; mod = 2008; while(cin>>n) { mat.clear(); 阅读全文
posted @ 2011-12-29 19:38 windmissing 阅读(115) 评论(0) 推荐(0) 编辑
摘要: //1160 #include <iostream> #include <algorithm> using namespace std; struct mouse { int id; int weight; int speed; int pos; int pre; }s[10005]; bool cmp(mouse a,mouse b) { return(a.weight<b.weight||(a.weight==b.weight&&a.speed<b.speed)); } int main() { int count=0; while(sc 阅读全文
posted @ 2011-12-29 19:03 windmissing 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 解题思路: 这个题目直接求合理的排序比较烦琐,采用模拟的方法也显然不行。可以先考虑可以实现的概率,再用实际的总次数去乘。 先把所有的n个拿50的人排好,接下来再把拿100的人插入队列。求可行的概率。 n个拿50的人有n+1个空位,除了第一个以外,其他的位置都可以,所以概率是n/n+1,在以上的基础下,第2个的的概率是n-1/n(由于是求概率,所以可以把所有的拿50或100的人看成是一样的,在这个前提下可以认为第一个拿50的人和第一个拿100的人一起消失了。为什么可以这么认为?由于在求概率,不去除的化会重复计算,具体读者自己思考)。同理直到最后一个拿100的插入队列,他成功的概率是n-m+... 阅读全文
posted @ 2011-12-29 19:02 windmissing 阅读(146) 评论(0) 推荐(0) 编辑
摘要: //hdu1134大数+catalan数 #include<iostream> #include<string> #include<iomanip> #include<algorithm> using namespace std; #define MAXN 9999 #define DLEN 4 class BigNum{ private: int a[300]; int len; public: BigNum(){len = 1;memset(a,0,sizeof(a));} BigNum(const int b); ... 阅读全文
posted @ 2011-12-29 19:02 windmissing 阅读(133) 评论(0) 推荐(0) 编辑
摘要: /*设d[k]是重量为k时所对应的最小价值,重量不可能凑成k时,置其为-1,表示无穷大状态转移方程:dp[k] = 0…………k = 0;dp[k] = min(value[j] + dp[k - weight[j]])…………k >= weight[j];其中,1=< j <= n,若dp[k - weight[j]]) = -1,表示它是无穷大,重量不能达到本题求的是最小,模板需要做一些细微的改动/*完全背包 有N种物品和一个容量为V的背包,每种物品都有无限件可用。 第i种物品的费用是c[i],价值是w[i]。 令f[i][v]表示前i种物品恰放入一个容量为v的背包的最大 阅读全文
posted @ 2011-12-29 19:02 windmissing 阅读(127) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12