NOIP模拟29(B)


T1爬山

简单题,赛时找到了$O(1)$查询的规律于是切了。

从倍增LCA那里借鉴了一点东西:先将a、b抬到同一高度,然后再一起往上爬。所用的步数$×2$就是了。

抬升到同一高度的过程中,如果高度不是d的整数倍,则必定有一步没有走满d个高度。

如果剩下的步数为偶数,则直接累计答案,可以证明没有更优的情况(虽然我懒并没有证明但我觉得这挺显然的啊……)

如果剩下的步数为奇数,考虑把原来没有走满的那一步走满,然后把多余的那一步补到下降中,也可以证明没有更优的情况。(显然……于是我就又弃坑证明)

T2学数数

怕是考场上只有我一个人敲了一遍splay /捂脸.jpg

一开始以为是个平衡树果题,然后就写了。最需要处理的那一部分被我一个sb的sort给干掉了。

正解单调栈+离散化+桶。

开一个单调栈维护序列,栈内单调递减。

顺序扫序列的每一个元素。push的时候记一下push前栈顶元素,即为该点左侧第一个比它大的值。该点被pop的时候记录一下是哪一个元素pop了它,即为该点右侧第一个比它大的

值。(注意记录的都是位置)

算出左侧的长度l和右侧的长度r,$l×r$即为该点在最终序列里面出现的次数。

然后开桶统计前缀和,实现$O(1)$查询。

T3七十和十七

至今不知道dp转移方程的意义。。。

于是听了某一个打表找规律赛时A掉的大神讲了一下规律……

先鸽了,回头自己推一下或者稍微问一下……

NOIP模拟30(B)


T1Return

sb语文题,读了大概20分钟题。然而赛场上的代码各种错误于是完美爆零了。

正解sort+去重,累加答案的柿子题目都给出来了……

错误原因:

1.没注意输出格式冒号后面有一个空格

2.下面的东西显然不能处理出现0了的情况。

if(in_a[i]!=in_a[i-])
a[++n]=in_a[i],sum[n]=;

T2One

约瑟夫问题2改编题目。

结论:ans=(ans+i)%(n-i+1);

T3Magic

注意模数不一定是质数,crt就好

鸽了。

NOIP模拟31


T1math

赛时乱搞A了。把k和所有的ai取一个gcd,在k内递增,每个都取出来就好。

T2biology

赛时暴搜20分。

正解将坐标转化一下:(x,y)->(x+y,x-y),原本的曼哈顿距离($|x_1-x_2|+|y_1-y_2|$)转化为切比雪夫距离($max{|x_1-x_2|,|y_1-y_2|}$)。

然而我并没有严格按照正解打啊/滑稽.jpg

由于转移需要按照a的大小顺序,于是考虑将节点信息存进结构体里,按a的大小排序。

顺序扫一遍标记a变化的位置,按段转移。

由于需要加n个b数组,所以转移前加转移后加都一样。于是选择在转移后加。

用四个变量分别维护出$f[i]-x-y,f[i]-x+y,f[i]+x-y,f[i]+x+y$,然后进行状态转移:

$f[i]-x_1-y_1$用于转移$+x_2+y_2$,以此类推。

(其实直接把式子写开就是f[i]+(x_2-x_1)+(y_2-y_1),四种情况只是把绝对值拆了而已)

注意是按阶段转移的,所以需要8个变量,4个记录现在这个阶段以前所有阶段的max值,4个记录转移到当前节点的max值。

每个阶段末更新一下总体u最大值即可。

T3english

赛时暴搜20分。

20%算法:

暴搜。枚举左右端点直接暴力累加贡献。n<=1000测试点可过。

40%算法:

考虑另外20%数据的特殊性质:ai<=1。

对于ans1,不难发现,对答案有贡献当且仅当两个端点一个为0一个为1,此时对答案的贡献为1。于是答案就是(1的个数)×(0的个数)。

对于ans2,由于只有当区间内最大值为1时才对答案有贡献。而数列元素两两异或不可能大于1。故输出0即可。

100%算法:

不难猜测时间复杂度应该是$O(n)$或$O(nlogn)$。

考虑先用单调栈维护对于每个$a[i]$值左侧第一个比它大的元素的位置和右侧第一个比它大的元素的位置。

对于ans1,考虑对于每一位维护1的个数的前缀和,方便$O(1)$查询左右区间中1的个数。

考虑$xor$的运算法则,查询左边0的个数、右侧1的个数相乘然后左移对应的位数,左边1的个数、右边0的个数相乘左移对应的位数,求和然后乘上ai即可。

对于ans2,考虑用01trie解决问题。

1e6二进制下20位足够了,于是把每一个数字都按照20位从高位到低位插进01trie。

插入的时候别忘了记录一个num代表有多少个数插入的时候经过当前节点。

正解是可持久化01trie,但是我不会打又懒得学(我错了我去学)于是问了lockey大佬,

大佬说莫队优化可过。于是就用莫队过了……(记得自己yy一个删除操作)

查询的代码大概长这样:

inline void query(int k,bool lmt,int ri,int ai,int wei)//k为trie树上的节点编号
{//lmt为是否在下界,为1即前面几位都是恰好等于最大值的。ri表示对应ai的右区间中的数,ai即为ai,wei为当前查到第几位
if(!lmt)//如果!lmt,即下面的数字一定比ai要大,
{
ans2=(ans2+ai*num[k]%mod)%mod;//直接将维护的num累加进答案
return ;
}
int lin=(ri>>wei)&,pre=(ai>>wei)&;//取出两个值的这一位
if(trie[k][lin^])//如果lin^1的儿子存在,xor操作后为1,一定可以走。
query(trie[k][lin^],pre,ri,ai,wei-);//如果pre为0,走1一定大于ai了,所以没有限制。反之则依旧处于下界上
if(trie[k][lin]&&pre==)//pre为0才能走xor为0的节点,否则一定比它要小
query(trie[k][lin],lmt,ri,ai,wei-);//必定是下界
return ;
}

(我知道我写的跟shi一样但是我实在懒的写了就鸽掉吧回头找时间填坑反正也没有什么人看)

「题解」NOIP模拟测试题解乱写I(29-31)的更多相关文章

  1. 「题解」NOIP模拟测试题解乱写II(36)

    毕竟考得太频繁了于是不可能每次考试都写题解.(我解释个什么劲啊又没有人看) 甚至有的题目都没有改掉.跑过来写题解一方面是总结,另一方面也是放松了. NOIP模拟测试36 T1字符 这题我完全懵逼了.就 ...

  2. 「考试」noip模拟9,11,13

    9.1 辣鸡 可以把答案分成 每个矩形内部连线 和 矩形之间的连线 两部分 前半部分即为\(2(w-1)(h-1)\),后半部分可以模拟求(就是讨论四种相邻的情况) 如果\(n^2\)选择暴力模拟是有 ...

  3. 「NOIP2009」最优贸易 题解

    「NOIP2009」最优贸易 题解 题目TP门 题目描述 \(C\)国有\(n\)个大城市和\(m\)条道路,每条道路连接这\(n\)个城市中的某两个城市.任意两个城市之间最多只有一条道路直接相连.这 ...

  4. 「NOIP2016」天天爱跑步 题解

    (声明:图片来源于网络) 「NOIP2016」天天爱跑步 题解 题目TP门 题目 题目描述 小c同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是 ...

  5. 2019.8.3 [HZOI]NOIP模拟测试12 C. 分组

    2019.8.3 [HZOI]NOIP模拟测试12 C. 分组 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 刚看这题觉得很难,于是数据点分治 k只有1和2两种,分别 ...

  6. 2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色

    2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 数据结构学傻的做法: 对每种颜色开动态开点线段树直接维 ...

  7. 2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci)

    2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci) 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 找规律 找两个节点的lca,需 ...

  8. 「NOWCODER」CSP-S模拟赛第3场

    「NOWCODER」CSP模拟赛第3场 T1 货物收集 题目 考场思路即正解 T2 货物分组 题目 考场思路 题解 60pts 算法:一维 DP 100pts 算法:一维 DP ?线段树 + 单调栈 ...

  9. 「工具」Dubbo可视化测试工具的设计和实现

    「工具」Dubbo可视化测试工具的设计和实现 学习了:https://blog.csdn.net/qq355667166/article/details/78914453

随机推荐

  1. C#委托的实质

    1,委托时方法指针: 2,委托时一个类,对其进行实例化的时候,要将引用的方法作为他的构造方法的参数.

  2. 完美解决 IE6 position:fixed 固定定位问题

    关于 position:fixed; 属性 生成绝对定位的元素,相对于浏览器窗口进行定位. 元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定. pos ...

  3. 漏洞:会话固定攻击(session fixation attack)

    什么是会话固定攻击? 会话固定攻击(session fixation attack)是利用应用系统在服务器的会话ID固定不变机制,借助他人用相同的会话ID获取认证和授权,然后利用该会话ID劫持他人的会 ...

  4. USACO 2007 November Silver Best Cow Line /// oj21653

    题目大意: 输入n 接下来n行字母 在队头和队尾中选出较小的放入新的队列 Sample Input 6ACDBCB Sample Output ABCBCD   注意相同的情况 先判断内层的大小 输出 ...

  5. springmvc常用知识总结,不定期更新

    1.@Controller 注解到类名上,表示该类是控制器. 2.@RequestMapping("/xxxx") 可以放在类名/方法名之上,表示访问请求该方法时的映射url.如果 ...

  6. 导出sheet到新文件夹当中

    Sub 导出当前客户达成分析()Application.ScreenUpdating = FalsemyName1 = Sheets("日期统计表").Range("B1 ...

  7. 论文学习02-《On the Effectiveness of Visible Watermarks》

    I. Estimating the Matted Watermark 给定所有图像中的水印当前估计的区域,我们通过观察这些区域图像梯度的一致性来检测出水印梯度,也就是我们通过计算这些区域的图像梯度的中 ...

  8. Windows where

    WHERE [/R dir] [/Q] [/F] [/T] pattern... 描述:    显示符合搜索模式的文件位置.在默认情况下,搜索是在当前目录和 PATH    环境变量指定的路径中执行的 ...

  9. CSS3——伸缩布局及应用

    CSS3在布局方面做了非常大的改进,使得我们对块级元素的布局排列变得十分灵活,适应性非常强,其强大的伸缩性,在响应式开中可以发挥极大的作用. 主轴:Flex容器的主轴主要用来配置Flex项目,默认是水 ...

  10. 长链接生成短链接Java源码(调用百度接口)

    public static DefaultHttpClient httpclient; static { httpclient = new DefaultHttpClient(); //httpcli ...