9.1 辣鸡

可以把答案分成 每个矩形内部连线 和 矩形之间的连线 两部分

前半部分即为\(2(w-1)(h-1)\),后半部分可以模拟求(就是讨论四种相邻的情况)

如果\(n^2\)选择暴力模拟是有\(35pts\)的

发现按横坐标排序后,如果有一矩形与当前矩形横向不相邻,则之后矩形都是没有贡献的

所以枚举时比较横坐标视情况跳出

因为会产生贡献的矩形对并不多(不超过\(4e5\),具体还会小),所以这样优化以后可以通过

9.2 模板

暴力跳祖先的话是有\(30pts\)的,经过一番纯玄学特判可以拿到45pts

类比之前主席树的某道题,我们统计答案的时候只关心每个颜色的第一次出现,所以可以以时间为值域开线段树,每个叶子节点存这个节点对球总数和颜色的贡献(0或1)

在合并时,需要考虑当前每个颜色新的最早出现位置,可以开一个存每个颜色最早出现位置的线段树,然后先合并时间线段树,再合并颜色线段树,如果出现了相同颜色就比较,并在时间线段树里修改这个颜色在较晚位置的贡献值



思路是偏的,代码能力不行,就很爽。

9.3 超级树

显然是dp,但是怎么想到这神仙转移啊

考虑k级和k+1级之间的关系:k+1级就是两个k级加一个点连起来

那么如果知道k级的方案数怎么推出k+1级呢

新的这个点可能和两棵树以几种方式建立联系:

  • 不连边
  • 向左连边
  • 向右连边
  • 左右同时连边

连边的时候,就要考虑,如果向左连边,有多少种选择方案,这样的问题

这个选择方案数,需要枚举两侧边的位置的每一种情况,再乘上一个边数

那么是不是可以按照边数分类,记录每个边数对应的情况数

就有了状态定义的雏形:\(f[i][j]\)表示\(i\)级树放\(j\)个边的方案数

又发现,在转移时,如果有左边选两条和根接起来这种情况,左边选的两条边是不能相交的

所以:\(f[i][j]\)表示\(i\)级树放\(j\)个不相交边的方案数

那么就有初始状态\(f[1][0]=f[1][1]=1\)

求\(k\)级方案,答案即为\(f[k][1]\)

状态定义想出来,再配合上面的分析过程,转移方程就会简单一些了

状态定义很重要……

11.1 方程的解

\(40pts\)做法:直接面向数据范围特判

正解:\(exgcd\),模拟一下,分类讨论

先求出方程的一组解,然后按不定方程的结论可以得到其他的解

首先得到一组正整数解,如果得不到就是没有解

然后进行一系列加加减减,直到得不到正整数解,并计数

就是基本的做法了

但是需要特判,如果解变换时xy的变化量同号,就说明他们直接并肩上天就行了,解是无限的

而如果a,b有0,就需要考虑这个方程有没有解,且如果有解就是无限个

11.2 光

大模拟

因为光在对角线上走,对角线的特点就是横纵坐标和/差为定值

那么可以用vector维护对角线上点的横坐标,每次查找反射点时二分

注意如果出现了原地折返,答案要/2

又因为起点不一定靠墙,开始时让他先撞一次墙,重新设定起点,再开始模拟

11.3 visit

考试时写出了式子,然后不会求了

发现p数量少,所以用crt合并

发现p很小,所以用lucas求组合。

13.1 入阵曲

考虑余数,先做二维前缀和

数据范围告诉我们需要写一个\(O(n^3)\)的东西

可以在纵坐标枚举每一个区间,然后枚举每一个长度的从最左端开始的矩形,记录每个余数的个数,特别的设\(cnt[0]\)初始为1

那么每个余数有\(\frac{cnt(cnt-1)}{2}\)的贡献

13.2 将军令

数据小的时候直接状压暴搜

发现最好的情况就是各点控制范围无交集,考虑贪心

按深度排序,扫到一个点若未被控制就在他的k级父亲驻扎

13.3 星空

逐个操作很麻烦,考虑差分下的操作,其实就是可以反转两个位置的值

将原序列差分,目标转化为将序列变为全0

一个长为k的操作可以将坐标差为k的两个1变为0,通过不同操作的组合可以得到需要的值,考虑背包

需要改变的位置很少,最多16个,考虑状压,记录每个不为0的数的位置,然后一次消两个,\(f[S]\)为到状态\(S\)需要的最小步数,初始\(f[all]=0\),答案即为\(f[0]\)

「考试」noip模拟9,11,13的更多相关文章

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

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

  2. 「题解」NOIP模拟测试题解乱写I(29-31)

    NOIP模拟29(B) T1爬山 简单题,赛时找到了$O(1)$查询的规律于是切了. 从倍增LCA那里借鉴了一点东西:先将a.b抬到同一高度,然后再一起往上爬.所用的步数$×2$就是了. 抬升到同一高 ...

  3. 「考试」联赛模拟36-39,noip晚间小测2-3

    36.1 party(CF623D) 很是鸡贼的一道题 首先要明确一点,抓人是有策略,而不是随机的,可以认为等同于按一个给定的顺序猜人,那么这时猜中的概率就只是抓住这个人的概率了 对于每一次猜测,因为 ...

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

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

  5. 5.23考试总结(NOIP模拟2)

    5.23考试总结(NOIP模拟2) 洛谷题单 看第一题第一眼,不好打呀;看第一题样例又一眼,诶,我直接一手小阶乘走人 然后就急忙去干T2T3了 后来考完一看,只有\(T1\)骗到了\(15pts\)[ ...

  6. 6.17考试总结(NOIP模拟8)[星际旅行·砍树·超级树·求和]

    6.17考试总结(NOIP模拟8) 背景 考得不咋样,有一个非常遗憾的地方:最后一题少取膜了,\(100pts->40pts\),改了这么多年的错还是头一回看见以下的情景... T1星际旅行 前 ...

  7. 5.22考试总结(NOIP模拟1)

    5.22考试总结(NOIP模拟1) 改题记录 T1 序列 题解 暴力思路很好想,分数也很好想\(QAQ\) (反正我只拿了5pts) 正解的话: 先用欧拉筛把1-n的素数筛出来 void get_Pr ...

  8. 2021.9.17考试总结[NOIP模拟55]

    有的考试表面上自称NOIP模拟,背地里却是绍兴一中NOI模拟 吓得我直接文件打错 T1 Skip 设状态$f_i$为最后一次选$i$在$i$时的最优解.有$f_i=max_{j<i}[f_j+a ...

  9. [考试总结]noip模拟23

    因为考试过多,所以学校的博客就暂时咕掉了,放到家里来写 不过话说,vscode的markdown编辑器还是真的很好用 先把 \(noip\) 模拟 \(23\) 的总结写了吧.. 俗话说:" ...

随机推荐

  1. LWJGL3的内存管理,第三篇,剩下的两种策略

    LWJGL3的内存管理,第三篇,剩下的两种策略 上一篇讨论的基于 MemoryStack 类的栈上分配方式,是效率最高的,但是有些情况下无法使用.比如需要分配的内存较大,又或许生命周期较长.这时候就可 ...

  2. 【USACO】Strolling Cows

    Strolling Cows 给定有 \(n\) 个点 \(n\) 条边的有向图,每个点的出度都为 \(1\),求图中的最大环. 显然入度为 \(0\) 的点不可能为最大环上的点,所以考虑删点. 然后 ...

  3. 1到n整数中1出现的次数

    1到n整数中1出现的次数 题目描述 输入一个整数n, 求1~n这n个整数的十进制表示中1出现的次数. 例如, 输入12, 1~12这些整数中包含1的数字有1, 10, 11和12, 1一共出现了4次 ...

  4. 美团笔试题_ACM最多队伍

    题目: 选择队伍参加ACM比赛,可以选择的人由N+M组成,N代表N个擅长算法的人,M代表M个擅长编程的人,选择要求:每个队伍三个人,每个队伍中至少有一个擅长算法的人,至少有一个擅长编程的人.求可以组成 ...

  5. 4、Python语法之变量

    一 引入 我们学习Python语言是为了控制计算机.让计算机能够像人一样去工作,所以在Python这门语言中,所有语法存在的意义都是为了让计算机具备人的某一项技能,这句话是我们理解后续所有Python ...

  6. leetcode110:combination-sum-ii

    题目描述 给出一组候选数C和一个目标数T,找出候选数中起来和等于T的所有组合. C中的每个数字在一个组合中只能使用一次. 注意: 题目中所有的数字(包括目标数T)都是正整数 组合中的数字 (a 1,  ...

  7. Spark架构与原理这一篇就够了

    一.基本介绍 是什么? 快速,通用,可扩展的分布式计算引擎. 弹性分布式数据集RDD RDD(Resilient Distributed Dataset)弹性分布式数据集,是Spark中最基本的数据( ...

  8. TCP/IP协议与Socket

    1.计算机网络体系结构分层 OSI 参考模型注重"通信协议必要的功能是什么", TCP/IP 则更强调"在计算机上实现协议应该开发哪种程序". 2.TCP/IP ...

  9. 学习笔记——make项目中克隆GitHub目录失败的解决

    在示例项目中执行make后出现下面的错误 WARNING: Missing submodule components/json/cJSON... WARNING: Missing submodule ...

  10. Shell脚本常用命令整理

    该笔记主要整理了一些常见的脚本操作命令,大致如下(持续补充中): 1. while.for循环 1. while.for循环 #!/bin/bash # while循环 v_start_date=${ ...