NOIP 模拟 $15\; \rm \text{玫瑰花精}$】的更多相关文章

题解 \(by\;zj\varphi\) 一道线段树题目 这道题可以通过维护一棵线段树,线段树上的每个节点维护 \(\rm l,r,len,p\) 分别表示这段区间最左边的花精,最右边的花精,被两只花精夹着的中间没有花精的最长一段距离,和取 \(\rm len\) 是花精放的位置 那么关键就是 \(\rm up\) 操作,对于一个节点的 \(\rm l,r\),若此区间只有一个花精,那么就设成 \(\rm l=r\) 如果没有,那就都设为 \(0\) 而后 \(\rm len\) 可以由左儿子或…
TEXT 15 A text a day... Mar 24th 2006 From The Economist print edition The medical uses of mobile phones show they can be good for your health WHAT impact can mobile phones have on their users' health? Many people      (A)      the supposed ill effec…
题解 一道很妙的题,让求对于一个矩阵中,两点相连成线,有多少条直线,他们的交集是有限集. 转化一下题目,发现水平和竖直的只有 \(n+m\) 条,而左斜和右斜的条数是相同的,所以我们只需求出左或右中的即可 这个矩阵中一共有 \(\sum_{a=1}^{n-1}\sum_{b=1}^{m-1}[gcd(a,b)=1]\) 条斜率不同的直线,那么对于每一种斜率,又有 \((n-a)×(m-b)\) 个点 可以伸出来,但是会有重复的所以要减去 \((n-2×a)×(m-2×b)\) 所以最后可以推出来…
题解 \(by\;zj\varphi\) 一道并查集的题 对于它路径上点权,我们可以转化一下:对于一个点,它在哪些路径上是最小的点权 那么我们排个序,从大到小加入点,每回加入时,将这个点与它所相连的且权值比它大的点所在集合合并 那么这个新集合中,这个点的权值一定是最小的,所以求出这个集合的直径即可 对于这个新集合的直径,一定是由原来的集合的直径的端点组合而来的,或就直接是两个集合中直径大的那个 一共六种情况,枚举即可,复杂度可以做到 \(O(nlogn)\) Code #include<bits…
NOIP模拟1,到现在时间已经比较长了.. 那天是6.14,今天7.18了 //然鹅我看着最前边缺失的模拟1,还是终于忍不住把它补上,为了保持顺序2345重新发布了一遍.. #   用  户  名   Censoring 记忆的轮廓 雨天的尾巴 总分 1 板B 87 03:20:06 0 03:23:09 100 03:20:42 187 03:23:09 2   100 03:20:20 0 03:20:49 50 03:26:26 150 03:26:26 2   100 03:19:16…
今天起来就是虚的一批,然后7.15开始考试,整个前半个小时异常的困,然后一看题,T1一眼就看出了是KMP,但是完了,自己KMP的打法忘的一干二净,然后开始打T2,T2肝了一个tarjan点双就扔上去了,回来接着肝T1,然后就想起之前的一道AC自动机的考试题,正解虽然是AC自动机但是却有人打hash,然后就有人AC了,所以这道题我也鼓起勇气打起来hash,然后,我就开始对拍.重点是我的对拍的暴力程序是从1枚举到n,也是hash,所以高高兴兴的开始对拍,按说这道题我的暴力程序就可以AC(事后证明确实…
这场考试考得很烂 连暴力都没打好 只拿了25分,,,,,,,,好好总结 T1序列 A. 序列 题目描述 HZ每周一都要举行升旗仪式,国旗班会站成一整列整齐的向前行进. 郭神作为摄像师想要选取其中一段照下来.他想让这一段中每个人的身高成等比数列,展示出最萌身高差,但他发现这个太难办到了,于是他决定放低要求,让等比数列的每两项之间可以是不连续的(例如 2,4,16--).可他依然找不到满意的,便再次妥协,使这个等比数列可以是乱序的. 现在请在其中你找出最长的符合要求的一段,使得将这一段排序后为某个公…
题解 状压 \(\rm DP\). 从 \(1\) 到 \(n\) 一共只要一条路径,那么就是一条链,只要维护一个点集和当前链的末尾就行. 设 \(\rm dp_{i,j}\) 为 \(i\) 的点集末尾为 \(j\) 的最大权. 转移有两种: 在链的末尾加上一个点. 在链的末尾加上一个点集,这个点集就代表无关的联通块只能和答案链最多连接一个点. Code #include<bits/stdc++.h> #define ri register signed #define p(i) ++i n…
T1 夜莺与玫瑰 题目越发的变态起来... 这题刚开始看超级像仪仗队,好不容易码完欧拉函数后尝试×2后输出但不对!! 于是选择了跳过.... 正解居然是莫比乌斯函数....我也是醉了 预处理完就剩下$O(1)$求解然而我做不到.. 于是打了超级恶心的前缀和$O(n^2)$预处理以及$O(Tn)$求解. (多亏JYFHYX想到的手摸数组辗转相除超吊好吧). 竟然还可以定义short数组防止MLE,小马长见识了. 先考虑到柿子: $\sum_{a=1}^{n-1}\sum_{b-1}^{m-1}[g…
1. 累加求和 给定n(1<=n<=100),用递归的方法计算1+2+3+4+5+......+(n-1)+n. 输入:一个大于等于1的整数. 输出:输出一个整数. [样例输入] 5 [样例输出] 15 #include <iostream> using namespace std; int fac(int n){ ) ; ) + n); } int main(){ int n; cin >> n; cout << fac(n) << endl;…
1.要选一个{1,2,...n}的子集使得假如a和b在所选集合里且(a+b)/2∈{1,2,...n}那么(a+b)/2也在所选集合里 f[i]=2*f[i-1]-f[i-2]+g[i] g[n]:选1,n的方案数 观察性质,模拟+元素的过程推知集合中元素是等差数列,且公差=1(mod 2) 故g[n] = n-1的奇约数 f长这样: 1 : 22 : 43 : 74 : 125 : 186 : 267 : 368 : 489 : 6110 : 7711 : 9512 : 11513 : 137…
期望得分:30+90+100=220 实际得分:30+0+10=40 T1智障错误:n*m是n行m列,硬是做成了m行n列 T2智障错误:读入三个数写了两个%d T3智障错误:数值相同不代表是同一个数 既眼瘸又脑残,NOIP这样后悔去吧! T1 n*m网格,有S种颜色. 按从上到下,从左到右的顺序涂色. 相邻的相同色块可得一份,问最大得分 n,S<=100000,m<=4 只有最多4列 1列:顺着涂 2列:先涂可以涂偶数个 3列:先涂%3=0的,然后一个%3=1和一个%3=2的组合,剩余的顺着涂…
又是炸掉的一次考试 T1.方程的解 本次考试最容易骗分的一道题,但是由于T2花的时间太多,我竟然连a+b=c都没判..暴力掉了40分. 首先a+b=c,只有一组解. 然后是a=1,b=1,答案是c-1,不解释. 对于最大的数据,我们可以用exgcd求出一组特解,之后的通解为x+(b/gcd)*k, y+(a/gcd)*k. 求出正整数解的个数即可. 注意有很多特判,慢慢调试就好(改这题的时间比我改T3的时间都长) #include<bits/stdc++.h> #define m 65535…
考试的时候相当浮躁,而且脑子并不工作 T1看了几眼,觉得没思路,先skip T2一打眼,满足条件的最大值,二分!(然后就死了,根本没想有没有单调性) T3找了半天规律,一开始自己手模的K3都过不了样例,后来发现边的无向性重写搜索,但是K6的数量级已经决定我永远搜不出来了 期间返回T1想了一个状压,然而由于没有考虑联通性只保了10分 大部分时间花在T3找规律上,结果拿分最多的还是特判(T1如果判联通..) T1 欧拉图 考场上想到了转化成什么东西,但是当时考虑的是先不考虑两条单边,发现不可做,然后…
一直没时间写QwQ 于是补一下. Day 1 晚饭吃的有点恶心…… $1s\,2s\,5s$ 还开 -O2 ?? 有点恐怖. T1 猛的一想: 把外面设成一个点, 向入口连一条权为排队时间的边 从出口连一条权为排队时间的边. ××我又审错题了,就只能进出一次=.= 最短路?? 建反图, 然后从终点跑一个 dij 由于点数少,我觉得$N^2$仿佛都能过=.= 起点直接搜,类似$A^*$? 去搜时间允许下的点的$maxsize$ 可以搞个搜索树,这样就可以严格限制为$\Theta(N)$ 于是时间还…
前言 就这题考的不咋样果然还挺难改的.. T1 辣鸡 前言 我做梦都没想到这题正解是模拟,打模拟赛的时候看错题面以为是\(n\times n\)的矩阵,喜提0pts. 解题思路 氢键的数量计算起来无非主要就是两种情况: 整个矩阵里面的 各个矩阵之间相邻的 整个矩阵里的比较好算: \(\sum\limits_{i=1}^{n}(2\times q[i].x_2-q[i].x_1)\times(q[i].y_2-q[i].y_1)\) 主要是矩阵之间的比较难整,鉴于x和y相邻的情况差不多,以下只讲述…
5.23考试总结(NOIP模拟2) 洛谷题单 看第一题第一眼,不好打呀;看第一题样例又一眼,诶,我直接一手小阶乘走人 然后就急忙去干T2T3了 后来考完一看,只有\(T1\)骗到了\(15pts\)[尴尬\(.jpg\)] \(T1\)P3322 [SDOI2015]排序 背景 说实话,看见这题正解是dfs的那一刻,我人都傻了[流泪.jpg] 在讲这题的时候赵队@yspm 类比了线段树的思想%%%%%,在食用本篇题解时可以想一下 解题思路 最基本的一个思想:结果与操作的顺序无关,因为在更换的时候…
5.22考试总结(NOIP模拟1) 改题记录 T1 序列 题解 暴力思路很好想,分数也很好想\(QAQ\) (反正我只拿了5pts) 正解的话: 先用欧拉筛把1-n的素数筛出来 void get_Prime() { for(int i=2;i<=M;i++) { if(!b[i]) pri[++tot]=i; for(int j=1;j<=tot&&i*pri[j]<=M;j++) { b[i*pri[j]]=true; if(!(i%pri[j])) break; }…
为啥博客园 \(\LaTeX\) 老挂???! \(\huge{\text{菜}}\) 刚开始写 \(T1\) 的时候,在看到后缀前缀之后,直接想到 \(AC\) 自动机,在画了半个 \(trie\) 树之后: \(\huge{\text{这题也配用AC自动机???}}\) 然后秒写一个 \(hash\),之后一发过样例,以为稳了... 然后... \(freopen\) 还好看到了... 不然就暴 \(\color{red}0\) \(\color{green}0\) \(\color{blu…
我好菜啊 真上次第二这次倒二... 因为昨天还没有改完所有的题所以就留到今天来写博客了 这次考试总结的教训有很多吧,反正处处体现XIN某人的laji,自己考试的是后本以为一共四个题目,三个题目都没有看懂,然而考试结束以后才发现,自己是四个题目都没有看懂.cao 又成10分XIN了 不管了,菜就是菜了. 以后看到题目中不懂的玩意儿也不应该害怕,什么曼哈顿距离,自己看看样例就知道了,不应该弃掉的,并且在手推样例认为样例有锅的时候也应该返回去去看看题目,而不是一味地认为题目有锅... \(\huge{…
题解 \(by\;zj\varphi\) 发现就是一棵树,但每条边都有多种不同的颜色,其实只需要保留随便三种颜色即可. 直接点分治,将询问离线,分成一端为重心,和两端都不为重心的情况. 每次只关心经过重心的询问,其他询问不管,具体实现就是点分治的套路,每次搜一棵子树,更新标记. 动归有些小细节,尽量边权化点权,不容易出错,式子直接看官方题解. 复杂度 \(\mathcal O\rm(3^3nlogn+3^4q)\) Code #include<bits/stdc++.h> #define Re…
题解 \(by\;zj\varphi\) 发现右端点固定时,左端点的 \(min-max\) 单调递减,且对于 \(or\) 和 \(and\) 相减,最多有 \(\rm2logn\)个不同的值,且相同的值构成一段连续的区间. 那么就可以在最远的,符合答案的第一个区间二分答案. 具体实现可以用一个链表,每次扫一遍合并,并倒着查合法区间,这样就能做到 \(\rm nlogn\). Code #include<bits/stdc++.h> #define ri register signed #d…
题解 \(by\;zj\varphi\) 引理 对于一个和为 \(n\) 的数列,不同的数的个数最多为 \(\sqrt n\) 证明: 一个有 \(n\) 个不同的数的数列,和最小就是 \(n\) 的排列时 \(\frac{n(n+1)}{2}\),是 \(\sqrt n\) 级别的. 那么,直接用 \(set\) 维护一下有多少不同的堆数,再记一个桶维护每种数的堆有多少个,询问时直接二分查找即可. 复杂度 \(\mathcal O\rm(q\sqrt nlogn)\) Code #includ…
题解 \(by\;zj\varphi\) 发现每个点的权值都可以表示成 \(\rm k\pm x\). 那么对于新增的方程,\(\rm x_u+x_v=k\pm x/0\) 且 \(\rm x_u+x_v=s\). 如果 \(x\) 项系数为 \(0\),那么就只需判断 \(\rm x_u+x_v=s\) 有无解. 若不为 \(0\),那么直接解出 \(x_1\) 并判断是否是小数即可. 修改操作就是对一段区间的值加或减,直接树状数组,复杂度 \(\mathcal O\rm((n+q)logn)…
题解 \(by\;zj\varphi\) 题意就是维护 \(\rm max\{01mx,01l+01r\}\) 就是最长连续的一段 \(0\),左右 \(0\) 区间的加和. 可以启发式合并,也可以直接线段树合并,复杂度 \(\mathcal O\rm(nlogn)\) Code: #include<bits/stdc++.h> #define ri register signed #define p(i) ++i namespace IO{ char buf[1<<21],*p1…
题解 \(by\;zj\varphi\) 发现当把 \(\rm scale×cos\theta,scale×sin\theta,dx,dy\) 当作变量时只有四个,两个方程就行. 当 \(\rm n\le 500\) 时,可以选取两组进行高斯消元,解出答案后回带. 但当 \(n\) 极大时,采用随机化的做法,每次随机选取两个,这样每次选取不正确的概率为 \(\frac{3}{4}\),选取 50 次后基本就会出答案了. 记得判断 \(\rm sin\) 的正负 Code #include<bit…
题解 \(by\;zj\varphi\) 因为对于所有区间,都只有包含和被包含关系,这就是一个树形结构. 设 \(\rm f_{i,j}\) 表示在第 \(\rm i\) 个节点,最多被覆盖 \(\rm j\) 次的答案,方程显然. \[\rm f_{i,j}=\max\{f_{son_i,j-1+a_i}\} \] 可以发现,对于一个 \(f_i\) 它的差分数组是单调不增的. 证明: 对于一个 \(f_i\) 如果 \(f_{i,j}-f_{i,j-1}<f_{i,j+1}-f_{i,j}\…
题解 \(by\;zj\varphi\) 考虑如何才能最优. 每次一定把当前最小值移动到边界上,那么看它向左还是向右移更优. 用树状数组维护一下即可,复杂度 \(\mathcal O\rm (nlogn)\) Code #include<bits/stdc++.h> #define ri register signed #define p(i) ++i namespace IO{ char buf[1<<21],*p1=buf,*p2=buf; #define gc() p1==p…
题解 很容易求出在没有字典序最大的限制条件下的最多胜利场数. 这样就可以对于每一位放最优的解,怎么做,二分答案. 分两种情况,一种是当前一位是输的,一种是赢的,复杂度 \(\mathcal O(\rm nlog^2n)\) 卡卡常即可. Code #include<bits/stdc++.h> #define ri register signed #define p(i) ++i namespace IO{ char buf[1<<21],*p1=buf,*p2=buf; #def…
题解 \(by\;zj\varphi\) 原题问的就是对于一个序列,其中有的数之间有大小关系限制,问有多少种方案. 设 \(dp_{i,j}\) 表示在前 \(i\) 个数中,第 \(i\) 个的排名为 \(j\)的方案数 方程: \[f_{i,j}=\begin{cases} \sum\limits_{k=j}^{i-1} f_{i-1,k},(p_{i-1}<p_i)\\ \sum\limits_{k=1}^{j-1} f_{i-1,k},(p_{i-1}>p_i)\\ \end{case…