传送门 预计得分:100+100+100+100=400 实际得分:55+100+60+80=295 细节决定成败啊!!! T1 这道题思路很简单,就是一些细节很变态坑人 首先,数据不一定是有序的,虽然数据给了我们这样的一个假象 其次,可能有重复的数据(这些牛都非常瘦啊) 所以,我们的思路就来了:排序,去重,差分(算出两个牛栏之间的距离),再排个序(复杂度看似有点高),再贪个心就可以了 上代码 T2 最大的最小值——二分答案 但是,我们要对区间进行修改,单点查询 所以朴素的check函数复杂度O…
传送门 预计得分:100+100+100+10=310 实际得分:100+0+82+10=192 你们基础知识不行啊——by wxg T1 一看数据范围就是搜索 但是不能因为数据范围就断送了dp的心 一个典型的二维偏序问题 而二维偏序的解决策略就是sort第一维,维护第二维 而维护第二维的算法显然是最经典的LIS 而LIS的话,虽然有O(nlogn)的解法,但是n<=20,没有优化的必要 所以我们的代码就来了 T2 一道经典的二分题 如何判断的二分?? 二分有两个特征: 1.最大的最小值一般都是…
(因为david_alwal太懒了,所以本期题解作者为Th Au K,码风不同请自行适应) 传送门 T1 BFS?贪心?我也说不清 反正就是对每一个“#”搜一下他的旁边有没有“#”就行了 代码 T2 excrt 注意一下边界就行了 代码 T3 BFS 出题老师很51地搞错了数据范围 给了200*150实际开了1000*1000过的 注意对于每一个传送门 要判断这个点要传送到的点是否到过 同样要在这个点要传送到的点打标记 代码 T4 二分天数(疯狂diss david_alwal的递归二分) 左边…
刚刚改完题,才有时间发题解 传送门 T1 exgcd裸题 对a,b跑exgcd,答案就是x*c/gcd(a,b),y*c/gcd(a,b) 不合法的情况:当且仅当c%gcd(a,b)!=0 代码 T2 一看就是BFS 但是在打vis标记的时候我们遇到了麻烦 于是我们就想到了康托展开 用康托展开的数值记录遍历的状态 最后记录方案时就直接用一个链表倒序输出就好了 代码 T3 二分平均数 判断是否有一段的min(前缀)+min(后缀)<0 代码 T4 f(n)=phi(n)这很好判断 g(n)=n …
传送门 @dsfz201814 改题 T1:全锕,过 T2:全锕,过 T3:@dsfz201814 先用竖着放置的木块将它变成高度差最大为1的数列 然后对于任意相邻相等的两块,可以将它看成任意 例如,两个相邻的11,可以是11,也可以是00 好像有点抽象,举个栗子 样例: 2 1 1 2 5 将它调整成01数列,最简单的方法是%2取余,或者是&1(等价的) 调整后的数列 0 1 1 0 1 中间有两个连续的1,可以选择将他们调整为任意数,那就相当于没有他 就变成了 0 0 1 再消掉两个0,就只…
传送门 T1 单调栈 按照b排序 在家每一个物品时,判断一下a和b的关系 如果s[sta[top]].a>=s[i].b,就弹栈 记录所有时候的height,并取最大值 T2 单调栈裸题 单调栈是干什么的?? 单调栈是记录一个数的一侧的第一个比他大或比他小的数 记录方法:若a将b弹出,则mark[b]=a; T3 搜索+剪枝 剪枝1:若总长度%要拼成的长度!=0,就不用再搜了一定不合法 剪枝2:从大到小搜 剪枝3:若搜到第一个时,就直接用当前的最大值做为第一个 T4 emm……单调栈 从前扫一遍…
传送门 预计得分:0 实际得分:90 还行 T1 数学卡精 二分double卡精 反正就是卡精 怎么办?卡回去!! 将double*=1e4,变成一个long long 注意四舍五入的奇技淫巧 代码 T1 注:博主改T1不易,请勿抄袭233 T2 状压+BFS 上代码 T3 首先打个表 1e9的数据,不要用O(n*sqrt(n))的复杂度,要用O(n*log(n))的复杂度 具体做法 然后我们就打完表了 且慢,你有没有发现我上面的程序无法运行?? 所以我们采用分块打表 1-3e8,3e8+1-6…
传送门 预计得分:100+70+100+50=320 实际得分100+63+77+30=270 Ctrl_C+Ctrl_V时不要粘贴翻译的,直接粘原文, In a single line of the output print an integer — the maximum loyalty among all paths from the first node to the n-th one. If such paths do not exist or the maximum loyalty…
vue入门基础知识点测试 1.文本(值绑定){{var}}----控制<div></div>的值显示当前时间,且1秒更新一次.(可查阅 setinterval 函数,时间Data对象) 2.属性绑定 v-bind----先在<style>定义好两个样式styblue,styred,分别蓝底,红底,再定义两个按钮文本显示蓝,红,要求点击这两个按钮 控制<div class=></div> 在 styblue,styred 之间切换. 3.循环v-f…
推荐阅读 NOIp 数学知识点总结: https://www.cnblogs.com/greyqz/p/maths.html Basic 常用素数表:https://www.cnblogs.com/greyqz/p/9845627.html 快速幂 int qpow(int x, int y) { int res = 1; for (; y; x = (ll)x * x % mod, y >>= 1) if (y & 1) res = (ll)res * x % mod; return…