随笔分类 -  暑期训练

摘要:2017-08-29 14:35:55 writer:pprp AVL树就是带有平衡条件的二叉查找树。每个节点的左子树和右子树高度相差最多为1的二叉查找树 空树的高度定为-1 对树的修正称为旋转 对内部的来说是双旋,对外部的调整修正是单旋 由于一次旋转总能解决问题,因此编写非递归程序要比编写递归程序 阅读全文
posted @ 2017-08-29 20:06 pprp 阅读(275) 评论(0) 推荐(0)
摘要:2017-08-29 11:46:37 writer:pprp 已经写了二叉树好几次了,但是还是有很多细节没有考虑完全 还有好多东西都没有考虑到,以后还是要写这个代码,把应该考虑的细节都考虑清楚 在写有关树的函数的时候都要小心地处理空树的这种退化情况 代码及讲解如下:(都测试过了,应该没问题,如果有 阅读全文
posted @ 2017-08-29 11:50 pprp 阅读(182) 评论(0) 推荐(0)
摘要:2017-08-28 21:27:21、 writer:pprp 基数排序,基于每一位进行的桶排序 实现起来很难,也很巧妙 代码及讲解如下: 阅读全文
posted @ 2017-08-28 21:29 pprp 阅读(220) 评论(0) 推荐(0)
摘要:2017-08-28 20:46:09 writer:pprp 双向链表比单链表每个节点还多了一个 pre 可以从当前节点找到上一个节点,操作比较方便, 但是由于指针较多,容易乱,所以写代码的时候要画图 代码及解释&测试如下: 阅读全文
posted @ 2017-08-28 20:49 pprp 阅读(162) 评论(0) 推荐(0)
摘要:2017-08-28 17:36:28 writer:pprp 这是我第二次完全独立的去写链表,除了链表的排序部分以外, 感觉比较顺利,这种模块化的写法比较令人舒畅 这个链表储存的是一个工人的工号和他的工资,进行一系列操作 代码和说明如下: 阅读全文
posted @ 2017-08-28 17:40 pprp 阅读(236) 评论(0) 推荐(0)
摘要:2017-08-28 15:07:16 writer:pprp 好开心,这道题本来在集训的时候做了很长很长时间,但是还是没有做出来,但是这次的话,只花了两个小时就做出来了 好开心,这次采用的是仔细分析需要的函数,写一个函数就将这个函数进行测试,所以效率比较高 这次竟然提交了一次直接AC了,hhhh 阅读全文
posted @ 2017-08-28 15:17 pprp 阅读(270) 评论(0) 推荐(0)
摘要:2017-08-28 10:55:17 writer:pprp 在之前写了一个关于bitset用法的贴之后,这是第一次运用,不得不说如果不用的话还是一头雾水 以后写代码要标记开始时间,和结束时间了,我认为这是一个好习惯 这次写这个简单的代码也提醒我,应该写一部分就调试一部分,而且一般别用debug, 阅读全文
posted @ 2017-08-28 11:00 pprp 阅读(575) 评论(0) 推荐(0)
摘要:2017-08-27 17:24:07 writer:pprp 题意简述: • Codeforces 578C Weakness and poorness• 给定一个序列A• 一个区间的poorness定义为这个区间内和的绝对值• weakness等于所有区间最大的poorness• 求一个x使得, 阅读全文
posted @ 2017-08-27 17:27 pprp 阅读(351) 评论(0) 推荐(0)
摘要:2017-08-27 16:38:47 writer:pprp 最大连续区间和,可以有很多种方法实现,其中最常见的是运用一维前缀和还有动态规划来解决的; 代码如下: 阅读全文
posted @ 2017-08-27 16:40 pprp 阅读(610) 评论(0) 推荐(0)
摘要:2017-08-27 11:11:38 writer:pprp 二维前缀和主要用到了容斥定理,具体实现还是有点复杂的 详见代码: 阅读全文
posted @ 2017-08-27 11:13 pprp 阅读(361) 评论(0) 推荐(0)
摘要:2017-08-27 10:26:19 writer:pprp 进行测试如下四种输入方式: 1、scanf 2、cin 3、用了ios::sync_with_stdio(false);的cin 4、自己写的输入函数(如下) 测试先随机生成了1000以内数,保存在out.txt文件中,大概2M的内容 阅读全文
posted @ 2017-08-27 10:32 pprp 阅读(582) 评论(0) 推荐(0)
摘要:2017-08-27 09:30:59 writer:pprp 很基础的一个知识点,想要求区间内的和,可以考虑用两个前n项和 相减 输入输出部分,采用自己写的一个函数,用getchar() putchar()来读取和输出结果 用的时候应该注意具体的具体的类型应该根据题目选定 代码如下: 阅读全文
posted @ 2017-08-27 09:36 pprp 阅读(391) 评论(0) 推荐(0)
摘要:2017-08-26 22:25:57 writer:pprp 题意很简单,给你一串数字,问你给定区间中最大值减去给定区间中的最小值是多少? 用ST表即可实现 一开始无脑套模板,找了最大值,找了最小值,分别用两个函数实现,实际上十分冗余 所以TLE了 之后改成一个函数中同时处理最大值和最小值,就可以 阅读全文
posted @ 2017-08-26 22:30 pprp 阅读(299) 评论(0) 推荐(0)
摘要:2017-08-26 21:44:45 writer:pprp RMQ问题就是区间最大最小值查询问题; 这个SparseTable算法构造一个表,F[i][j] 表示 区间[i, i + 2 ^ j -1]的最大或者最小值 ST分为两个部分 1、nlogn的预处理 预处理主要用到了动态规划,二分区间 阅读全文
posted @ 2017-08-26 21:54 pprp 阅读(313) 评论(0) 推荐(0)
摘要:2017-08-26 20:18:50 writer:pprp 问题大概描述: 有一个2k∗2k的方格棋盘,恰有一个方格是黑色的,其他为白色。你的任务是用包含3个方格的L型牌覆盖所有白色方格。 黑色方格不能被覆盖,且任意一个白色方格不能同时被两个或更多牌覆盖。 用分治法来解决,分治的时候要确定状态, 阅读全文
posted @ 2017-08-26 20:23 pprp 阅读(464) 评论(0) 推荐(0)
摘要:2017-08-26 15:25:22 writer:pprp 题意描述: • 1 VS n对战,回合制(你打他们一下,需要受到他们所有存活人的攻击)• 你的血量无上限,攻击力为1• 对手血量及攻击力给定• 消灭所有敌人掉最少的血量• n ≤ 20 贪心的去做,应该优先解决那些攻击力高血量低的敌人, 阅读全文
posted @ 2017-08-26 15:28 pprp 阅读(338) 评论(0) 推荐(0)
摘要:2017-08-26 11:38:42 writer:pprp 已经是第二次写这个题了,但是还是出了很多毛病 先给出AC代码: 解题思路: 之前在培训的时候只是笼统的讲了讲怎么做,进行二分对其中一边进行暴力枚举,对另一边用lower_bound查找算出的相反数 现在给出详细一点的思路: 答案可能在左 阅读全文
posted @ 2017-08-26 11:49 pprp 阅读(193) 评论(0) 推荐(0)
摘要:2017-08-25 20:08:54 writer:pprp 题目简述: • HDU 5616• n个砝码,可以放在天平左右两侧或不放• m次询问,每次询问是否可以测出给定重量• 1 ≤ n ≤ 20• 1 ≤ m ≤ 100 这道题采用枚举的思路的话实现起来还是有点困难的, 要实现的功能是对每个 阅读全文
posted @ 2017-08-25 20:15 pprp 阅读(234) 评论(0) 推荐(0)
摘要:2017-08-25 16:59:48 今天遇到一个很神奇得体cf 35C 如果不用以下这个代码就过不去??!! 竟然连test1都过不去 所以以后还是要加上这段代码的 找到原因了,感觉自己好傻 这个题有说明了,之前PDF中已经明白题意所以没有仔细看题目,以后还是要小心了 以下是看cf 上大佬经常用 阅读全文
posted @ 2017-08-25 17:03 pprp 阅读(330) 评论(0) 推荐(0)
摘要:2017-08-25 15:32:14 writer:pprp 题目: B. Rectangles time limit per test 1 second memory limit per test 256 megabytes input standard input output standar 阅读全文
posted @ 2017-08-25 15:39 pprp 阅读(301) 评论(0) 推荐(0)