6.18 考试总结

QAQ 没有去考大视野的题目觉得非常的不开心 QAQ

然后被硬塞了一套非常水的题目

上午快结束还莫名其妙自己的电脑的电源掉了QAQ

那么就没有代码了QAQ不过都拍过问题不大QAQ

第一题

首先我们发现这是个裸的块状链表练习题

但是回想了一发发现自己不怎么会写块状链表

YY了一下觉得块内维护一个链表好像时间复杂度也是O(n*sqrt(n))

大概码了一个多小时吧,链表的边界什么的讨论起来有些麻烦

一边拍一边改掉了QAQ

具体做法是这样的:

我们考虑设S(i,k)表示前i个块k这个值出现的次数

不难发现空间复杂度是O(n*sqrt(n))的,预处理时间复杂度O(n*sqrt(n))

思考之后不难发现每次修改对于这个预处理最多只会影响2*sqrt(n)个值

我们暴力修改预处理数组就可以了

考虑查询的时候存在不完整的块,这个时候我们需要对这些块暴力

如果用平衡树维护的话时间复杂度会多个log

不难发现每次修改完整一个块的时候只会在块头加入元素和块尾删除元素

那么对每个块单独维护一个链表,不完整的块暴力重构就可以做到O(n*sqrt(n))啦

第二题

明显是要乱搞的题目

首先50分的做法显然是直接利用鸽笼原理暴力1->a

这个时候我们不难发现f(x)的增长是极其缓慢的

考试的时候我采取了这样一种做法

我们注意到如果存在区间[L,R]的值非常接近k*a

那么我们可以通过不断的移动两个端点来使得其逐渐逼近k*a

对于这个的实现我是采用的模拟退火

枚举k大概从1->10的样子,然后利用数位DP确定最接近k*a的右端点

之后模拟退火每次计算差值,如果=0就退出,差值变小一定接受移动,否则有概率接受移动

时间上肯定没有问题,正确性不会证明

拍了两个多小时没有出错QAQ

第三题

QAQ yjp丢失的题面

曾经看过那篇论文,有些点还有点印象,有些点考试的时候推了推也推了出来

首先第一个点直接输出就可以了

第二个点我们注意到长度是2^22,猜想是倍增构造,不难发现是每次倍增取反

第三个点我们注意到经常会有一段等于前一段,这样的段长分别是3,5,8,13,然后发现总长度是f(33)

即斐波那契数列第33项

第四个点看到数列长度很自然想到FFT,事实证明就是个卷积

但是模数不好确定,随意找几个点算一下答案之后CRT可以解出模数

模数是2^22*25+1

第五个点直接看就知道是多项式开根

第六个点显然是多项式开立方根

第七个点是一个图,我们发现输出只有两种:0和一个奇怪的数

然后发现询问也是只有两个点,猜想是判断两个点的关系

图两个点的关系显然是判断连不连通,然后发现联通输出0,否则输出那个奇怪的数

第八个点是个树,我们发现输出都是树上的边权,用ctrl+F查几个数就可以发现这个事情

然后询问也是两个点,猜想是两个点之间的边权信息

要么最小边权,要么最大边权,最后发现时最大边权

第九个点是个图,发现输出也是图上的边权,然后惊奇的发现输出中有第七个点的奇怪的数

询问也是两个点,然后判一下联通,发现不连通就是这个奇怪的数

考虑到第八个点,不难猜出第九个点输出的两个点的最小的最大边权

然后做一发最小生成树就可以了

第十个点直接输出就可以了QAQ

时间: 2024-10-10 16:18:29

6.18 考试总结的相关文章

9.18考试总结

9.18考试总结 现在发好像有点晚了不过还是要发一下 漂亮字串 其实是一道简单的题,当时没有仔细想每一种情况就没有做出来 实际上一种种情况排除就出不多了o(1)算法值得拥有 这种题就没有必要放代码了 Set 这个题目最开始还是比较暴力,因为涉及到质因数的问题,也就是说一个数可能有多个质数组成,这些质数就可能将其他数字所在的集合串在一起. 当时还没有想到在求出质数的时候就顺便合并的想到没有实现方法这里就要用到并查集来帮助合并,可以从一定程度上减小合并过程中的时间复杂度 弄清楚这一点以后基本就敲定是

9.18考试 第一题count题解

这道题说起来挺可惜的,当时纠结是用常数大但有可能减少递归层数的模还是用常数小但递归多的回溯纠结了好半天,最终错误的选择了摸.导致T了20分,改成回溯就A了. 先分析一下性质,我在考试的时候打表发现在数据范围内因子最多有240个,因此有可能是通过枚举因子进行计算,然后如果说对于一个块他的确可以把一棵树分为几块方法只有一种(不要问我为什么,我也不知道怎么证,但的确如此)那么我们的最坏复杂度就是O(240*n),比理论最大复杂度还多了一倍,这也是为什么当时我自己预估60分的原因,然而这就很尴尬了,这的

9.18考试 第二题Dinner题解

当时初步感觉是一个类似动归或者贪心的神题,然而由于本题已经给出顺序,贪心貌似并没有什么道理,所以放弃贪心.然后又由于这是一个环的问题,我想到了"合并石子"那种环转链的思路,然后就是一个O(n^2*m)的近似背包的打法,虽然没有去打,但应该可行吧-- 然后我又发现这道题貌似可以二分答案来进行check,然后我们就需要去枚举每一次的起始点,并进行模拟,然后加了一个剪枝即如果当前点的前缀和大于当前check的值,说明我们已经在给第一个点第一份菜单时给了他第二份菜单,而这又是不可行的,否则我们

2019.3.18考试&2019.3.19考试

2019.3.18 C O D E T1 树上直接贪心,环上for一遍贪心 T2 正反都做一遍DP T3 观察到顺序不影响答案,分块打标记 2019.3.19 肥肠爆芡,因为沙茶博主昨天在学校的煞笔食堂吃坏了肚子,所以这场考试咕咕了 我佛了 一定补这两场.jpg 原文地址:https://www.cnblogs.com/ydnhaha/p/10558495.html

2019.10.18考试解题报告

总结 期望得分:\(100 + 100 + 10\) 实际得分:\(0 + 20 + 10\) 完美. 今天的考试格外完美,\(T1\)做了*\(2.5h\),最后换来了\(0\)分的好成绩,史无前例,美妙绝伦,我竟然不删调试,做得?好. \(T2\)是个好题,是个好阅读题,\(n\)和\(m\)写反了,样例给的是\(n\)和\(m\)相等的情况,最终完美\(100->20\),我竟然这么粗心,题目竟然没读好,做得?好. \(T3\)没时间了,都耗在\(T1\)上了,可惜\(T1\)还没有分,做

[9.18考试] antipalindrome

题意:给你两个整数 n 和 m ,计算字母表大小为 m ,长度为 n ,不包含长度大于1的回文子串的字符串个数 题解: 规律+快速幂 一个字符不能和它前面两个字符相等,这样就构不成最小的回文,那么更大的也构不成 所以对于第一个字符有m种,第二个字符m-1种,后面的都是m-2种 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<algorith

5.18 考试小记

绝望的比赛.又一次爆零-- 上来读完了三道题发现都没有什么最最基础的暴力,基本第一遍遛完所有题目测得分是0.第二题看着无比眼熟,但是忘记了具体打法了,但是记得当时这道题我是打出来暴力分了的.由于第一眼看上去都没有什么分,于是决定按照题目编号1.2.3的顺序做题.第一题看上去像是毒瘤数据结构,由于没有给最基础暴力分,想先直接做只有第一种操作的部分分,由于是颜色计数问题而且在树上,想到的就是主席树,并没有想到莫队算法,然后发现怎么处理都处理不出来,想尝试这bitset+树剖,但是并不会用bitset

2019.08.18考试报告

早上和skyh立flag:它在11机房虐场,我在10机房虐场.然而它考了rk1,我只拿到了rk3. T1 wxh学长讲的原题,13分钟打完正解+暴力+对拍拿到100分. T2正解复杂度$ O(n*log2(n)) $,我打的程序多了一个log,但还是可过的. 打完暴力后再打的正解,似乎很难实现? 调了1h左右,对怕出了错,发现算法需要二分找边界,所以直接先弃下去打T3了. T3码了一个dfs成功拿到10分... T2最后终于调过去啦,最后为了求稳进行了测试点分治最后WA了80. 在徐嘉一的帮助下

三级网络技术备考

1.基础准备 文档地址:打印地址 1.1 题库 买一本三级网络技术题库或者是题库软件(20 元左右),不需要买更多,总之有成套的题可以做就行.真题目前大概有二十套左右. 1.2 二进制转换 应该学过 网络技术用到的一般是八位二进制数.也就是 0 ~ 255,即 0000 0000 ~ 1111 1111(每四位空一格便于观察) 我做题前在草稿纸上先这样画 ? 这样,比如说我看见 1001 1000 这个数,就知道这是 128+16+8 对应的数. 反过来,十进制转换二进制也可以利用这个简图.还有