
=======数论=======
文章平均质量分 69
九野的博客
这个作者很懒,什么都没留下…
展开
-
HDU 3970 Harmonious Set 容斥欧拉函数
链接题解:www.cygmasot.com/index.php/2015/08/17/hdu_3970给定n 求连续整数[0,n), 中任意选一些数使得选出的数和为n的倍数的方法数。。。并不会如何递推。。思路:然后这是公式:点击打开链接a(n) = 1/n * sum_{d divides n and d is odd} 2^(n/d) * phi(原创 2015-08-17 22:17:45 · 2704 阅读 · 1 评论 -
HDU 5072 Coprime 2014 Asia AnShan Regional Contest 容斥
#include #include #include #include #include using namespace std;/////template inline bool rd(T &ret) { char c; int sgn; if(c=getchar(),c==EOF) return 0; while(c!='-'&&(c'9')) c=getchar();原创 2014-10-27 09:32:05 · 1499 阅读 · 0 评论 -
HDU 4345 Permutation dp
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2014-10-10 13:45:31 · 1220 阅读 · 0 评论 -
欧拉函数模版
素数线性筛+欧拉函数#define ll int#define N 10000000//prime[0,primenum)ll prime[1000000], primenum;bool Isprime[N+10];//<=Max_Prime的素数void PRIME(ll Max_Prime){ primenum = 0; Isprime[0] = Isprime[1] =原创 2014-07-01 18:28:37 · 1014 阅读 · 0 评论 -
HDU 4344 随机法判素数(费马小定理
#include #include #include #include using namespace std;typedef long long ll;const int N = 108;const int S = 10;ll mult_mod(ll a, ll b, ll c) { a %= c; b %= c; ll ret = 0; whi原创 2014-10-09 20:46:00 · 1386 阅读 · 0 评论 -
高斯消元模版
#include #include #include using namespace std;const int maxn = 105;int equ, var; // 有equ个方程,var个变元。增广阵行数为equ, 分别为0到equ - 1,列数为var + 1,分别为0到var.int a[maxn][maxn];int x[maxn]; // 解集.bool free_x原创 2014-07-29 18:12:59 · 1368 阅读 · 0 评论 -
HDU 4307 Matrix 最小割 矩阵乘法展开
==线代好难#include#include#include#include#include#include#includetemplate inline bool rd(T &ret) { char c; int sgn; if(c=getchar(),c==EOF) return 0; while(c!='-'&&(c'9')原创 2014-10-05 00:03:12 · 1734 阅读 · 0 评论 -
LightOJ 1038 Race to 1 Again 期望 记忆化dp
题目链接:点击打开链接1038 - Race to 1 AgainPDF (English)StatisticsForumTime Limit: 2 second(s)Memory Limit: 32 MBRimi learned a new thing about integers, whic原创 2014-08-18 00:17:12 · 2687 阅读 · 0 评论 -
BNU 34978 汉诺塔 求期望步数
题目链接:点击打开链接我们用dp[i]表示 随机i个盘子时,恢复原位需要的步数的期望f[i]表示i个盘子下普通的汉诺塔玩法的步数既然是随机,那么我们就认为是在上一次随机的情况下,把第n个放到任意一根柱子的底部那么若随机放到了第3个柱子,则步数就是dp[n-1]若放到了第1根柱子,则先把前面的n-1个盘子移动到第2根柱子上,花费是dp[n-1]然后再把n盘子移动到原创 2014-08-14 00:02:26 · 1783 阅读 · 0 评论 -
UVALive 6175 Maximum Random Walk 期望+概率dp
题目链接:点击打开链接原创 2014-09-27 18:50:32 · 1409 阅读 · 0 评论 -
Codeforces 475D CGCDSSQ 求序列中连续数字的GCD=K的对数
题目链接:点击打开链接#include #include #include #include #include #include using namespace std;typedef long long ll;template inline bool rd(T &ret) { char c; int sgn; if(c=getchar(),c==EO原创 2014-10-06 11:44:30 · 2337 阅读 · 0 评论 -
HDU 5050 Divided Land 2014 ACM/ICPC Asia Regional Shanghai Online
求2个二进制数的GCDjava大数+位压import java.math.*;import java.util.*;import java.io.*;public class Main { public BigInteger GCD(BigInteger x, BigInteger y) { if(x.compareTo(y) < 0) {原创 2014-09-27 17:54:09 · 1629 阅读 · 0 评论 -
Codeforces 107B Basketball Team 简单概率
题目链接:点击打开链接题意:给定n m h表示有m个部门,有个人现在在部门h下面m个数字表示每个部门的人数。(包括他自己)在这些人中随机挑选n个人,问挑出的人中存在和这个人同部门的概率是多少。这个人一定在挑出的n个人中。反向思考。答案是 1 - 不可能概率不可能概率 = C(n-1, sum-1-a[h]) / C(n-1, sum-1)发现2个组合数的分母部分原创 2014-09-02 08:51:08 · 1853 阅读 · 0 评论 -
Codeforces 109C Lucky Tree 组合计数+dfs
题目链接:点击打开链接题意:给定n个点的树,有边权。定义lucky number:数字只有4或7组成对于一个三元组(i, j, k)若path(i,j) 路径上的数字存在lucky number && path(i,k) 路径上的数字存在lucky number则三元组合法。问有多少个合法的三元组。( (i,j,k) != (i,k,j) )用全集-补集。dfs原创 2014-09-02 16:41:15 · 1715 阅读 · 0 评论 -
Codeforces 76 Plus and xor 两数异或相当于不进位加法
题目链接:http://codeforces.com/problemset/problem/76/D求 一个解(x,y) 使得1、 x+y = A2、 x^y = B若有多解求x最小的一个无解则输出-1因为x^y是不进位的加法所以 A的二进制中的 进位得到的1 可以由 A-B 得到然后若整除2 那么就有解 ,解就是 (A-B)/2若不能则无解#include原创 2014-08-18 19:21:06 · 1935 阅读 · 0 评论 -
Codeforces 463E Caisa and Tree dfs+分解质因素
题目链接:点击打开链接题意:给了一棵树每个点有点权操作1 : 1 u 表示询问 gcd(Valueof(u), Valueof(v) ) != 1 的所有v 点中深度最大的点[ v是 path(u, root); && v!=u ]操作2 : 2 u w 修改点权因为操作2的个数不超过50个,所以每次更新点权后都把所有答案预处理一遍。这样回答是O(1原创 2014-08-30 20:26:49 · 2499 阅读 · 2 评论 -
HDU 4952 Number Transformation 规律题
打表可以知道到后面增量都一样了,,推论就是 i 和 i+1 互质#include #include #include #include using namespace std;typedef long long ll;const ll mx = 120000;int main() { int cas = 0; ll x, k, y, dis, i;原创 2014-08-14 17:54:41 · 1204 阅读 · 0 评论 -
HDU 5045 Contest 期望+状压dp 2014 ACM/ICPC Asia Regional Shanghai Online
题意:给定n个人 m个题目下面n*m的矩阵表示每个人解出每道题的概率我们可以得到一个模长为m的集合{1,2,3,1,2}代表每道题是谁解出的。有众多集合,且获得这个集合有一个期望,求期望最大的那个集合 ( 的期望值是多少)一个限制: 对于集合 {1,1,2,3,1} 这样是不合法的(即从[1,n]题必须是1-n的排列,然后[n+1, 2n]题也是一个排列)然后状原创 2014-09-27 18:01:40 · 1607 阅读 · 0 评论 -
矩阵快速幂模版
#define Matr 105 //矩阵大小struct mat//矩阵结构体,a表示内容,size大小 { int a[105][105],size; mat() { size=0; memset(a,0,sizeof(a)); }};void print(mat m)//输出矩阵信息,debug用原创 2013-08-18 09:09:48 · 3694 阅读 · 0 评论 -
SGU 217 Acdream 1234 Two Cylinders 自适应辛普森
题目链接:点击打开链接给定r1,r2表示2个圆柱体的半径这两个圆柱体高是正无穷,互相垂直,问相交的最大面积#include #include #include #include #define M 410#define inf 0x3f3f3f3fconst double eps = 1e-8;template inline bool rd(T &ret)原创 2014-10-05 18:51:49 · 1789 阅读 · 0 评论 -
1^k+2^k+3^k+··· ZOJ 3547 UVA 766
题目链接:点击打开链接资料:组合数回代公式:点击打开链接伯努利数:点击打开链接方法一:首先给出一个神奇的组合数公式: C(n,k)+C(n+1,k)+C(n+2,k)+C(n+3,k)……+C(N,k)由于: C(n,k)=C(n-1,k)+C(n-1,k-1) 因此 上式 = - C(n,k+1) + { C(n,k+1)+C(原创 2015-05-23 21:53:47 · 2986 阅读 · 0 评论 -
HDU 4133 StrangeStandard 反素数
题目链接:点击打开链接反素数:点击打开链接爆搜幂即可。#include #include #include #include #include #include #include #include #include #include #include #include template inline bool rd(T &ret) { char c; int原创 2015-05-18 14:08:41 · 1324 阅读 · 0 评论 -
HDU 2650 A math problem 高斯整数判定
题目链接:点击打开链接转自Acdreamers:点击打开链接我们把集合:叫做高斯整数环,其中Z表示通常的整数环,而用表示复数域上的整数环。 那么什么是环呢?就是通过加减乘三种运算后,仍然能满足本身性质的就叫做环。 范的定义:设,,定义a的范为 设,则 (1)为非负整数,并且 (2)原创 2015-05-21 23:10:16 · 1300 阅读 · 0 评论 -
Codeforces 547C Mike and Foam 容斥
题目链接:点击打开链接题意:给定n个数,q个操作下面n个数 a1-an开始有一个空的集合每个操作一个数字 u (1每个操作结束后输出 当前集合内有多少对数 是互质的。思路:分解质因素,然后容斥一下求 与a[u] 不互质的个数,做个差即可。#include #include #include #include #include #原创 2015-05-27 23:18:57 · 1575 阅读 · 1 评论 -
HDU 1452 Happy 2004 求2004^n的所有因子和 积性函数应用
题目链接:点击打开链接百度个题解:点击打开链接6的因子是1,2,3,6; 6的因子和是 s(6)=1+2+3+6=12;20的因子是1,2,4,5,10,20; 20的因子和是 s(20)=1+2+4+5+10+20=42;2的因子是1,2; 2的因子和是 s(2)=1+2=3;3的因子是1,3; 3的因子和是 s(3)=1+3=4;4的因子和是 s原创 2015-05-12 12:25:17 · 1106 阅读 · 0 评论 -
HDU 1714 RedField 一重积分
题目链接:点击打开链接给定椭圆的标准方程,椭圆外一点(x,y) 且 x>=a , abs(y)>=b求阴影面积先求出直线与椭圆的交点(x1, y1),然后积分即可。#include #include #include #include #include #include #include #include #include #include #原创 2015-05-11 19:15:07 · 1416 阅读 · 0 评论 -
HDU 1018 Big Number 斯特林数近似n!
题目链接:点击打开链接斯特林数:点击打开链接题意是计算n! 的位数即ans = log10(n!) = log10(sqrt(2πn)) + n*log10(n/e)#include #include #include #include #include #include #include #include #include #include #原创 2015-05-11 20:23:02 · 1596 阅读 · 0 评论 -
POJ 2773 Happy 2006 二分+容斥(入门
题目链接:点击打开链接题意:输入n ,k 求与n互质的第k个数(这个数可能>n)思路:solve(mid)表示[1,mid]中有多少个和n互质,然后二分一下最小的mid 使得互质个数==k#include #include #include #include #include #include #include #include #include原创 2015-04-09 22:00:57 · 1183 阅读 · 0 评论 -
HDU 4135 Co-prime 区间内与n互质的个数 容斥(入门
题目链接:点击打开链接题意:给定区间[l, r] 询问区间内有多少个数和n互质思路:solve(x) 表示[1,x]区间内与n互质的个数,则ans = solve(r)-solve(l-1);与n互质的个数=所有数-与n不互质的数=所有数-(与n有一个因子-与n有2个因子的+与n有3个因子的)状压n的因子个数,然后根据上面的公式容斥得到。#include原创 2015-04-09 21:19:37 · 1202 阅读 · 0 评论 -
POJ 3695 Rectangles 1w询问求20个矩阵面积并 容斥
题目链接:点击打开链接 一个详细的题解:点击打开链接题目大意是给出若干个矩形(n 每个询问会给出一些矩形的编号,问这些矩形的面积并有多大谈到矩形并,也许第一反应都是线段树但是此题有一个特点,就是n非常小,m却非常大用线段树很有可能会不行于是换个思路,n很小,我们可以把所有的可能组合情况都考虑到,然后呢预处理出来,这样询问时就是O(1)的查原创 2015-04-07 21:32:13 · 1062 阅读 · 0 评论 -
HDU 1796 How many integers can you find 容斥(入门
题目链接:点击打开链接题意:给出常数n, m个数的集合。问:[0, n-1] 中有多少个数 是集合中 某个数的倍数。思路:求的是有多少个数至少被集合中一个数整除=能被集合中一个数整除-被2个整除+被3个整除···#include #include #include #include #include #include #include #i原创 2015-04-07 19:36:46 · 1061 阅读 · 0 评论 -
POJ 1222 EXTENDED LIGHTS OUT 高斯消元 异或方程 (水
题目链接:点击打开链接题意:给定5*6 的灯的目标状态(开始全暗),每按下一个灯就会把这个灯及这灯相邻的4个灯状态改变。输出一个按灯的方案使得由全暗变成输入的状态。思路:每盏灯都作为一个变量,a1&x1 + a2&x2 + a3&x3 ··· a30&x30 = input[1][1] 能影响到某盏灯的系数是1,其他是0实际上是x4 + x5 + x3 + x1原创 2015-03-26 21:52:23 · 1382 阅读 · 0 评论 -
HDU 3364 Lanterns 高斯消元(水 异或方程
题目链接:点击打开链接题意:给定n盏灯,m个开关下面m行给出每个开关可以控制哪些灯(即按下此开关,这些灯的状态会改变)下面q个询问:一行一个询问,一个询问n个数字表示灯的最终状态问从全暗到这个状态的方案数(一个开关只能按一次)n条方程,等式右边就是输入的灯的状态。m个未知数,表示每个开关是否按下,系数就是这个开关能否影响到那盏灯解完方程后首先判断系数矩阵的秩是否和增原创 2015-03-25 20:15:32 · 1596 阅读 · 0 评论 -
UVALive 3516 Exploring Pyramids 区间dp+计数原理
题目链接:点击打开链接给定多叉树的先序遍历结果,求多叉树的同构数思路:区间dpimport java.io.PrintWriter;import java.util.ArrayList;import java.util.Scanner;public class Main { int min(int a,int b){return a>b?b:a;} int max(原创 2014-12-24 12:12:11 · 1489 阅读 · 0 评论 -
UVA 11174 Stand in a Line 树形dp+计数
题目链接:点击打开链接题意:白书的P103.加个虚根就可以了。。。然后就是一个多重集排列。import java.io.PrintWriter;import java.util.ArrayList;import java.util.Scanner;public class Main { static int N = 40100; ArrayList[] G = new Ar原创 2014-12-23 00:01:47 · 1622 阅读 · 0 评论 -
Codeforces 492E Vanya and Field 规律题
题目链接:点击打开链接给定n*n的矩阵(0,0)->(n-1, n-1) m个苹果(下面m行给出苹果坐标)(dx, dy) 向量。任选一个起点,用这个向量在矩阵里跑,问最多能采摘多少个苹果(坐标是%n, 即超过矩阵时 (x%n, y%n))输出起点。思路:把向量所在的点集写出来会发现一个起点一定经过了n个点,即至多只有n种起点所以把点分成n个组即可。#pragma co原创 2014-12-02 14:33:22 · 1513 阅读 · 0 评论 -
Codeforces 464C Substitutes in Number 同余定理+模拟
题目链接:点击打开链接题意:给定一串数字下面有n个操作每行格式形如 d->td为一位数字,t为任意长度的数字。t的长度和不超过100000问:最后的结果%1e9+7思路:首先我们可以得到一个结论:同余定理使用后不能再修改数字。那么为了让同余定理能够使用,我们倒序处理每个数字,这样就能保证能够使用同余定理。记录每个数字实际代表的数字和实际对原创 2014-09-08 10:41:52 · 2345 阅读 · 0 评论 -
CodeForces 112D Petya and Divisors 模拟题(水
题目链接:点击打开链接论科学暴力的姿势重要性。。#include #include #include #include #include #include #include #include using namespace std;#define ll int#define N 100010#define M 100010vectorG[N], g原创 2014-09-05 15:58:13 · 1515 阅读 · 0 评论 -
SGU 231 Prime Sum 求<=n内有多少对素数(a,b)使得a+b也为素数 规律题
题目链接:点击打开链接题意:求思路:我们发现所有素数间隔都是>=2的,且除了2都是奇数,那么:奇数+奇数 = 偶数。所以只有一种情况2+素数=素数。所以打个素数表,看一下有多少个素数和前面那个素数间隔是2的。#include #include #include #include #include #include #include using na原创 2014-09-18 16:12:26 · 1476 阅读 · 0 评论 -
HDU 3579 Hello Kiki 中国剩余定理(合并方程
题意:给定方程res % 14 = 5res % 57 = 56求res中国剩余定理裸题#include#include#include#include#include#include#include#includeusing namespace std;#define N 10005#define ll __int64ll gcd(ll a, ll原创 2014-06-23 21:02:55 · 1564 阅读 · 0 评论