随笔分类 -  题解

1
摘要:考虑 n=3n=3n=3 的情况,假设我们第一次询问 (a,b)(a,b)(a,b),得到 a<ba<ba<b,如果第二次询问仍然包含 aaa 的话就可能得到前 333 名的排序了。 接着询问 bbb 不好做,于是我们考虑询问另一个不相交的 (c,d)(c,d)(c,d),得到 b<db<db<d, 阅读全文
posted @ 2023-10-05 20:37 swiftqwq 阅读(16) 评论(0) 推荐(0)
摘要:设 solve(S) 为只考虑 SSS 这个集合内数时的答案,我们将每一个数向它的倍数连边建出一张无向图,容易发现如果这张图不连通每一个连通块是互不影响的(因为无论怎么选都不会导致另一个连通块内的点被删除),于是可以枚举最小的数选不选,如果删除之后不连通就分别调用 solve 解决,感性理解一下可以 阅读全文
posted @ 2023-04-04 07:26 swiftqwq 阅读(13) 评论(0) 推荐(0)
摘要:考虑将所有放长椅的地方黑白染色,黑色的只连横着的边,白色的只连竖着的边,考虑从上到下,从左到右加入所有边,并尽量保证我们当前的图与所有边都加入的图连通性相同,黑色块上面的边和白色块左面的边一定能加入,只需要考虑两种情况: 黑色块下面的边 此时三条绿色的边一定已经(可能以等价形式)加入,这条边一定不用 阅读全文
posted @ 2023-03-20 22:45 swiftqwq 阅读(30) 评论(0) 推荐(0)
摘要:d1(x)d_1(x)d1​(x):从 s1s_1s1​ 到 xxx 的距离。 d2(x)d_2(x)d2​(x):从 s2s_2s2​ 到 xxx 的距离。 我们将一条边 (a,b)(a,b)(a,b) 的权值只可能调整到 lil_ili​ 或 rir_iri​,考虑以下三种情况: 这条边没有被任 阅读全文
posted @ 2021-08-12 16:02 swiftqwq 阅读(12) 评论(0) 推荐(0)
摘要:简要题意: 给你一个01矩阵,从中识别出一个表达式(0~9、+、-、*、/、(、) )并求值 字符有旋转 有随机噪点 1.降噪 如果不降噪会影响图片的识别效果,而且我们很容易发现噪点连成一个很大的联通块基本是不可能的,所以我们可以通过 flood-fill 求出每一个联通块,并删掉所有大小<100的 阅读全文
posted @ 2020-02-29 10:53 swiftqwq 阅读(66) 评论(0) 推荐(0)
摘要:首先tarjan求割点和边双联通分量,然后对于每一个边双联通分量: 若没有割点 需要建两个出口,在任意两个位置即可。 若有一个割点 需要建一个出口,不在割点即可。 若有两个以上的割点 无需建出口。 code: #include<bits/stdc++.h> #define int long long 阅读全文
posted @ 2020-02-24 20:12 swiftqwq 阅读(9) 评论(0) 推荐(0)
摘要:首先tarjan求割点和边双联通分量,然后对于每一个边双联通分量: 若没有割点 需要建两个出口,在任意两个位置即可。 若有一个割点 需要建一个出口,不在割点即可。 若有两个以上的割点 无需建出口。 code: #include<bits/stdc++.h> #define int long long 阅读全文
posted @ 2020-02-24 20:12 swiftqwq 阅读(12) 评论(0) 推荐(0)
摘要:ODT 模版题 1.什么是ODT ODT是一种基于set 在有区间赋值操作,且是随机数据下复杂度有保证 的数据结构,可以维护很多东西(因为操作基本都是暴力)。 2.ODT的实现 1.split ODT使用 set 维护数值相同的区间,当数值发生改变时,就需要把一个区间查看,使用set.lower_b 阅读全文
posted @ 2020-02-14 11:13 swiftqwq 阅读(9) 评论(0) 推荐(0)
摘要:这篇题解和 @cosmicAC 的思路一样,只是他给出的统计空格数的方式是错误的 经过我的上网查找尝试,有了下面的代码 十五行A黑题 代码: #include<bits/stdc++.h> using namespace std; int main(){ system(R"( read a for 阅读全文
posted @ 2019-11-11 19:42 swiftqwq 阅读(11) 评论(0) 推荐(0)
摘要:这道题用什么三分套三分、模拟退火算法啊,明明暴力都可以过 很显然,从A走到D的最短路一定是在AB上走一段,在平面上走一段,再在CD上走一段,所以我们就可以枚举在AB走上的长度和在CD走上的长度 所以我们之间把AB和CD分成5000段,枚举走了几段就可以了 另外还要注意A,B点可能重合 代码: #pr 阅读全文
posted @ 2019-09-14 14:27 swiftqwq 阅读(9) 评论(0) 推荐(0)
摘要:我们先求出来所有可能的方案,共有 C(l+3,3)C(l+3,3)C(l+3,3) 种(插板法),再减去不合法的方案数 不合法的方案数要分三类讨论,aaa 为最长边; bbb 为最长边; ccc 为最长边;对于每一种情况,枚举给最长边加多少长度,然后求出剩下的长度(注意,需要和c+i−a−bc+i- 阅读全文
posted @ 2019-09-01 19:43 swiftqwq 阅读(20) 评论(0) 推荐(0)
摘要:一道很简单的字典树模版题 字典树是什么? 简单的说,字典树就是把很多个字符串合并在一起,如下图一样的树,详细建立的方法可以看我的代码 我们把所有的电话号码建成一颗字典书,在插入的过程住如果发现有结束标记,或者结束时发现这个节点还有儿子,就输出NONONO,如果没有发现这种情况就输出YESYESYES 阅读全文
posted @ 2019-09-01 19:28 swiftqwq 阅读(9) 评论(0) 推荐(0)
摘要:我们可以发现,如果一头牛在三张照片中在另一头牛的前面,那么它在原生序列中就在另一头牛的前面,因为一头牛只有一次机会在一张照片中改变自己和另一头牛的相对位置,在下一张照片中就必须要回去。 所以代码就很好写了,我们用map记录每头牛在每一张照片中的位置,然后给任意一张照片排序,比较的时候就按上文的方法就 阅读全文
posted @ 2019-09-01 19:17 swiftqwq 阅读(19) 评论(0) 推荐(0)
摘要:这道题我一开始看还以为是数学题 求逆元其实就可以看完随机跳到另一个位置,那么根据生日悖论,状态数不会太多,双向bfs即可 #include<bits/stdc++.h> #define int long long using namespace std; int u,v,p; map<int,int 阅读全文
posted @ 2019-08-18 20:07 swiftqwq 阅读(12) 评论(0) 推荐(0)
摘要:看了那么多大佬的线段树题解,本萌新瑟瑟发抖,那么就写一篇卡常能过的dfsdfsdfs题解吧 首先,对于每一段区间,我们可以用树状数组来维护其中的复仇者数量,然后讨论如何炸毁这段区间: 如果其中没有复仇者,直接炸毁即可 要不然把区间分成两段,枚举每一段是直接炸毁还是继续dfsdfsdfs下去,最后取答 阅读全文
posted @ 2019-08-05 12:34 swiftqwq 阅读(9) 评论(0) 推荐(0)
摘要:建议在我的博客阅读,要不然markdownmarkdownmarkdown可能会炸 QAQ 看这个式子:(ai+aj)∗(ai2+aj2)≡k mod p(a_i+a_j)*(a_i^2+a_j^2)≡k\ mod\ p (ai​+aj​)∗(ai2​+aj2​)≡k mod p 大家都知道平方差公 阅读全文
posted @ 2019-08-05 12:08 swiftqwq 阅读(7) 评论(0) 推荐(0)
摘要:Solution: 我们将 k 按二进制位考虑: 设f[i][0]f[i][0]f[i][0]为k的二进制位第iii位为0时这一位的方案数,f[i][1]f[i][1]f[i][1]为k的二进制位第iii位为1时这一位的方案数 对于 k 的每一位,如果为 0,那么每个 andandand 的两个数的 阅读全文
posted @ 2019-08-01 07:49 swiftqwq 阅读(11) 评论(0) 推荐(0)
摘要:排版哪里有问题啊QAQ 根据题意,一个强连通分量一定是半联通子图,所以多个强联通分量也一定是半联通子图,所以问题就转化成了在一个缩点后的图上找最长链,步骤如下: 1.缩点 先用tarjan记录每一个强联通分量的大小和每个点在哪个强连通分量里 void tarjan(int now){ if(vis[ 阅读全文
posted @ 2019-07-29 12:05 swiftqwq 阅读(12) 评论(0) 推荐(0)
摘要:我们设now[x]为前一个数二进制位第x位为1时的最大值 因为只有两个数有一个二进制为同为1时他们才可以连接,所以我们扫描每一个数,如果它二进制为第i位为1,找出这样最大的now[i]设为MAX,然后把每一个now[i]都设为MAX+1(把这个数接到前面最长的子序列上,让后边继续接) CODE: # 阅读全文
posted @ 2019-06-28 20:37 swiftqwq 阅读(12) 评论(0) 推荐(0)
摘要:我感觉这道题还是三分做比较好吧 首先看到题面,设check(x)为a1-x,a2-x,...,an-x的不美好程度 显然它不是单调的,所以我们用三分来解 三分大家都会吧,那么我们来考虑check(x)怎么求 1.暴力求法 直接求出前缀和,然后暴力模拟 代码: //fabs为double的abs do 阅读全文
posted @ 2019-06-26 18:56 swiftqwq 阅读(11) 评论(0) 推荐(0)

1