摘要: 这道题我一开始看还以为是数学题 求逆元其实就可以看完随机跳到另一个位置,那么根据生日悖论,状态数不会太多,双向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 阅读(11) 评论(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)