Day 1; 1.常见的高精 输入输出都用字符数组: 字符数组的实际长度用strlen()来求: 运算时倒序运算,把每一个字符都-‘0’ 进位的处理上也要注意: 小数减大数时先判断大小然后加负号 只能用while不能用if    因为if只能去掉一个0,while去掉所有的前导零 高精减: 高精乘: 通过逐位相乘,进完位之后输出 2.特殊处理 高精数除以单精数 压位技巧: 把对十取模变成了%10000或者更长,对加和减没啥用,但是乘除的时候能够大量提高速度,复杂度为o(n/m); 在int下可以…
今天是李昊老师的讲授~~ 总结了一下今天的内容: 1.高精度算法 (1)   高精度加法 思路:模拟竖式运算 注意:进位 优化:压位 程序代码: #include<iostream>#include<algorithm>#include<cstdio>#include<cmath>#include<cstring>#include<cstdlib>using namespace std;char a1[1000],b1[1000];i…
今天是冯哲老师的讲授~ 1.枚举 枚举也称作穷举,指的是从问题所有可能的解的集合中一一枚举各元素. 用题目中给定的检验条件判定哪些是无用的,哪些是有用的.能使命题成立的即为其解. 例一一棵苹果树上有n个苹果,每个苹果长在高度为Ai的地方.小明的身高为x他想知道他最多能摘到多少苹果数据范围: 1 ≤ n, Ai, x ≤ 100 题解问题相当于询问有多少i满足Ai <= x考虑用for循环枚举每一个苹果是否能被摘到即可. 例二判断一个数X是否是素数1 ≤ X ≤ 109 题解考虑定义,若X为合数,…
预计分数: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种物品的重量.价值与…
清北学堂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盘都发.…
今天是丁明朔老师的讲授~ 数据结构 绪论 下面是天天见的: 栈,队列: 堆: 并查集: 树状数组: 线段树: 平衡树: 下面是不常见的: 主席树: 树链剖分: 树套树: 下面是清北学堂课程表里的: ST表: LCA: HASH: 堆 支持两种操作: 1.插入一个值: 2.删除一个最大值(大根堆)或最小值(小根堆): 需要使用STL里的 priority_queue 或手写: LCA 结点 A 和结点 B 的最近公共祖先 LCA 及以上都是 A 和 B 的公共祖先: 注意 LCA 是尽局限于树上的…
今天上午是钟皓曦老师的讲授,下午是吴耀轩老师出的题给我们NOIP模拟考了一下下(悲催暴零) 今天的内容——数论 话说我们可能真的是交了冤枉钱了,和上次清明培训的时候的课件及内容一样(哭. 整除性 质数的性质: √n判质数: 按照素数的定义:我们枚举从2到√n,若其中没有一个数是n的因子,则说明n是个质数! 证明为什么到√n: 若n有因数,则n可以写成a*b的形式,我们假设a<=b,若两个数都大于√n,则乘起来一定大于n呀,所以一定有个大于等于√n,一个小于等于√n,证毕! 所以说我们就有了一个直…
贪心方案: 答案是第三个策略 二分的一个重点是有顺序性,只有满足这个件才可以二分判断区间,否则你得自己构造顺序. 洛谷跳石头同题: 首先,我们要最小化最大跳远距离 代码如下(此题) #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,试编一个程序求出小明最多能摘掉几个苹果. 分析:其实也么啥好分析的,就是将小明的身高和苹果的高度进行比较,如果苹果的高度…
上午篇 一.高精度计算: [以下内容先只考虑非负数情况] •高精度加法: 思路:[模拟竖式运算] 注意:[进位] •高精度减法: 思路:[同加法类似,模拟竖式运算,进位变退位] 注意: [结果为负数的情况(一会儿讲到)] •高精度乘法: 思路:[类似,模拟竖式运算,考虑进位] 注意:[结果为0的情况] 附总代码: #include<iostream> #include<algorithm> #include<cstdio> #include<cmath> #…
成绩:满分300,我得了200, 1:90//前两个题目都是模拟,没用到什么其他算法,第一题有可能少考虑了一点细节 2:100 3:10//感觉是个DP,但是毫无思路,只打了个普通背包,10分而已. 题目+数据:http://pan.baidu.com/s/1bpj3SR1 下面是我的代码: 这个题目中我为了得到部分分,而特别判断了几组数据. T1: /* 以后一定要仔细读数据范围,一定要. 数据范围中:20%的数据,只有秒数可能不同,言外之意就是可能相同. 而我的程序因为没有考虑到,时间相同时…
第一天,上午讲了些基本的技巧和简单算法,主要就是适应这里. 中午跑到食堂吃了顿“饭”(我并没有挖苦233333),然后回宿舍休息休息 因为 迎接我们的是模拟啊啊啊啊啊阿 下午题一发下来,并没有想象中的那么难………… 此处开始情节大反转………………………………………………………………………………………………………… 首先,我马上A掉了前两道题,emm感觉还很好,然后就开始看T3 然hi偶我充分发挥了自己语文的极高水平,就把题看错了…… 瞪了两个小时才发现已经要结束考试了,于是,就匆匆忙忙的交了卷……
期望得分: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呢? 我们发现式…
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,…
今天是赵和旭老师的讲授~ 动态规划 动态规划的基本思想 利用最优化原理把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解. 更具体的,假设我们可以计算出小问题的最优解,那么我们凭借此可以推出大问题的最优解,进而我们又可以推出更大问题的最优解.(要满足最优子结构) (从小问题答案推到大问题的答案) 而最小的问题也就是边界情况我们可以直接计算出答案来. 基本思想是将待求解的问题划归为若干个子问题(阶段),按顺序求解子阶段,小的子问题的解,为更大子问题的求解提供了有用的信息. 由于动态…
讲课人: 老师对dp的理解是类似于分治思想,由小状态推出大状态.不同的是分治算法没有重叠子问题. dp把子问题越划越小,从而推出了基础状态.然后是dp方程,要满足简洁性,并且充分描述能够影响最后结果的条件. 转移?zhx:从小问题推到大问题就是转移. 原题链接:. 思路:先把挂钩数量排个序 这个题和导弹拦截差不多,你对l进行从大到小排序,那么文题就变成了求最长不上升子序列的个数,也就是最长上升子序列的长度. n^2做法. 先想n^4做法,然后一步一步优化. 来道水题. 上午完结. 下午: 序列d…
上午7点半到的国防宾馆,8点开始的培训. 讲课人林永迪. 没错就是这个人: 他推荐的教辅:刘汝佳紫书,算法导论(也就看看..),刘汝佳白书 先讲模拟.(貌似就是看题论题. 然后贪心. 贪心没有固定的模板,他是一种思想... 一道例题链接(USACO 然后是线段覆盖和区间覆盖 会场安排问题,也是最经典线段覆盖的问题: 然后是经典区间覆盖问题: 喷水装置 [题目描述] 长 LL 米,宽 WW 米的草坪里装有 nn 个浇灌喷头.每个喷头都装在草坪中心线上(离两边各 W2W2 米).我们知道每个喷头的位…
简述: 今天主要讲分治(主要是二分).倍增.贪心.搜索,还乱入了爬山算法和模拟退火(汗...) 一.分(er)治(fen): 二分是个在OI中广泛运用的思想,随便举些例子,就足以发现二分的运用的广泛性:二分查找.二分答案:归并排序.快速排序:线段树.二叉查找树:0-1线性规划以及经常出现的搭配某个算法的二分题.至于分治,是解决一类可合并问题的法宝. 对于一道满足二分性的题,我们就可以考虑用二分做它.二分性的实质是存在一个单调性或是临界点: 单调性:可能的答案在整体或在某一的区间是单调的,就可以对…
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…
P4744 A's problem(a) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试题,每三天结算一次成绩.参与享优惠 描述 这是一道有背景的题目,小A也是一个有故事的人.但可惜的是这里纸张太小,小A无法把故事详细地说给大家听.可能小A自己也讲不清楚自己的故事,因为如果讲清了,也就没有这道题目了-- 小A的问题是这个样子,它找到了n份不同的工作,第i份工作每个月有ai的工资,每份工作需要小A每天工作8小时,一周工作7天.小A想知道性价…
连续考了一个星期发现自己真的是手感型选手,成绩全靠天意.手感好了码出200+也没什么问题,推出式子并且打出自己都不信的操作也有过.手感差了......就一个呵呵二字. 然后开始是T总让我们休息了一个星期五不考试?本来还以为自己活在梦里然后发现星期天上午没假放了心里真是MMP. 星期五好好输出了一波联赛题,早早就睡了不提. 星期六上午,母后:“今天早上直接去机房不去教室了.” 结果到八点半才开考喵喵喵? UPD:2017年9月23日 20:19:23 Day1 看完题目一脸绝望. T1是我初二普及…
完结撒花? 最后的模拟赛与讲题.大家似乎仍然乐在其中,虽然看评测结果,仍然是满地红. 其实到了最后已经是没有多少可写的了..... 一个精彩的地方是晚上填表的时候,群里炸锅了已经.到处都在刷CCL老师的表情23333 (CCL表示让他们疯去吧) 大概的想了想这几天的内容,在最后的七天里,要做的事情还有很多. (学校模拟赛的出题任务又甩给我了...星期天就要比的..) 先列一些出来吧. 11.4 搞三个题,如果有时间就复习一下排序 查找 二分等基础操作. 11.5 树与图的相关算法(包括新增的二分…
一.枚举: 枚举是最简单最基础的算法,核心思想是将可能的结果都列举出来并判断是否是解. 优点:思维简单,帮助理解问题.找规律.没头绪时 缺点:时空复杂度较高,会有很多冗余的非解(简单的枚举几乎没有利用题目中任何隐藏的特殊性质). 运用枚举的话,首先要确认枚举的状态,或建立一个方便枚举的模型.由此知道枚举的优化主要在以下方面: 1.建立有效.巧妙的枚举模型,减少对非解的枚举. 2.如有多步操作,适当调整各步操作的顺序,使枚举高效化. 3.学习更强大的算法.数据结构.性质等等,用它们来优化枚举(滑稽…
今天的内容分为两部分,能听懂的和听不懂的... 整一整当前阶段(oi)非常重要的知识点,扩展欧几里得, 其他的不是不重要,只是代码实现效果不很好 代码: #include<bits/stdc++.h> using namespace std; int x,y; void exgcd(int a,int b,int &x,int &y){ if(!b){ x=; y=; } else{ exgcd(b,a%b,x,y); //思路与辗转相除相似 int t=x; x=y; y=t…
今天是钟皓曦老师的讲授~~ 总结了一下今天的内容: 数论!!! 1.整除性 2.质数 定义: 性质:  3.整数分解定理——算数基本定理 证明: 存在性: 设N是最小不满足唯一分解定理的整数 (1)  若N为质数,则N=N¹,所以N不存在: (2)  若N为合数,则N=P*(N/P),因为N/P也是不满足定理的整数 所以与N是不满足定理的最小整除相矛盾 所以N不存在 唯一性: 4.素数的判定 (注:s.t.是“使得”的意思) 根据钟神长者的小学经验:取2,3,5,7,13,29,37,89这8个…