51nod 1622 集合对[算法马拉松19 C]】的更多相关文章

题目链接:https://www.51nod.com/contest/problem.html#!problemId=1622 第一次参加算法马拉松,我就是去看大神们疯狂秒题,然后感受绝望的orz.. 题解: 设M = P xor A,则 M∈A,M是P的补集,M与P一一对应. 设N = Q xor B,则 N∈B,N是B的补集,N与B一一对应. 所以(P xor A)xor(Q xor B) = M xor N = A xor B 即求有多少对(M,N),M∈A,N∈B,满足上式. 因为属于A…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1622 简单题..直接暴力快速幂 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; const ll p = 1000000007; int main() { ll A, B, C; scanf(&qu…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1616 这道题主要是查询一个数是不是原有集合的一个子集的所有数的gcd. 只要枚举一个数的倍数暴力判断就可以了,时间复杂度\(O(alna),a=10^6\) #include<cstdio> #include<cstring> #include<algorithm> using namespace std; bool vis[1000003];…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1501 dp求出环状不连续的前缀和,剩下东西都可以算出来,比较繁琐. 时间复杂度\(O(n+m)\). #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; const int N = 500003; in…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1674 对区间分治,统计\([l,r]\)中经过mid的区间的答案. 我的做法是从mid向右扫到r,统计出所有\([mid,i],mid\leq i \leq r\)的and和or值. 然后发现这些and和or值有很多相同的,把相同的压在一起并记录sum,再从mid-1扫到l并暴力从mid向右统计答案. 事实上因为\([mid,i],mid\leq i \leq r\)是…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1815 tarjan缩点后在DAG上递推即可. 每个点维护所有根到它的路径上的值的最大值,严格次大值,最大的"根到这个点的一条路径中的严格次大值"(也就是答案). 注意所有根到它的路径上的值的严格次大值不是答案. 时间复杂度\(O(n)\). #include<cstdio> #include<bitset> #include<cs…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1765 设答案为\(X\). 则\[X=\frac{m}{n}\times\frac{\sum a_i}{m}+\frac{n-m}{n}\left(\frac{\frac{(n-1)n}{2}-\sum a_i}{n-m}+X\right)\] \[X=\frac{n(n-1)}{2m}\] #include<cstdio> #include<cstring&g…
先说说前面的SPOJ-RNG吧,题意就是给n个数,x1,x2,...,xn 每次可以生成[-x1,x1]范围的浮点数,把n次这种操作生成的数之和加起来,为s,求s在[A,B]内的概率 连续形的概率 假设有3步,那整个分布范围相当于一个立体几何图形,上界b和下界a可当成一个x+y+z=a或b的平面看待,算出x<=X1 x>=-X1 y<=X2 y>=-X2 z<=X3 z>=-X3 发现体积就是f(x1,x2,x3)+f(-x1,-x2,x3)+f(-x1,x2,-x3)…
题目戳这里:51NOD算法马拉松8 某天晚上kpm在玩OSU!之余让我看一下B题...然后我就被坑进了51Nod... A.还是01串 水题..怎么乱写应该都可以.记个前缀和然后枚举就行了.时间复杂度O(N) #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn = 1000009; char s[maxn]; int sum[maxn], N…
这次打算法马拉松是在星期五的晚上,发挥还算正常(废话,剩下的题都不会= =). 讲讲比赛经过吧. 8:00准时发题,拿到之后第一时间开始读. A配对,看上去像是二分图最大权匹配,一看范围吓傻了,先跳过读后面的题. B完全二叉树的方差,大概看了一遍,好神的样子,跳过. C多项式?好吧没学过FFT和NTT的我肯定不会,跳跳跳. D最大值,哎呦这函数什么破玩意儿,看不懂,跳跳跳. E B君的射击,卧槽毕克大人您出题就算了出这么一道码农题是要闹那样,跳跳跳. F那些年,我们一起讲的故事,卧槽这特么简直就…