摘要: 纯模拟的题目,一开始用map偷懒,却一直WA了,用普通的方法其实也WA了很久名字之间可能有多个空格隔开吧,一开始一直从左边往右搜,覆盖空格的位置,但是到第二个空格的话,我就退出循环了,一直WA,换成从右往左搜,找到第一个就可以退出了,就这样,过了…………“A single blank space” 空白区呀,我错了,这就是英语水平的问题呀………………,一直以为是一个空格的意思View Code #include<iostream>#include<algorithm>using namespace std;struct name{ char str[100]; int 阅读全文
posted @ 2012-03-04 17:51 枕边梦 阅读(275) 评论(0) 推荐(0) 编辑
摘要: View Code #include<iostream>using namespace std;#define MAX 100#define BASE 10000void multiply(int a[], int Max, int b) //大数乘法,注意参数的传递{ int i, array = 0; for (i = Max - 1; i >= 0; i--) { array += b * a[i]; a[i] = array % BASE; // 数组每一位存放大数的四位数字 array /= BASE; }}void ... 阅读全文
posted @ 2012-03-04 15:34 枕边梦 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一棵树,每一节点都有一权值,要求选出总权值最大的K个点,同时这K个点中任意一个点都不能是其他节点的祖先。。分析:呵呵,一看到题目就感觉是一个树形背包了,可是节点数太多了,150000,吃不消呀,如果用二维数组保存的话,很好写呀,可是肯定爆内存的,所以开了一个临时数组保存模型跟一般的树形背包还是很像的View Code #include<algorithm>#include<vector>#include<iostream>using namespace std;const int N = 150010;vector<int> g[N]; 阅读全文
posted @ 2012-03-04 15:01 枕边梦 阅读(509) 评论(0) 推荐(0) 编辑