雕刻时光

just do it……nothing impossible
随笔 - 547, 文章 - 0, 评论 - 82, 阅读 - 86万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

10 2013 档案

摘要:求序列的最长子序列中不可分割元素的数目。不可分割元素,肯定属于某一个最长子序列,首先做的就是把属于最长子序列的数提取出来,减小查找范围。怎么提取?可以用LIS(最长递增子序列)和LDS(最长递减子序列)。对序列,从前往后,求以每个数 a[i] 为底最长子序列数组index。从后往前,求以每个数a[i]为底的最长递减子序列数组index2。线扫一遍,如果index[i] + index2[i] == length+1(length表示最长子序列的长度),那么这个数就是属于某一个最长子序列的。 提取出来以后,对每个数a[i],看它所对应的index1[i] 在整个数组中出现几次,如果只出现一次,. 阅读全文

posted @ 2013-10-30 22:24 huhuuu 阅读(424) 评论(0) 推荐(0) 编辑

摘要:http://ac.jobdu.com/problem.php?pid=1501如果一行数列里没有0,则我的方法是用两个变量正数与负数,sum表示前面数的乘积, 随时将sum 正负归类放在两个变量里,到 i 位置若为sum为负数,则在负数优先队列里找最大的负数去除到 i 位置若为sum为正数,则在正数优先队列里找#includedouble zmin;//ᅰ�ᅧ�double Fmax;//ᄌ쳐�double inp[100099];double dp[100099];int main(){ int n; while(scanf("%d",&n)!=EOF){ i 阅读全文

posted @ 2013-10-30 20:11 huhuuu 阅读(271) 评论(0) 推荐(0) 编辑

摘要:这是面试中比较常见的题目,max队列也是编程之美里的一道题对于max的栈,有个比较简单的办法就是,每次入栈前判断栈顶元素与正在入栈的元素哪个大,哪个大就哪个入栈对于队列,我们知道可以用两个栈来实现,这时,我想到是否可以用栈来维护max的队列结果是可以的,不过要用三个栈, 1 +2 ,前一个max栈+ (后一个max栈+普通的栈) ,每次寻找max都在前一个max栈和后一个max栈中找,而要更新前一个栈的时候,要把普通的栈来去更新考虑 1,2,4,3 进1进2进4进3出1出2出4 大4大4大3/*10push 1push 2push 4push 2popmaxpopmaxpopma... 阅读全文

posted @ 2013-10-30 18:01 huhuuu 阅读(448) 评论(0) 推荐(0) 编辑

摘要:在公司面试时,当场写排序比较多,虽然都是老掉牙的问题,还是要好好准备下快速排序,以第一个元素为关键词比较,每次比较结束,关键词都会去到最终位置上//7 3 2 9 8 3 4 6//7 3 2 9 8 5 4 6//7 5 2 9 8 3 4 6#includeint s[10999];void mysort(int left,int right){ if(left>=right)return; int mid,key=s[left]; int ll=left,rr=right; while(ll=key&&ll#include#includeusing namespa. 阅读全文

posted @ 2013-10-29 19:08 huhuuu 阅读(464) 评论(0) 推荐(0) 编辑

摘要:题目列表:1. 求二叉树中的节点个数 DFS遍历时记录点的个数2. 求二叉树的深度 DFS遍历时记录点的最大3. 前序遍历,中序遍历,后序遍历 三种DFS4.分层遍历二叉树(按层次从上往下,从左往右) BFS5. 将二叉查找树变为有序的双向链表 先建树,在中序遍历即可//1//4 2 1 0 0 3 0 0 6 5 0 0 7 0 0#includestruct Tree{ int v; Tree *left,*right;}*rhead;void build(Tree *head){ int temp; scanf("%d",&temp); if(te... 阅读全文

posted @ 2013-10-27 22:07 huhuuu 阅读(298) 评论(0) 推荐(0) 编辑

摘要:先判断两个点是否在树中,若不是则直接就找不到若在树中,则DFS搜索连个点所在的路径,搜到了两个路径,在找两个路径最开始的相同点,也就是最近祖先结点PS:吐槽,题目数据中结点会有相同的情况,所以用前驱寻找时会出现死循环!注意先#include#include#includeusing namespace std;struct TREE{ int v; TREE *left,*right;}*rhead;int shu[10009],all=0;void bulid(TREE *head){ int temp; scanf("%d",&temp); if(temp==. 阅读全文

posted @ 2013-10-27 21:05 huhuuu 阅读(810) 评论(0) 推荐(0) 编辑

摘要:http://ac.jobdu.com/problem.php?pid=1520题目描述:输入两颗二叉树A,B,判断B是不是A的子结构。先建树,为了后面匹配时提高速度,每个结点做一个索引然后枚举A中的结点是否与B的树根相同,若相同,则遍历B的同时遍历A,判断是否相似#includestruct Tree{ int v; Tree *left,*right;}* Atree_p[1099],* Btree_p[1099];int n,m;int nodeL,nodeR;void build(Tree *thead,int num,int v){ thead->v=v; i... 阅读全文

posted @ 2013-10-23 21:43 huhuuu 阅读(696) 评论(0) 推荐(0) 编辑

摘要:http://202.120.80.191/problem.php?problemid=1040裸题Description应用高斯消元法求解n*n的线性方程组Ax=b,其中A为系数矩阵。数据保证有唯一解。Input第1行为一个整数n(0#include#includeusing namespace std;#define eps 1e-8 #define zero(a) fabs(a)=1;i--){ for(j=n;j>i;j--){ map[i][n+1]-=map[i][j]*ret[j]; } ret[i]=map[i]... 阅读全文

posted @ 2013-10-23 19:27 huhuuu 阅读(741) 评论(2) 推荐(0) 编辑

摘要:比较方便的做法是对每个顶点做一次勾股定理,如果满足每个角都是直角,就是矩形 如果把问题改成判断四个点是否组成正方形的话,就另外判断相邻的边是否相等,若是,则为正方形 供练习传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1524 #include#include#include#includeusing namespace std;double x[9],y[9];double len[9];double Dis(double x,double y,double x2,double y2){ retu... 阅读全文

posted @ 2013-10-18 22:06 huhuuu 阅读(1057) 评论(0) 推荐(0) 编辑

摘要:昨天去天一论坛听了王明院士的讲座,感触颇多,与大家分享。 现在大家对于百度谷歌等搜索再熟悉不过,但是在我们一开始使用搜索的时候,一定会不适应,因为它们是基于关键词的搜索。查找什么东西,输入几个关键词,而不是一句连续的话,不是咱们平常使用的自然语言,这会出一个什么问题呢,这会大大减弱用户的用户体验,用户体验差了,什么后果,你的产品别人就不想用了。而且更重要的是,现在基于自然语音识别输入渐渐成为一种趋势,如果你的产品不能对自然语言进行处理,这将大大减少这一部分用户量!现在的互联网,谁抢占了用户,谁就有了主动权! 但是,该怎么对自然语言进行处理呢?打个比方,你在百度上输入加拿大多少人,与输入... 阅读全文

posted @ 2013-10-16 21:53 huhuuu 阅读(1488) 评论(0) 推荐(3) 编辑

摘要:主要是对字符串的查找,为了方便并且快速的实现查找,用map会比较方便同时如何把一个带有空格的字符串变成多个单词也有一个小技巧char *point=book[i].keyWord;//关键词分离 while(*point){ sscanf(point,"%s",str); point+=strlen(str)+1; string stemp(str); mm_keyWord[stemp].push_back(i);}#include#include#include#include#include#include#include#include#in... 阅读全文

posted @ 2013-10-14 20:57 huhuuu 阅读(423) 评论(0) 推荐(0) 编辑

摘要:题目意思比较简单,按财富,年龄,姓名来排序看似挺普通的,但被坑了20多次TLE首先排序只要一次,就是按题目规定的进行排序然后在查询的时候,不是从头扫到尾看是否符合年龄的限制,而是记录这个年龄组在数组中的起始结束位置是多少,AC#include#include#include#include#include#includeusing namespace std;struct data{ char name[19]; int age; int worth;}s[100099];int ageFrom[209],ageEnd[209];int cmp(data x,data y){... 阅读全文

posted @ 2013-10-12 21:45 huhuuu 阅读(384) 评论(0) 推荐(0) 编辑

摘要:http://codeforces.com/contest/353/problem/CCodeforces Round #205 (Div. 2)C#includeint s[109999];int dp[109999];char str[109999];int Max(int a,int b){ if(a=0;i--){ if(str[i]=='0')continue; max=Max(max,all+dp[i]); all+=s[i+1]; } max=Max(all,max); ... 阅读全文

posted @ 2013-10-11 13:50 huhuuu 阅读(443) 评论(0) 推荐(0) 编辑

摘要:给予N*2个数字,改变其中的N个向上进位,N个向下进位,使最后得到得数与原来数的差的绝对值最小考虑小数点后面的数字,如果这些数都非零,则就是 abs(原数小数部分相加-1*n), 多一个0 则 min(abs(原数小数部分相加-1*n) ,abs(原数小数部分相加-1*(n-1)) )以此类推#includeint abs(int a){ if(a<0)return -a; else return a;}int Min(int a,int b){ if(a<b)return a; else return b;}int main(){ int n,i; whi... 阅读全文

posted @ 2013-10-10 16:02 huhuuu 阅读(232) 评论(0) 推荐(0) 编辑

摘要:题意自己理解了,主要是两个队列维护,一个VIP队列,一个普通队列搜集了一些坑(有些坑转自别的网站用于广大同学的测试之用)普通人也有VIP的权益!!! 屌丝逆袭有木有!!!920:52:00 10 008:00:00 20 008:02:00 30 020:51:00 10 008:10:00 5 008:12:00 10 120:50:00 10 008:01:30 15 120:53:00 10 110 101 2 3 4 5 6 7 8 9 1008:00:00 08:00:00 008:01:30 08:01:30 008:02:00 08:02:00 008:10:00 08:10:0 阅读全文

posted @ 2013-10-09 21:52 huhuuu 阅读(1808) 评论(3) 推荐(0) 编辑

摘要:骰子点数概率时间限制:1 秒内存限制:32 兆题目描述:把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。输入:输入包括一个整数N(136个结果保存到 2~12的范围内对于3骰子,则 6*(2~12)的结果,保存在3~18的范围,有重复计算,则dp,滚动数组优化空间Ps:原题数据有误,题主已经说明,下面一题可以提交#includedouble dp[3][6099],dp0[6099];int main(){ int i,n,j,k; while(scanf("%d",&n)!=EOF){ int n6=n*... 阅读全文

posted @ 2013-10-08 20:22 huhuuu 阅读(857) 评论(0) 推荐(0) 编辑

摘要:题意:成员A与成员B通话 ,成员B与成员C通话,则 ABC即为一个团伙,一共有若干个团伙,每个团伙的人数大于2且相互通话时间超过一定值即为黑帮,每个黑帮伙里有一个BOSS,boss是与各个成员打电话最多的那一个,找出所有黑帮boss跟与之相应成员数,按字典序排列。分析:通话姓名是字符串,不好直接构图,离散化一下,在用并查集确定团伙,在查找黑帮与BOSS#include#include#include#include#include#includeusing namespace std;int bossLen[2099];int oneLen[2099];int Link[2099];int n 阅读全文

posted @ 2013-10-08 16:27 huhuuu 阅读(1331) 评论(0) 推荐(0) 编辑

摘要:回文字符串时间限制:3000ms | 内存限制:65535KB难度:4描述所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。输入第一行给出整数N(0#include#includeusing namespace std;char ss[5099];char ss2[5099];short dp[5099][5099];int max(int a,int b){ if(a> 阅读全文

posted @ 2013-10-07 17:13 huhuuu 阅读(1192) 评论(0) 推荐(0) 编辑

摘要:http://ac.jobdu.com/problem.php?pid=1544(1)RMQ算法#include int A[100099],d[100099][20];int n,m; int min(int a,int b){ return a int A[100099];int B[100099]; int main(){ int n,m; while(scanf("%d",&n)!=EOF){ int i,j; for(i=1;i<=n;i++){ scanf("%d",&A[i]); } ... 阅读全文

posted @ 2013-10-07 11:13 huhuuu 阅读(367) 评论(0) 推荐(0) 编辑

摘要:面试中比较多会出序列有关的面试题,所以就总结下(1)一个长度N为的序列,求前K小的数 1.排序 N*log(N) 2.最大堆N*log(K) 3.有平均时间复杂度O(n)的算法,因为我们可以在O(n)的时间内找到未排序数组里面第k小的数的值,然后再遍历一下数组,把值小于等于第k小的全都输出(感谢huangnima)(2)有两个长度为N的有序序列A和B,在A和B中各任取一个数可以得到N^2个和,求这N^2个和中最小的N个。 1.比较直观的想法是将A与B的数字相加后排序,时间复杂度O(N*N*log(N*N)) 2.考虑到要求的是求最小的N个数字,所以从这里考虑优化,维护一个大小为N... 阅读全文

posted @ 2013-10-05 20:13 huhuuu 阅读(1587) 评论(6) 推荐(0) 编辑

摘要:http://pat.zju.edu.cn/contests/pat-a-practise/1043给予N个数字组成二叉搜索树,判断这个数列是否由先序遍历得出或是镜像先序遍历得出,若是则输出相应的后续遍历或是镜像后续遍历分析:镜像先序遍历其实就是 先访问祖先,再访问右子树,再左子树镜像后续遍历就是先访问右子树,再左子树,在祖先#includestruct tree{ int v; tree *left,*right;};int shu[1099];int pre[1099];int post[1099];int step;void bulid(tree* head,int v){ ... 阅读全文

posted @ 2013-10-05 11:27 huhuuu 阅读(290) 评论(0) 推荐(0) 编辑

摘要:http://ac.jobdu.com/problem.php?pid=1499给N个有开始结束的且有价格的项目 安排项目的顺序 使总价值最大将项目按结束时间排序,01背包 ,dp[i] 表示到第i个项目,最大的价值是多少j从后往前遍历,更新符合 条件的的dp[i]#include#include#includeusing namespace std;struct data{ int ll,rr; int v;}s[10999];int dp[10999];int cmp(data x,data y){ return x.rr=1;j--){ i... 阅读全文

posted @ 2013-10-03 22:06 huhuuu 阅读(246) 评论(0) 推荐(0) 编辑

摘要:看了未知死亡的,是一部悲剧,鲁迅说过,悲剧就是把美好的事物毁灭。 男主角是幸运的,又是不幸的,不幸在于自己的挚爱被毁灭,幸运的是他只有15分钟的记忆,只要不刻意,记忆就会随风而逝。 对电影中的一个场景印象深刻,如果你失去记忆了,而这时有人拿着一个日记说是你以前的样子,而你选择这是你的记忆还是不去相信,重新开始。 阅读全文

posted @ 2013-10-03 20:55 huhuuu 阅读(284) 评论(1) 推荐(1) 编辑

摘要:http://blog.csdn.net/haoel/article/details/1948051 阅读全文

posted @ 2013-10-01 21:29 huhuuu 阅读(206) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示