1.二叉搜索树 STL set直接做就可以了 2.树状数组+差分数列: codevs 1081 线段树练习 2  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master   题目描述 Description 给你N个数,有两种操作 1:给区间[a,b]的所有数都增加X 2:询问第i个数是什么? 输入描述 Input Description 第一行一个正整数n,接下来n行n个整数,再接下来一个正整数Q,表示操作的个数. 接下来Q行每行若干个整数.如果第一个数是1,…
上午篇 一.高精度计算: [以下内容先只考虑非负数情况] •高精度加法: 思路:[模拟竖式运算] 注意:[进位] •高精度减法: 思路:[同加法类似,模拟竖式运算,进位变退位] 注意: [结果为负数的情况(一会儿讲到)] •高精度乘法: 思路:[类似,模拟竖式运算,考虑进位] 注意:[结果为0的情况] 附总代码: #include<iostream> #include<algorithm> #include<cstdio> #include<cmath> #…
今天是钟皓曦大佬讲课,先来膜一波   %%%%% •数论 数论是这次培训的一个重点,那么什么是数论呢? 数论是研究整数性质的东西,所以理论上day2不会涉及小数QwQ (切入正题) •整除性: 设a,b ∈ Z,如果  c ∈ Z 并且 a = b * c,则称 b | a 称: b为a的因子 b能整除a a能被b整除  / /好像很简单的样子 •质数: 只有1和自身作为因子的数叫做质数 以 π(x)表示不超过x的素数个数,可以证明出以下结论(1): lim π(x) * ln x / x =…
小学知识总结 上午篇 •积性函数的卷积公式 (1)(f * g)( n ) = ∑(d|n) f( d ) x g ( n / d ) (2)代码实现 LL f[N], g[N], h[N]; void calc(int n) { ; i * i <= n; i++) { h[i * i] += f[i] * g[i]; ; i * j <= n; j++) h[i * j] += f[i] * g[j] + f[j] * g[i]; } } (3)例题 太难了就不发了QAQ •组合数问题都是…
第一天,上午讲了些基本的技巧和简单算法,主要就是适应这里. 中午跑到食堂吃了顿“饭”(我并没有挖苦233333),然后回宿舍休息休息 因为 迎接我们的是模拟啊啊啊啊啊阿 下午题一发下来,并没有想象中的那么难………… 此处开始情节大反转………………………………………………………………………………………………………… 首先,我马上A掉了前两道题,emm感觉还很好,然后就开始看T3 然hi偶我充分发挥了自己语文的极高水平,就把题看错了…… 瞪了两个小时才发现已经要结束考试了,于是,就匆匆忙忙的交了卷……
1.hash表(哈希表) codevs 2147 数星星--简单哈希  时间限制: 3 s  空间限制: 64000 KB  题目等级 : 钻石 Diamond 题目描述 Description 小明是一名天文爱好者,他喜欢晚上看星星.这天,他从淘宝上买下来了一个高级望远镜.他十分开心,于是他晚上去操场上看星星. 不同的星星发出不同的光,他的望远镜可以计算出观测到的星星发出的光的数值W.小明当然想尽可能地多看到星星,于是他每看到一颗星星,就要看看他之前有没有看过这颗星星.但是他看的星星太多了,他…
今天是李昊老师的讲授~~ 总结了一下今天的内容: 1.高精度算法 (1)   高精度加法 思路:模拟竖式运算 注意:进位 优化:压位 程序代码: #include<iostream>#include<algorithm>#include<cstdio>#include<cmath>#include<cstring>#include<cstdlib>using namespace std;char a1[1000],b1[1000];i…
今天是丁明朔老师的讲授~ 数据结构 绪论 下面是天天见的: 栈,队列: 堆: 并查集: 树状数组: 线段树: 平衡树: 下面是不常见的: 主席树: 树链剖分: 树套树: 下面是清北学堂课程表里的: ST表: LCA: HASH: 堆 支持两种操作: 1.插入一个值: 2.删除一个最大值(大根堆)或最小值(小根堆): 需要使用STL里的 priority_queue 或手写: LCA 结点 A 和结点 B 的最近公共祖先 LCA 及以上都是 A 和 B 的公共祖先: 注意 LCA 是尽局限于树上的…
清北学堂2017NOIP冬令营入学测试 P4745 B's problem(b) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 题目描述 小B生活在一个很奇怪的国家里,这个国家的钱的面值只有可能是25,50,100的.小B最近在做社会实践,这次它选择在一个餐厅里干这件事情.但今天发生了一件有趣的事,这件事情是这个样子的,餐厅里大家都在排队买饭,粗心的打饭阿姨忘记要带零钱,并且所有排队打饭的人只带了一张钱. 具体地,第i个人带了一张…
清北学堂2017NOIP冬令营入学测试 P4744 A's problem(a) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试题,每三天结算一次成绩.参与享优惠 描述 这是一道有背景的题目,小A也是一个有故事的人.但可惜的是这里纸张太小,小A无法把故事详细地说给大家听.可能小A自己也讲不清楚自己的故事,因为如果讲清了,也就没有这道题目了-- 小A的问题是这个样子,它找到了n份不同的工作,第i份工作每个月有ai的工资,每份工作需要小A每天…
快住手!这根本不是暴力! 刷了一整天的题就是了..上午三道题的画风还算挺正常,估计是第一天,给点水题做做算了.. rqy大佬AK了上午的比赛! 当时我t2暴力写挂,还以为需要用啥奇怪的算法,后来发现,只需要把t1的std改上两行就是t2的std.... t3是比较有水平的,与线段覆盖有关的题.正解思路二分+并查集,想法挺巧妙. (上午考试结束之后抽奖发明信片,看到屏幕上的158,我感觉幸福来得太突然了... (是不是我这两天炉石不开橙把非气都用干净了?233 人家清北学堂倒是挺客气,连U盘都发.…
简述: 今天主要讲分治(主要是二分).倍增.贪心.搜索,还乱入了爬山算法和模拟退火(汗...) 一.分(er)治(fen): 二分是个在OI中广泛运用的思想,随便举些例子,就足以发现二分的运用的广泛性:二分查找.二分答案:归并排序.快速排序:线段树.二叉查找树:0-1线性规划以及经常出现的搭配某个算法的二分题.至于分治,是解决一类可合并问题的法宝. 对于一道满足二分性的题,我们就可以考虑用二分做它.二分性的实质是存在一个单调性或是临界点: 单调性:可能的答案在整体或在某一的区间是单调的,就可以对…
Day 1 上午 讲的挺基础的--不过还是有些地方不太明白 例1 给定一个数n,求将n划分成若干个正整数的方案数. 例2 数字三角形 例7 最长不下降子序列 以上太过于基础,不做深入讨论 例3 给定一个数n,求将n划分成若干个正整数的方案数. 题解: 定义状态 \(dp[i][j]\)表示用不超过\(j\)的数来组成\(i\) 状态转移 \(i < j \;\;\; dp[i][j]=dp[i][i]\) \(i = j \;\;\; dp[i][j]=dp[i][j-1]+1\) \(i >…
今天是冯哲老师的讲授~ 1.枚举 枚举也称作穷举,指的是从问题所有可能的解的集合中一一枚举各元素. 用题目中给定的检验条件判定哪些是无用的,哪些是有用的.能使命题成立的即为其解. 例一一棵苹果树上有n个苹果,每个苹果长在高度为Ai的地方.小明的身高为x他想知道他最多能摘到多少苹果数据范围: 1 ≤ n, Ai, x ≤ 100 题解问题相当于询问有多少i满足Ai <= x考虑用for循环枚举每一个苹果是否能被摘到即可. 例二判断一个数X是否是素数1 ≤ X ≤ 109 题解考虑定义,若X为合数,…
Day 1; 1.常见的高精 输入输出都用字符数组: 字符数组的实际长度用strlen()来求: 运算时倒序运算,把每一个字符都-‘0’ 进位的处理上也要注意: 小数减大数时先判断大小然后加负号 只能用while不能用if    因为if只能去掉一个0,while去掉所有的前导零 高精减: 高精乘: 通过逐位相乘,进完位之后输出 2.特殊处理 高精数除以单精数 压位技巧: 把对十取模变成了%10000或者更长,对加和减没啥用,但是乘除的时候能够大量提高速度,复杂度为o(n/m); 在int下可以…
\(Day~0\) 早上\(9\)点多才爬起来,然后水了道题. 下午从[数据删除]出发,颠簸了将近\(5\)个小时终于抵达广州. 一出地铁站--卧槽这天,卧槽这风,要下雨的节奏? 没过两分钟倾盆大雨...真是不幸啊. 本蒟蒻跟本校的巨佬们折腾了\(1\)个多小时,终于回到了酒店. 愿一切顺利! \(Day ~ 1\) 早上瞎吃了点东西,急急忙忙赶到了教室. 清华dalao授课%%%. 我旁边坐了个人才. 上课内容及其简单基础,但是我还是有些内容不大会\(QAQ\). 快速幂,二分,矩阵.就这些,…
今天是赵和旭老师的讲授~ 动态规划 动态规划的基本思想 利用最优化原理把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解. 更具体的,假设我们可以计算出小问题的最优解,那么我们凭借此可以推出大问题的最优解,进而我们又可以推出更大问题的最优解.(要满足最优子结构) (从小问题答案推到大问题的答案) 而最小的问题也就是边界情况我们可以直接计算出答案来. 基本思想是将待求解的问题划归为若干个子问题(阶段),按顺序求解子阶段,小的子问题的解,为更大子问题的求解提供了有用的信息. 由于动态…
成绩:满分300,我得了200, 1:90//前两个题目都是模拟,没用到什么其他算法,第一题有可能少考虑了一点细节 2:100 3:10//感觉是个DP,但是毫无思路,只打了个普通背包,10分而已. 题目+数据:http://pan.baidu.com/s/1bpj3SR1 下面是我的代码: 这个题目中我为了得到部分分,而特别判断了几组数据. T1: /* 以后一定要仔细读数据范围,一定要. 数据范围中:20%的数据,只有秒数可能不同,言外之意就是可能相同. 而我的程序因为没有考虑到,时间相同时…
贪心方案: 答案是第三个策略 二分的一个重点是有顺序性,只有满足这个件才可以二分判断区间,否则你得自己构造顺序. 洛谷跳石头同题: 首先,我们要最小化最大跳远距离 代码如下(此题) #include<cstdio> #include<algorithm> #include<cstring> #define N 300005 using namespace std; int i,j,m,n,p,k,a[N],x;//r为right,l为left int check(int…
今天是第二次培训的第一天,关于NOIP的基础算法,主要内容如下: $1.枚举 $2.搜索 $3.贪心 $1.枚举: •定义: 枚举又叫做穷举,是一种基础的算法,其思路主要是:从问题中有可能的解集中一一列举出可能的解,再使用各种奇奇怪怪的方式将正确的答案找出 (接下来做几道题玩玩咯) •例(1) 题目:一棵苹果树上长有n个苹果,每个苹果距离地面的高度用Ai来表示,小明的身高为h,试编一个程序求出小明最多能摘掉几个苹果. 分析:其实也么啥好分析的,就是将小明的身高和苹果的高度进行比较,如果苹果的高度…
期望得分:60+ +0=60+ 实际得分:30+56+0=86 时间规划极端不合理,T2忘了叉积计算,用解析几何算,还有的情况很难处理,浪费太多时间,最后gg 导致T3只剩50分钟,20分钟写完代码,没调出来 设sum[i][j] 表示字母j出现次数的前缀和 那么题目要求我们 最大化sum[r][x]-sum[l-1][x]-(sum[r][y]-sum[l-1][y]) 如果枚举r,再枚举y,时间复杂度为O(n*26),是可以承受的 但此时还有l-1未知,能否O(1)找到l-1呢? 我们发现式…
预计分数:100+50+50 实际分数:5+50+100 =.= 多重背包 (backpack.cpp/c/pas) (1s/256M) 题目描述 提供一个背包,它最多能负载重量为W的物品. 现在给出N种物品:对于第i类物品,一共有Ci件物品:对于每一件物品,重量为Wi,价值为Vi. 找出一种装载方式使得背包中的物品总价值最大. 输入格式(backpack.in) 第一行两个整数N,W,代表物品的种类与背包的总负重. 第2-N+1行,每行三个整数Wi, Vi, Ci,代表第i种物品的重量.价值与…
讲课人: 老师对dp的理解是类似于分治思想,由小状态推出大状态.不同的是分治算法没有重叠子问题. dp把子问题越划越小,从而推出了基础状态.然后是dp方程,要满足简洁性,并且充分描述能够影响最后结果的条件. 转移?zhx:从小问题推到大问题就是转移. 原题链接:. 思路:先把挂钩数量排个序 这个题和导弹拦截差不多,你对l进行从大到小排序,那么文题就变成了求最长不上升子序列的个数,也就是最长上升子序列的长度. n^2做法. 先想n^4做法,然后一步一步优化. 来道水题. 上午完结. 下午: 序列d…
上午7点半到的国防宾馆,8点开始的培训. 讲课人林永迪. 没错就是这个人: 他推荐的教辅:刘汝佳紫书,算法导论(也就看看..),刘汝佳白书 先讲模拟.(貌似就是看题论题. 然后贪心. 贪心没有固定的模板,他是一种思想... 一道例题链接(USACO 然后是线段覆盖和区间覆盖 会场安排问题,也是最经典线段覆盖的问题: 然后是经典区间覆盖问题: 喷水装置 [题目描述] 长 LL 米,宽 WW 米的草坪里装有 nn 个浇灌喷头.每个喷头都装在草坪中心线上(离两边各 W2W2 米).我们知道每个喷头的位…
Day 1 前置知识: 二进制 2.基本语法 3.时间复杂度 正片       1.枚举 洛谷P1046陶陶摘苹果  入门题没什么好说的 判断素数:从2枚举到sqrt(n),若出现n的因子,则n是合数 因为数据范围比较小,所以直接欧拉筛,再判定在l~r区间内的数 代码......被我吃了 好题*1 显然暴力枚举dfs不现实. 所以我们要想点办法(废话) 用ai来表示第i个数是否选中,不选是0,选是1 把每个ai写下来.拿样例的第一个举个例子,就是1110(3选,7选,12选,19不选) 我们发现…
P1080 国王游戏 题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右 手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排 成一排,国王站在队伍的最前面.排好队后,所有的大臣都会获得国王奖赏的若干金币,每 位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右 手上的数,然后向下取整得到的结果. 国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序, 使得获得奖赏最多的大…
P1650 赛马 题目描述 我国历史上有个著名的故事: 那是在2300年以前.齐国的大将军田忌喜欢赛马.他经常和齐王赛马.他和齐王都有三匹马:常规马,上级马,超级马.一共赛三局,每局的胜者可以从负者这 里取得200银币.每匹马只能用一次.齐王的马好,同等级的马,齐王的总是比田忌的要好一点.于是每次和齐王赛马,田忌总会输600银币. 田忌很沮丧,直到他遇到了著名的军师――孙膑.田忌采用了孙膑的计策之后,三场比赛下来,轻松而优雅地赢了齐王200银币.这实在是个很简单的计 策.由于齐王总是先出最好的马…
题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵. 例如,下面左图中选取第2.4行和第2.4.5列交叉位置的元素得到一个2*3的子矩阵如右图所示. 9 3 3 3 9 9 4 8 7 4 1 7 4 6 6 6 8 5 6 9 7 4 5 6 1 的其中一个2*3的子矩阵是 4 7 4 8 6 9 相邻的元素:矩阵中的某个元素与其上下左右四个元素(如果存在的话)是相邻的. 矩阵的分值:矩阵中每一对相邻元素之差…
P2327 [SCOI2005]扫雷 题目描述 输入输出格式 输入格式: 第一行为N,第二行有N个数,依次为第二列的格子中的数.(1<= N <= 10000) 输出格式: 一个数,即第一列中雷的摆放方案数. 输入输出样例 输入样例#1: 2 1 1 输出样例#1: 2 其实还是扫雷玩的少..知道思路之后很快 只需枚举前两个各自的情况,后面的各自便能够计算出来 注意几个细节(在代码里面) #include <iostream> #include <cstdio> #in…
简单数据结构: 一.二叉搜索树 1.前置技能: n/1+n/2+……+n/n=O(n log n)  (本天复杂度常涉及) 2.入门题引入: N<=100000. 这里多了一个删除的操作,因此要将所有的数都记录下来维护.一个个枚举很容易超时,这时就到了二叉搜索树显示本领的时候了. (注:子树节点的key值小/大于这个点,即子树中所有的节点的key值都小/大于这个点.同时不考虑有两个节点key值相等的情况) 实例: 1.查询最大/小值: 最大值自然就是往右儿子走啦. 核心代码(最小值): int…