
数论
何乐乐和何了了
冲冲冲!
展开
-
2016 Multi-University Training Contest 2-1005(hdu5738) Eureka
这题很容易知道求得是共线的集合,其中点数要>=2先按x递增,x相同y递增排序点,然后枚举必取到点,以该点为中心,极坐标排序该点以后的点(atan2精度不够,建议用叉积判断),计算下就可以了,注意重点的情况#include #include #include #include #include #include #include #include #include #inc原创 2016-07-22 22:23:21 · 378 阅读 · 0 评论 -
bzoj2301 - 莫比乌斯反演
bzoj2301 莫比乌斯反演 分块处理 参考了PoPoQQQ神的ppt#include <bits/stdc++.h>using namespace std;const int N=50000+10;typedef long long LL;int prime[N],tot;int mu[N];int sum[N];void Mu(){ mu[1]=1; for (i原创 2017-06-11 15:23:29 · 418 阅读 · 0 评论 -
BZOJ 2440 完全平方数 - 莫比乌斯反演
BZOJ 2440 完全平方数 参考PoPoQQQ神的ppt首先二分答案 问题转化为求[1,x]之间有多少个无平方因子数 根据容斥原理可知 对于sqrt(x)以内所有的质数 有 x以内的无平方因子数 =0个质数乘积的平方的倍数的数的数量(1的倍数) -每个质数的平方的倍数的数的数量(9的倍数,25的倍数,…) +每2个质数乘积的平方的倍数的数的数量(36的倍数,100的倍数,…)-…原创 2017-06-11 15:38:52 · 513 阅读 · 0 评论 -
2016MUTC9-1009 Intersection is not allowed!
题目:求网格中点集A到点集B中不相交路径数题解:先求出f(i,j)表示A的第i个点到B的第j个点的路径数,再解行列式det(f(i,j))即为解#include #include #include #include #include #include using namespace std;typedef long long LL;const int N=100+10原创 2016-09-01 14:57:10 · 329 阅读 · 0 评论 -
2016ACM/ICPC Qingdao Online-1004 Tea
题意:一壶茶的容量在[L,R]之间,依次倒入两个茶杯中,需要保证最后茶壶中的茶题解:为了保证倒较少的次数,每次倒的要尽可能多,又要让[L,R]中的每个数满足。当L较大时,若L为奇数,先给第一个人倒,再给第二个人倒+1,接下来第一个人最多只能倒2,第二个人也只能倒2,……,依次下去直到倒完;若L为偶数,先给第一个人倒+0.5,再给第二个人到+1.5,接下来第一个人最多只能倒2,第二个人也原创 2016-09-17 19:42:24 · 507 阅读 · 0 评论 -
RQNOJ-8 2^k进制数
题意:给定k和w,求r的个数,其中r作为2^k进制时至少要2位且每一位严格小于右边,r作为2进制时总位数不超过w。 (k题解:若已知2^k进制下,最高位最大为a,总位数为b,则总数为,其中。这个公式的意思是最高位为i,再从中选取个数插入剩下的b-1个位置中。排列可用递推预处理ps.高精度#include #include #include #include #include原创 2016-09-16 20:58:19 · 763 阅读 · 0 评论 -
2016 ACM/ICPC Dalian Online-1008 Function
题意:给定长度为n的数组A和Q个询问。询问[L,R],求A(L)%A(L+1)%A(L+2)%……%A(R) 。其中 1≤N,Q≤100000一个性质:大数对小数取余,结果小于大数的一半。所以每个大数最多对小数取log(ai)次题解一:转自点击打开链接已知mod操作类似gcd操作,结果是单调的,只会小不会大。把所有询问预存,按左边界排序,当前左边界存在于询问时,加入优先队列,对于原创 2016-09-13 21:31:35 · 424 阅读 · 0 评论 -
2016 ACM/ICPC Dalian Online-1002 Different GCD Subarray Query
题意:给定长度为N的数组,Q个询问,每个询问求区间[L,R]中gcd的种类数 (1≤N,Q≤100000,1≤ai≤1000000)题解:首先对于以a[i]为右边界的gcd种类数不超过log(a[i]),因为每次取gcd时要么不变(种类不增加),要么质因子个数减少(种类+1),由于质因子个数最多log(a[i])个,所以种类数不超过log(a[i])我们记录下每个a[i]的不同gcd值原创 2016-09-13 19:40:05 · 347 阅读 · 0 评论 -
2016 ACM/ICPC Dalian Online-1007 Friends and Enemies
题意与题解转自:点击打开链接题目大意: m个人 n种颜色石头。 人与人之间关系要么是朋友,要么是敌人,关系不具有传递性。 每个人可以携带任何数量任何种颜色的石头(也可以不带)对于任何两个人,如果是朋友,携带的石头至少有一种相同颜色。 如果是朋友,携带的石头颜色必须完全不同。问n种颜色的石头能不能满足所有关系下m个人佩戴的石头都符合要求。就是找最坏原创 2016-09-13 18:36:58 · 435 阅读 · 0 评论 -
2016 ACM/ICPC Dalian Online-1006 Football Games
题目:n支队伍两两比赛,赢2分,平1分,输0分给出n支队伍的得分信息,判断是否合法题解:Landau's Theorem当得分信息满足以下条件时,合法{\displaystyle 0\leq s_{1}\leq s_{2}\leq \cdots \leq s_{n}}{\displaystyle s_{1}+s_{2}+\cdots +s_{i}\geq {i \c原创 2016-09-13 18:09:30 · 376 阅读 · 0 评论 -
codeforces Round#369 div2-E ZS and The Birthday Paradox
题意: 一年中有2^n天,问有k个人至少有两个人生日在同一天的概率,用分数表示。其中n,k题解:1e6+3为素数。直接求不好求,我们可以总数-不成立的数。不成立的即为k个人中没有一个人的生日在同一天,即。而当k-1>=mod时,分子中必然含有mod的倍数,取余后分子为0;当k-1由于分母中只含素数2,化简时只需求出分子中2的个数。注意:k>2^n的情况,直接输出1 1即可#incl原创 2016-08-30 00:04:07 · 559 阅读 · 0 评论 -
2016MUTC10-1002 Hard problem
如图,图中S1的三边已知,则可求S1,同时求出角度;S2+S1是个扇形也可求,此时可知S2;S2+S3也是个扇形,此时可知S3#include #include #include #include #include #include using namespace std;double Calc(){ double a=asin(sqrt(7.0)/2.0/sqrt原创 2016-08-29 12:43:19 · 498 阅读 · 0 评论 -
BestCoder Round #85-1005 gcd
官方题解:首先有等式({x}^{a}-1xa−1,{x}^{b}-1xb−1)={x}^{gcd(a,b)}-1xgcd(a,b)−1成立,相当于计算\sum \sum {x}^{gcd(a,b)}-1∑∑xgcd(a,b)−1 。记s[d]=最大公约数为d的对数,答案\sum s[d]*({x}^{d}-1)∑s[d]∗(xd−1). 先用筛法计算出欧拉原创 2016-08-01 08:47:35 · 335 阅读 · 0 评论 -
LA4119--算法入门经典训练指南
题目大意:判断一个关于n的多项式P(n)能否恒整除一个正整数D题解:设多项式的最高项次数为k。我们只需要把n=1,2,3,……k+1都试一遍就行了。证明:k=0时,P(n)是常数,若P(1)能整除,则P(n)恒整除D;k=1时,设P(n)=an+b,为等差数列,只要a,b整除D,则P(n)恒整除D。验证时只需取P(1),P(2)即可;k=2时,设P(n)=an^2+bn+c,则P(翻译 2016-07-09 00:28:36 · 577 阅读 · 0 评论 -
UVa 11426--算法竞赛入门经典训练指南
题目大意:输入正整数n,求所有满足1题解:设f(n)=gcd(1,n)+gcd(2,n)+……+gcd(n-1,n),则所求答案S(n)=f(2)+f(3)+……+f(n)注意到gcd(x,n)的值都是n的约数,可以按照这个约数进行分类,用g(n,i)表示满足gcd(n,x)=i且x求f(n)时,对于每个i枚举它的倍数n(并更新n的值),类似于素数筛法求解。#include #i翻译 2016-07-09 00:52:14 · 591 阅读 · 0 评论 -
2016MUTC3-1003 Life Winner Bo
对于king:当行列各剩偶数步时,先手必败;否则,先手必胜对于行列各剩偶数步,先手怎么走后手只要跟着相应的走,则先手必败对于rook(车):相当于从两堆石子取数,每次可以从任一一堆取任意大于0的石子数。显然当两堆石子数相同时,先手必败,后手只要跟着取即可;否则先手胜对于knight(马):画图即可找到规律;对于queen:dp[i][j]表示从(1,1)走到(i,j)先手的状态,1原创 2016-07-26 18:28:03 · 414 阅读 · 0 评论 -
bzoj3529 - 莫比乌斯反演
bzoj3529参考PoPoQQQ神的莫比乌斯反演ppt取模利用自然溢出int 最后再对2^31-1取与。不然会超时QAQ。 写代码传参数的时候传炸了。。调试了极久#include <bits/stdc++.h>using namespace std;typedef long long LL;const int N = 1e5+10;int M;int prime[N],tot;i原创 2017-06-11 20:15:24 · 421 阅读 · 0 评论