随笔分类 -  数据结构学习笔记

摘要:其实巨水...然而 不用scanf prinf 根本过不了.....真无聊第一版代码有点问题 效率不高 主要是考虑到这个家族有可能一开始就是个森林 不是从树里分出去的实际上数据点还是一棵树 然后变成的森林 这样的话只要三个数组就可以了alive记录是否活着sons记录每个人的子节点个数father记... 阅读全文
posted @ 2015-07-29 00:46 雨尘之林 阅读(660) 评论(0) 推荐(0)
摘要:...被输入给坑了 应该先把所有的空格删掉再玩 还有就是测试点里好像根本就没有关于后结合的事情...不过后结合也很简单 控制一下优先级的判断即可.中缀表达式的处理核心就是两个堆栈的维护一个是 操作符栈一个是 操作数栈只有当 当前正在处理的操作符的优先级大于(不考虑后结合时) 栈顶操作符的时候, 才进... 阅读全文
posted @ 2015-07-28 23:57 雨尘之林 阅读(511) 评论(0) 推荐(0)
摘要:优先队列自动解决了动态排序问题,非常好用。。。#include #include #include #include using namespace std;int n;int seeds[10000];int presum[10000];priority_queue,greater > q;voi... 阅读全文
posted @ 2015-07-22 15:08 雨尘之林 阅读(455) 评论(0) 推荐(0)
摘要:水题也要优化效率嘛1.用两个数组单独记录下标的更新2.用STL中lower_bound来进行二分查找.要注意lower_bound的返回值意义 是大于等于val的第一个,所以返回值要进行判断才可以利用#include #include #include #include using namespac... 阅读全文
posted @ 2015-07-20 17:26 雨尘之林 阅读(696) 评论(0) 推荐(0)
摘要:http://acm.sjtu.edu.cn/OnlineJudge/problem/1382注意到 排序之后 i从前向后扫描时,cur恰好是从后向前的,所以即使是双重循环,也是O(n)的算法。#include #include using namespace std;int N,S;unsigne... 阅读全文
posted @ 2015-07-08 16:02 雨尘之林 阅读(340) 评论(0) 推荐(0)
摘要:Description丁姐和二哥一样养了很多猴子,每只猴子脖子上都挂着一个数字号码牌(数字可能重复但是不重要),一天他和这些猴子完游戏。一开始时有n只猴子围成一圈,猴子的号码牌按顺序为1~n。从当前猴子开始1~k报数,报到k后可能由两种操作:①报到k的猴子从圈中出去,由刚刚退出的猴子的下一只猴子再开... 阅读全文
posted @ 2015-06-10 22:16 雨尘之林 阅读(535) 评论(0) 推荐(0)
摘要:1371. 期末打分Description马上要到期末,助教们准备开始打分,然而毕设DDL要到了,助教只好请丁姐来帮忙。众所周知丁姐大一就把毕设做完了,这时候肯定空的跟狗一样。翁阿姨让丁姐统计分数落在区间[a,b]内的学生人数,由于学生很多,丁姐很懒,他决定把这个任务交给你。Input Format... 阅读全文
posted @ 2015-06-10 22:12 雨尘之林 阅读(439) 评论(0) 推荐(0)
摘要:Description给出一个总字符个数大小不超过1,000,000的字典(这个字典的单词顺序不为字典序)和不超过1000个长度不超过1000的前缀,输出字典中匹配该前缀,字典序为K_i的单词在字典中的位置。所有单词都为小写字母。Input Format第一行: 两个整数N,M,分别表示字典中的单词... 阅读全文
posted @ 2015-06-03 11:16 雨尘之林 阅读(907) 评论(0) 推荐(0)
摘要:1034. 二哥的金链Description一个阳光明媚的周末,二哥出去游山玩水,然而粗心的二哥在路上把钱包弄丢了。傍晚时分二哥来到了一家小旅店,他翻便全身的口袋也没翻着多少钱,而他身上唯一值钱的就是一条漂亮的金链。这条金链散发着奇异的光泽,据说戴上它能保佑考试门门不挂,RP++。好心的老板很同情二... 阅读全文
posted @ 2015-05-27 23:33 雨尘之林 阅读(1026) 评论(1) 推荐(0)
摘要:Description现在有一棵树T,有N个节点,我们想通过去掉一个节点p来把T分割成更小的树,并且满足每个小树中的节点数不超过n/2。请根据输入的树来输出所有可能的p的号码。Input Format第1行:一个整数N,代表有N个节点,且每个节点的编号为1,2,...,N。第2~N行:每行两个整数x... 阅读全文
posted @ 2015-05-16 14:28 雨尘之林 阅读(899) 评论(0) 推荐(0)
摘要:Description凯恩在遗迹探险时遇到了n个按钮,刚开始所有按钮都处于开状态,凯恩的经验告诉他把所有按钮都关上会有“好事”发生,可是有些按钮按下时会让其他一些已经闭合的按钮弹开,经过凯恩研究,每个按钮都对应着一个固定的弹开集合,这个按钮按下时,弹开集合中所有的按钮都会变为开状态。现在小k想知道是... 阅读全文
posted @ 2015-05-08 20:45 雨尘之林 阅读(1321) 评论(0) 推荐(0)
摘要:【题目描述】已经深夜了,露子仍然在公园里仰望星空。你走近后,她对你说:“呜—,你看夜空中的星星。它们本来都是孤独地毫无联系,但人们赋予了它们各种地联想,在它们之间连上了线,便形成了夜空中无数的星座。”你回答:“是啊。为什么我们不自己创造一个美丽的星空呢?”假设夜空中一共有n颗星星,它们初始时都没有连... 阅读全文
posted @ 2015-05-08 12:46 雨尘之林 阅读(402) 评论(0) 推荐(0)
摘要:---恢复内容开始---DescriptionCC非常喜欢化学,并且特别喜欢把一大堆液体倒在一起。现在CC有n种液体,其中m对会发生反应,现在她想把这n种液体按某种顺序倒入一个容器内,让她获得最刺激的体验,使危险系数尽量大。我们可以这样计算危险系数,一开始容器内没有任何液体,危险系数为1。每次液体倒... 阅读全文
posted @ 2015-05-01 19:52 雨尘之林 阅读(1066) 评论(0) 推荐(0)
摘要:Descriptioncxt的扑克牌越来越先进了,这回牌面的点数还可以是负数, 这回cxt准备给扑克牌分组,他打算将所有的牌分成若干个堆,每堆的牌面总和和都要大于零。由于扑克牌是按顺序排列的,所以一堆牌在原牌堆里面必须是连续的。请帮助cxt计算一下,存在多少种不同的分牌的方案。由于答案可能很大,只要... 阅读全文
posted @ 2015-05-01 13:03 雨尘之林 阅读(609) 评论(0) 推荐(0)
摘要:/*因为注释很详细,就直接上代码了,需要注意的是,用了白书的三种方法来进行判重,其中最快捷的方法还是stl的set,还有哈希技术涉及到了多个链表的处理,还有一种就是编码解码技术,这个需要找到一个非常好的函数才能达到一一对应。而哈希表不需要一一对应(因为有链表)。*///// main.cpp// ... 阅读全文
posted @ 2015-02-14 18:43 雨尘之林 阅读(284) 评论(0) 推荐(0)
摘要:在之前的 N 皇后和困难的串问题中,回溯法都是在解决可行性约束。换一句话说,对于回溯点的判断是用来验证此点是否合法。但是在一些优化问题的求解过程中,每一个点都是合法的,所以我们要进行剪枝。1.先得到一个解。(一般情况下不是最优解,实现细节:用一个极大的数先作为结果。)2.在回溯的过程中,判断继续进行... 阅读全文
posted @ 2015-02-10 18:53 雨尘之林 阅读(420) 评论(0) 推荐(0)
摘要:= ,= 妈蛋,拓扑排序和欧拉回路先放一放,实在有点力不从心。先继续学习暴力破解法。在那之前,把八连块和走迷宫先记录一下。八连块,此名字十分坑爹,其实只要是连着的黑色区域都叫做一个八连块。计算一个图中黑色八连快的个数,分析:利用DFS的思想来从0,0起点遍历整个图,遍历的过程中先是寻找到一个没有被访... 阅读全文
posted @ 2014-08-16 18:14 雨尘之林 阅读(258) 评论(0) 推荐(0)
摘要:记录二叉树的最大宽度W和深度D根据输入树的方式,考虑用循环更新的方法来记录,这就需要每一个节点都要有一个所在层的属性,每一层有一个所拥有的宽度的属性不要去考虑如何记录整个树,没必要int f[17]={0},w[17]={0};//f中存储着对应节点号的所在层数,方便记录和递增//w中存储着每层的节... 阅读全文
posted @ 2014-08-13 20:15 雨尘之林 阅读(231) 评论(0) 推荐(0)
摘要:首先先来复习一下递归法解决问题。引例就用十分经典的汉诺塔问题。先用数学归纳法,算出n个盘子所需要的最少步骤为2^n-1次。(动态规划的数学基础是数学归纳法,此处的递归也有某种通性)递归时要考虑最基础的步骤,那就是分三步。第一步,将上面的n-1个盘子从A移到B第二步,将第n个盘子从A移到C第三部,将那... 阅读全文
posted @ 2014-08-11 19:25 雨尘之林 阅读(233) 评论(0) 推荐(0)
摘要:此次重点在于 二叉树的结构体构造(指针的大量练习),数组方式构造(简易)建树的输入方式为,(11,LL) (7,LLL) (8,R) (5,) (4,L) (13,RL) (2,LLR) (1,RRR) (4,RR) ()()表示结束LL表示从根节点开始向右移两次,并且同时延伸 (5,)表示根节点首... 阅读全文
posted @ 2014-08-11 17:45 雨尘之林 阅读(240) 评论(0) 推荐(0)