ICode9

精准搜索请尝试: 精确搜索
  • NOIP 模拟 $83\; \rm 传统艺能$2021-10-26 21:04:07

    题解 \(by\;zj\varphi\) 这种题的一个套路 \(dp\),\(dp_{i}=\sum_{x}^{x\in 字符集}dp_x+1\),\(i\) 为当前的字符。 发现可以矩乘优化,三种不同的字符对应三种不同的转移矩阵,用一个单点修改,区间查询线段树上维护即可。 最后再乘上一个初始矩阵,不要忘了空串也要算一个字符,但是不能算答

  • NOIP 模拟 $83\; \rm 铺设道路$2021-10-26 21:03:37

    题解 \(by\;zj\varphi\) 算次数不难,重点在于如何求最大最小值。 对于一个序列,想要用最少的步数把序列抹平,一定是先把不同高度向下抹成同一高度,再统一减少。 对于最小值,每次尽量抹平最左边的值,而最大值,尽量抹平离得近的。 原因就是,抹离得远的每次较平均,而抹离得近的,会使最后区间长

  • NOIP模拟822021-10-26 19:02:02

    T1 魔法 解题思路 发现选择情况无非就是两种,连续的一段或者间隔为 \(R+B\) 的倍数的一段。 直接对于原序列贪心,每次选择可以消除的部分并将其删掉。 对于合法的情况将操作倒序输出即可。 code #include<bits/stdc++.h> #define int long long #define ull unsigned long long #def

  • CSP2021考后总结与反思2021-10-25 14:03:09

    CSP2021结束了,但NOIP还没有。所以,这个总结是非常必要的。 前言 因为是根据自身以及周围同学的情况总结的,所以略过不写老套的部分,主要总结如何在考场上拿分以及保分。 先来分析一下题目难度:学到现在这个地步,按实力来说这套题拿300pts没有问题的。或者说,甚至360都可以。但是事实上,36

  • Noip模拟81 2021.10.202021-10-22 09:03:47

    T1 语言 比较简单的题,然后就瞎写了,所以考场上就我一个写了线段树的,所以我的常数。。。。    所以就枚举动词的位置,找前面后面有没有出现$4$即可 1 #include<bits/stdc++.h> 2 using namespace std; 3 inline int read(){ 4 int x=0,f=1;char ch=getchar(); 5 wh

  • Noip模拟82 2021.10.212021-10-22 09:01:59

    感冒了,考试的时候跟去世了一样,头晕脑胀只会打暴力了,真的头疼 可恶,明天就走了,希望能在后天之前差不多好,不是说感冒一般七天吗?已经五天了,差不多得了。。。。 千万不要考场上还头昏脑胀,$rp++$吧,(希望在链式前向星加边的时候已经加够了。。。。) T1 魔法 考场上想到了使用队列, 但是后来

  • noip模拟82(待补)2021-10-22 08:33:13

    A. 魔法 随便写. A_code #include<bits/stdc++.h> using namespace std; namespace BSS{ #define ll int #define lf double #define ull unsigned ll #define mp make_pair #define lb lower_bound #define ub upper_bound #define lbt(x) ((x)&(-(x))) #defin

  • noip模拟81(待补)2021-10-22 07:31:06

    A. 语言 乱写就行. A_code #include<bits/stdc++.h> using namespace std; namespace BSS{ #define ll long long #define lf double #define ull unsigned ll #define lbt(x) ((x)&(-(x))) #define mp make_pair #define lb lower_bound #define ub upper_bound

  • P1423 小玉在游泳 NOIP python题解2021-10-20 17:59:53

    题目描述 小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的98%。现在小玉想知道,如果要游到距离x米的地方,她需要游多少步呢。请你编程解决这个问题。 输入格式 输入

  • NOIP 模拟 $80\; \rm 邻面合并$2021-10-20 08:33:59

    题解 \(by\;zj\varphi\) 状压 \(dp\),看到 \(m\) 的范围很小,考虑压 \(m\) 这一维。 一个状态 \(st\),其二进制位下的 1 代表的是当前一行划分成的每一段的开头。 合并的时候需要和上一行划分成的每一段合并,加上多出来的,放张图: 合并的时候只需要算新增的块就行。 细节不少,要提前预处

  • NOIP 模拟 $80\; \rm 光线追踪$2021-10-20 08:33:39

    题解 \(by\;zj\varphi\) 一个矩形,它的贡献只能在它的左边界或它的下边界,意思就是,一条射线和它的第一个交点一定在它的左边界或它的下边界 而一个矩形能截到的直线的斜率在 \([\frac{y}{x_1},\frac{y_1}{x}]\) ,所以对于左边界的斜率范围,和下边界的斜率范围,分别建一棵线段树。 有小

  • NOIP 模拟 $80\; \rm 百鸽笼$2021-10-20 08:33:15

    题解 \(by\;zj\varphi\) 对于这个题,可以转化为有 \(n\) 种数,第 \(i\) 种数有 \(a_i\) 个,一共有 \(N+1\) 个。 每次选数时从剩下不为空的种类中随机选一个。 问用这 \(i\) 种数填一个长为 \(N+1\) 的序列,以第 \(i\) 种数为结尾的概率。 有一个地方还不太懂,现在还只能口胡一下。 容

  • NOIP模拟802021-10-19 18:04:21

    学考+OJ改名祭 T1 邻面合并 解题思路 状压 DP 。。。(于是贪心竟然有 60pts 的高分?? code) 状态设计的就非常妙了,如果状态是 1 就表示是一个分割点也就是一个矩形的右边界。 那么对于一个合法的状态需要满足:原矩阵中是 0 的不可以是分割点,并且对于原矩阵中的 1,而言如果不是分割点那么

  • [NOIP 2005 普及组] 校门外的树2021-10-17 21:02:25

    P1028 [NOIP 2005 普及组] 校门外的树 题目链接 P1028 [NOIP 2005 普及组] 校门外的树 题解 建立一个数组a,循环读入x和y后,将a[x]到a[y]都标记为移走 再循环计数数组中未标记(也就是没有移走)的个数 代码如下: #include <cstdio> #include <cstring> using namespace std; bool a[1000

  • noip模拟78(dp待补,扫描线待补)2021-10-17 12:00:55

    A. F 签到题,随便写. B. S 交换次数可以被联想成逆序对. 我们可以回想归并排序的求解过程,发现有序的依旧有序,无序的才会被交换. 本题中类比过来就是,有序的就是那些相同颜色的,也就是相同颜色的不会换位置. 于是可以写出 \(dp_{i,j,k,c}\) 表示 \(R\) 填了 \(i\) 个,\(G\) 填了 \(j\)

  • NOIP模拟782021-10-17 11:35:25

    T1 F 解题思路 由于 a 和 b 有一一对应的关系,因此实际上可能的答案只有 n 种。 对于每一种可能的答案可以直接扫一遍 a 数组看是否在 b 数组中是否一一匹配。 可以用 Hash 表,map 或者是 multiset 来维护。。 code #include <bits/stdc++.h> #define int long long #define ull un

  • NOIP 模拟 七十八2021-10-17 11:33:43

    100+30+30+100 T1 F x 只可能有 n 种情况,枚举每个 x,暴力扫一个数组找到所需的另一个值,然后开个桶判断是否合法即可。 #include<bits/stdc++.h> using namespace std; int n,m,a[4001],b[4001],tong[4001],tot,san[4001],id[4001]; set<int>st; inline bool check(int x) { if(

  • noip模拟76(差分约束待补,导数待补)2021-10-17 11:31:35

    A. 洛希极限 考场上想的还是太少了. 发现每个点被转移,最优肯定是从自己斜下方转移. 很直接的想法就是线段树,发现每个点只会取最优的,于是可以做一个单调队列. A_code #include<bits/stdc++.h> using namespace std; namespace BSS { #define ll int #define ull unsigned ll #d

  • [考试总结]noip模拟782021-10-17 09:33:01

    F 开始没啥精神,感觉完全做不动。。。 然后发现这题目也没啥思路。。。 心态稍炸 然后发现答案一共只有 \(n^2\) 种取值,感觉看到曙光。 然后不会。。 然后又发现答案其实只有 \(n\) 种取值,感觉看到希望。 然后还是不会。。。 淦 之后发现一个很妙的XIN队算法,然后对拍没错。 但是,复

  • noip模拟782021-10-17 09:32:42

    考试过程:先读题,然后觉得开题顺序1 4 2 3。 首先是T1,要是不考虑重复这题很简单,但是考虑重复就比较复杂了,我打完,对拍完差不多用了两个小时,然后就是忘了算内存,结果内存爆了,\(100pts ->30pts\),气炸我了。 然后是T4,我将题意化简为一个式子,\(\sum_{i=l}^{r}max(a_{i-k} -> a_i)\),但是

  • NOIP挑战赛-2 比赛记录2021-10-17 09:02:14

    赛时:100+15+5+20 赛后:100+100+100+20 题解 A: 3-格雷码 题意:给定 \(n\),把 \(0...2^n-1\) 中的每个数排成一个环,使得相邻两个位置的数异或起来, popcount=3。\(n\le 23\)。 可以用经典格雷码的那个构造,我们先构造 n=4,然后每次倍增。 如何倍增呢?把它复制一遍,左边最高位加上0,右边最高

  • noip 模拟 y2021-10-17 09:02:00

    很考验观察力的一道题 首先发现,若每个人都给左边人小球,那每个人给的小球数就可以都减去一 形式化的,我们只需要考虑存在一个人给的小球数为零的情况 还是按套路来 可以把式子组合意义化(组合意义化后式子总会好推很多) 其实就是每个人从剩下的小球中选一个的总方案 此时选球的情况只

  • [考试总结]noip模拟772021-10-17 09:01:58

    话说开始下午考试了,然后改题飞快还不是因为数据太水了所以这一次就不咕了。 最大或 这个题目还是比较玄学的。 首先可以发现在两个二进制数的位数不相同的时候,那么答案就一定是所有都是 \(1\) 的长度为 \(r\) 的位数的二进制。 那么位数相同的时候该怎么办呢? 然后开始猜结论 因为

  • NOIP模拟782021-10-17 09:00:15

    T1:   根据异或运算的消去律,容易得到a ^ x = b的转化,于是可以利用值域枚举x 利用map维护b值进行判断是否全匹配(然而T成暴力)   考虑发现x只有n^2种可能取值,于是枚举所有x,判断是否存在x出现次数>= n即可 代码如下: 1 #include <bits/stdc++.h> 2 using namespace std; 3 #def

  • Noip模拟79 2021.10.162021-10-17 08:32:12

    这次时间分配还是非常合理的,但可惜的是$T4$没开$\textit{long long}$挂了$20$ 但是$Arbiter$上赏了蒟蒻$20$分,就非常不错~~~ T1 F 直接拿暴力水就可以过,数据无法精心构造,根本卡不掉,除非测评姬像老奶奶(详情见这一篇) 考场经过 造个大的数据试试跑几秒........ woc,2.7秒,不行,还是得卡

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有