重点回顾
文章平均质量分 64
Matrix1254
爱代码,爱加班,爱咖啡可乐
爱挑战,爱钻研,爱打游戏
爱晚起,也爱工作到深夜。
我擅长技术,崇尚简单和懒惰
我神秘而孤僻,沉默而爱憎分明
我行我素,我是程序员
展开
-
hdu 1856 More is better (究级版)
简单题,列出最大集合所含元素个数即可。要用带路径压缩的并查集,不然会TLE。另外,要注意当n为0时,要输出1. 题目有说: or there is only one boy left. 可能有100000个男孩,但都没配对,答案是1。AC代码:#includeusing namespace std;#define NUM 10000005int set[NUM];int a原创 2013-02-09 16:28:19 · 440 阅读 · 0 评论 -
pat 1054 The Dominant Color
求数组中出现次数超过一半的数字,排序再取中位数太慢,hash表记录出现次数,空间复杂度太高,从另一个角度来看,出现次数超过一半的数字,其出现次数比其它所有数出现之和还多,每次从数组中除去两个不同的数字,直到最后,剩下的肯定是所求。用cad(候选)表示所求的数,nTime为它出现的次数。依次遍历数组,若a[i]和cad不同则nTime--; 若相同则nTime++; 若nTime为0, 则取下原创 2013-05-24 16:20:53 · 1840 阅读 · 3 评论 -
pat 1051 pop sequence
这题对于自己,意义不小,编程能力还是如此之弱!sigh! 用cur标记入栈序列的最大值,逐个扫描出栈序列x,当x与当前栈顶元素不一致(大于或小于)时就将cur++入栈(即使是x大于栈顶元素也将cur++入栈,它必将超过栈容量)。当x与当前栈顶元素一致时,将栈顶元素出栈即可。若栈内元素超过栈容量,则不合法。AC代码:#include#includeusing namespace s原创 2013-05-24 10:51:27 · 998 阅读 · 0 评论 -
pat1016 Phone Bills
题目不难,但输入输出数据多,格式多,需要些许思维和注意。花费了非常多时间,也算有些收获。首先,卡在输入输出上,string类型只能用cin,不能用scanf,printf ,若要用printf,只能用printf("%s",str.c_str())。输入中若带“:”,得用getchar()。在printf时,最后一个%02d少加了个%,一直报越界。要细心。此题发现,pat测试数据爱出在临界条件上,原创 2013-02-28 10:10:08 · 1146 阅读 · 0 评论 -
pat 1003 Emergency (值得重点回顾)
一开始看错题意,题意是要求单源点对最短路径数和最大的点权重之和。知道要用dijskra算法,但为了求最短路径数,还得用深搜,依次把点加入集合中,若路径长度=最短路径值时,路径数+1。同时求出最大的点权重之和。递归函数{出口条件处理(最低级的情况);return ...;从第1列的8个位置{依次尝试设置格子及限制区域向下级递归复原上一次尝试}};A原创 2013-02-26 21:44:37 · 2219 阅读 · 0 评论 -
pat 1020 Tree Traversals
已知二叉树后序和中序,求层次顺序。需要重点参考。#include#include#includeusing namespace std;struct node{ int value; node *left,*right;};vector inOrder,post,ans;queue outOrder;node * getParent(int start,int en原创 2013-02-26 15:59:48 · 634 阅读 · 0 评论 -
总结
压标 //23:46 16分#includeconst int NUM=100005;int a[NUM];int v[NUM];int main(){ int n,i,val; int index=-1; //freopen("C:\\Documents and Settings\\Administrator\\桌面\\input.txt","r"原创 2013-03-10 10:04:25 · 789 阅读 · 0 评论 -
pat 1047 Student List for Course
与之前的一题类似,最后一点超时,是O(m*nlogn)。参考网上代码,不要每次都遍历,只遍历一遍就好。对于每一门课,都将其选课学生标记下来,再遍历一遍学生,若有标记的,则输出。代码://1047 19:20-19:38#include#include#include#include#includeusing namespace std;map >m;原创 2013-03-07 19:32:21 · 1062 阅读 · 0 评论 -
pat 1049 Counting Ones
第4,6个点超时。后来发现居然是编程之美的一道原题,用了书上代码,直接AC。代码: //1049 20:14-20:35#includeconst int NUM=100000000;int find(int x){ int res=0; while(x){ if(x%10==1) res++; x=x/10; } return re原创 2013-03-07 20:36:32 · 1238 阅读 · 0 评论 -
pat 1045 Favorite Color Stripe
比较简单的dp题。假设dp[s]为s长度的字串的最大值。则状态转移方程为:dp[s]=dp[r]+1 ( seq[s]>seq[r]&& dp[r]+1>dp[s] )。就判断最后一个字母要不要加入即可。AC代码:#include#define N 200#define M 10000using namespace std;int main(void){ int原创 2013-03-09 10:16:48 · 1414 阅读 · 0 评论 -
pat 1034 Head of a Gang
题意是要求总共有几个集合,每个集合权重最大的是哪个,以及每个集合中结点个数。一开始老想用并查集来做,发现实现起来很困难。参考网上代码,发现可以用DFS遍历,数出每个分支的结点个数。其中map的迭代器的使用得注意。还有,若一个gang中同时有多个相同的最大值,取字母序最小的。虽然不加这点,也能过,但为了健壮性,加上吧。 AC代码:#include#include#include原创 2013-03-06 11:10:34 · 1901 阅读 · 0 评论 -
pat 1033 To Fill or Not to Fill(值得重点回顾)
有点难度的贪心题,贪心策略有点绕,得静下心来分析,同时得增强自己的代码能力。实质是汽车加油问题。贪心策略:假设现在自己处于A站,要考虑的是A站要不要加油,加多少油的问题。找到下一个要加油的站B(距离A站cmax*davg范围内的最便宜的站)。1. A站油价比B价高,现在油箱里还有油,能跑到B站,那就不加油,直接跑去(这里B站跟2,3情况不同,是距离A站currGas*davg范围内的最便宜原创 2013-03-06 10:10:06 · 2439 阅读 · 1 评论 -
pat 1010 radix 部分正确20分
将两个其它进制的数都转化为10进制,再对比两者是否相等即可。题目没说范围,据说会出到这样的数据:1234567890 10 1 10 ,于是必须使用二分来做,否则必然TLE。部分正确代码:#include#includechar a[12],b[12];#define NUM 1000int dis(char a){ if(a>='0'&&a<='9') re原创 2013-02-18 21:12:00 · 1384 阅读 · 0 评论 -
hdu 1085 Holding Bin-Laden Captive!
此题在前题1082上增加了些变化,硬币的个数有限。指数的范围变成不确定,最大可能为sum=a[0]+a[1]*2+a[2]*5。第3层循环控制硬币的个数。另外,j是第一个括号的指数,虽然第1趟时jAC代码://1398 16:07#includeusing namespace std;const int iNum=8005;int c1[iNum],c2[iNum];int ma原创 2013-02-16 17:23:02 · 401 阅读 · 0 评论 -
hdu 1398 Square Coins
母函数的第一道例题,可采用模版。整理模版:#include using namespace std;const int lmax=10000; int c1[lmax+1],c2[lmax+1];int main(){ int n,i,j,k; while (cin>>n) { for (i=0;i<=n;i++)//c1保存第1个括号,c2总是保存一趟原创 2013-02-16 15:44:09 · 526 阅读 · 0 评论 -
pat 1055 The World's Richest
题意其实是求数组中的前k小的数。简单的方法大家都想得到,先排序,再取前k个,第二个不出意料的超时。要想以线性期望时间通过,应该得用随机选择算法来做。暂时先放着,以后再来解决。代码:#include#include#includeconst int MAXN = 100005;struct human{ char name[10]; int age; int net_wort原创 2013-05-24 21:46:52 · 1160 阅读 · 0 评论