博客维护记录
2023/10/15添加了评论功能,也就是说可以在个人博客里交流啦,直接全面碾压洛谷博客!
本博客头像使用的gravatar,建议使用能访问它的网络。
2023/10/5根据lyc的建议,添加了友链lyc你还是把我的descr修一下吧
2023/9/30添加了对categories的支持。本博客已经完全修复。
2023/9/29添加了博客文章的字数统计和预估阅读时长的功能。
2023/9/16添加了对tags和archives的支持。
2023/9/10修复了这个删库跑路次数极多的博客,搬迁到了github上。
添加了密码设置,造好了发电站。
洛谷-P6982[NEERC2015]Jump-题解
好题。
题意:
给定长度为 $n$($n$ 为偶数) 的 01 字符串 $S$。
你可以向交互库进行询问。你可以向交互库输出一个长度为 $n$ 的 01 字符串 $Q$。设 $S$ 和 $Q$ 有 $k$ 个对应的位置上的字符相同。若 $k=n$ 或 $k=\frac n 2$,则交互库将返回 $k$,否则交互库将返回 $0$。
你最多向交互库询问 $n+500$ 次,要求求出 $S$。你只需要使最后一次询问的返回值为 $n$ 即可。此时你应立即结束程序,否则将得到不可预料的结果。
若你的字符串长度不为 $n$ 或出现 01 以外的字符,或者你的询问次数超过上限,则交互库会返回 $-1$。此时你应立即结束程序,否则将得到不可预料的结果。
$1\leq n\leq 1000$。
(我抄的题面)
你考虑如果已经确定了一个相同个数为 $k=\frac n 2$ 个的字符串会怎么做。
你考虑每次把第一个数和另外一个数一起反转。如果相同个数仍然为 $k=\frac n 2$,那么显然第一个数和另外一个数必然一个对一个错。我们这样询问 $1$ 和其他每一个位 ...
乱搞problems,但是校内
566fd306bb9665898cbc306eaf7e4cdb51cb474d0235814da3e0cef19f4c95c22b7ee61aa6a76e59ca634dd53a5ee101b098864efd4cfbf12b49325a6b3aee6696204ce5dac89d02b77b08ad9c5cdd1760d037d031ed0c2725acd8451ea8a8b24baf4078b2dba69284a11a434f0e476d386bb05bf6d7019bc1090720d2256644e46febf111b07380936228cb2a41fa8c0d2f7e391cbd861e993d17ce297f26e232009a744bf715512a58dace0e89c22a966d04c82316b3f269a5cce09de61d70f34f1cb4184714eed719ac235b702881e94642b3a1a3347816df76bdc22a80383e372d4d9afdd65cabad91523b9259ea86fbaac2c6120eb2a ...
通道题解
考虑乱搞,每次随一个点跑bfs,然后下一个点就是当前一次跑出来的最远点。
你发现你被外挂诱导节点的数据卡爆了。
然后你对每棵树附一个01权值多跑几遍所有的hack都卡不掉你了。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 ...
9.16鲜花(脱敏版)
464deab8b6d56d95d4a368729c99b842e153e662734961929b9dfcf4004672a1769fa301620ba4a6fd031de342a9d977d52fc5de6babc735702879a3867e4e53845d5eeeabb49b5b691fa5ef47384069a79f86ce16929ae17e2f70a3ce7dff24ba609447be41a367b5aab68fc28f8a806d69e68fc18c3e67f68400411eb84c9acd6fde9448b155392387579218237157566ae44db64fc65a36211f9f3e3200b41777447e4439a923eaa48d9e82e1c2b6f3271761c04206ca94f8862d08c0d35dddbbc2ba4bd2d326ace1fc670b6bd340f057e2be23a95c2c4667908b325c123117c92695a7a0e9be4268eaff3e1faacad173553693b124799 ...
骗分方法
骗分方法1、输出样例2、特殊情况3、随机数4、卡时5、爆搜剪枝6、打表7、找规律8、随机化算法9、假做法10、一般情况
平面最近点对
平面最近点对的许多奇奇怪怪的做法1、正常人的想法法一:暴力最直接、最简单的方法,虽然往往拿不到分。
法二:分治法1考虑把所有的点按x排序。然后你考虑每次把他们分成一半,这样就被拆成了三个部分:
1、左边区间内部
2、右边区间内部
3、跨过了分治的分界线
因为1和2的情况可以被递归解决,所以重点说明3怎么做
你考虑先递归出1和2的答案,设为 $d$ 。
对于跨过分界线的答案,考虑每一个点和分界线的距离,那我们就不需要考虑距离比 $d$ 还要远的点了。
把满足条件的记下来,然后按 $y$ 坐标递增排序。
然后对于每一个点,暴力往后查找最近点对,如果 $y$ 坐标的差都大于 $d$ 了,就可以去统计下一个点的答案了。
注意这个时候也要实时更新 $d$。
时间复杂度 $O(n \log^2 n)$ ,复杂度瓶颈在于分治中间的按y坐标排序。
12345678910111213141516inline double dis(node x,node y){ return sqrt((x.x-y.x)*(x.x-y.x)+(x.y-y.y)*(x.y-y.y));}double c ...
四毛子算法学习笔记
前言“***,你会四毛子算法吗?不会的话就去学会,给同学们讲讲”
简介四毛子算法 (Four Russian) 是一个由四位俄罗斯人毛子提出的一种可以在 $O(n \log \log n) - O(1)$ 复杂度内解决RMQ问题的算法。
算法流程首先把序列分块,对于每块内部维护一个ST表,对于不同的块之间再维护一个ST表。
每次查询一个 $[l,r]$ 的时候:
假设l所在的区间为 $[l_1,r_1]$ ,r所在的区间为 $[l_2,r_2]$。
若l和r处于同一块内,直接查询块内的ST表即可。
若l和r处于相邻块内,则直接查询 $[l,r_1]$ 和 $[l_2,r]$ 的最小值即可。
否则,我们把区间 $[l,r]$ 分成三段:
1: $[l,r_1]$
2: $[r_1+1,l_2-1]$
3: $[l_2,r]$
其中第二个区间直接查询不同块之间的ST表,第一个和第三个区间块内查询即可。
复杂度分析查询复杂度显然为 $O(1)$。
设块长为k,则有预处理复杂度:
$$O(\frac{n}{k} \log \frac{n}{k}+n \log k)$$
我们取 $k= ...
我会且仅会的东西
1、最基础的骗分方法
2、最基础、最低效、最低正确率的乱搞方法
3、最低效的打表方法
4、最龟速的找规律方法
5、笨得甚至不像黑科技的科技
6、摆摆摆