|--数学
文章平均质量分 75
Danliwoo
这个作者很懒,什么都没留下…
展开
-
数论在ACM中的应用
整除与剩余整除在自然数范围内的引入是十分自然的,即要把一个整体平均分为若干份。若要求分得的结果必须是整数,则可能存在多余的情况,即余数。 若a能整除b,可记作:a∣b,否则a∤b若a能整除b,可记作:a\mid b,否则a\nmid b整数是对自然数的扩充,引入了负数的概念。负的余数是一个数学概念,在实际情形中说剩余的东西是负数,往往是可笑的。因为那意味着并没有剩余。利用同余,可以给出这类情况原创 2015-09-30 13:55:50 · 5706 阅读 · 9 评论 -
求逆元的几种办法
补了一道CF题,顺便看到有人求逆元的方法叼叼的,怪不得人家过题这么快啊…… 来总结一发……一般求法求a关于N的逆元,即要解同余方程ax≡1(modN)ax\equiv 1(\mod N)的解x. ax≡1(modN)⇔ax+Ny=1ax\equiv 1(\mod N)\Leftrightarrow ax+Ny=1 仅当a与N互质时,存在aa的逆元,利用扩展欧几里得求解。 这里N不一定是素数L原创 2016-07-24 20:14:36 · 1642 阅读 · 0 评论 -
欧拉函数的证明以及应用(附POJ例题)
定义ϕ(x):1到x中与x互质的数的个数。\phi(x):1到x中与x互质的数的个数。 欧拉函数公式:若x可以被分解素数分解为x=ap11ap22...apkkx=a_1^{p_1}a_2^{p_2}...a_k^{p_k}则ϕ(x)=x(1−1a1)(1−1a2)...(1−1ak)\phi(x)=x(1-{1\over a_1})(1-{1\over a_2})...(1-{1\over a原创 2015-10-01 23:58:44 · 3764 阅读 · 0 评论 -
莫比乌斯教我变魔术
莫比乌斯反演详细的不赘述了,都在这里 若f(n)f(n)是积性函数,则如下F(x)F(x)也是积性函数F(x)=∑d∣xf(d)F(x)=\sum_{d\mid x}f(d)则莫比乌斯反演公式为:f(x)=∑d∣xμ(d)F(xd)=∑d∣xμ(xd)F(d)f(x)=\sum_{d\mid x}\mu(d)F({x\over d})=\sum_{d\mid x}\mu({x\over d})F(原创 2016-07-11 16:00:43 · 2290 阅读 · 0 评论 -
HDU 5710 Digit-Sum 数学杂题
原题见HDU 5710题意:定义S(N)S(N)是NN的数位之和,给出一对a,b(0<a,b<101)a,b(0<a,b<101),求是否存在nn满足a×S(n)=b×S(2n)a\times S(n)=b\times S(2n)分析:S(n)与S(2n)S(n)与S(2n)的关系如何?对于n中的任何一个数位x,若x为0-4,则因为没有进位,所以在S(2n)中贡献为2x;若x为5-9,则由于其超过1原创 2016-07-05 17:12:43 · 1858 阅读 · 4 评论 -
HDU 5768 Lucky7 数论 中国剩余定理
原题见HDU 5768求[l,r]范围内是7的倍数,同时不满足任意一个给定的同余式的数的个数。如范围为[1,100],不满足模3余2或模5余3的7的倍数有7,21,42,49,70,84,91 ,故答案为7. 其中除数都为非7的素数(≤105)(\le 10^5),除数的乘积小于101810^{18}.同余式最多有15个。分析所有[l,r]范围内7的倍数减去满足任意一个同余式的数,即得到了答案。而原创 2016-07-28 19:03:33 · 2562 阅读 · 3 评论 -
莫比乌斯函数的证明
遗忘是可怕的东西……好记性不如烂笔头讲真……命题现在假设我不知道什么是莫比乌斯函数,只知道F(x)=∑d∣xf(d)F(x)=\sum_{d\mid x}f(d)若已知F(x)F(x),求f(x)f(x)的表达式。性质从已知的关系,可以得到性质: 1. 若y|x(y<x)y|x(y<x),则F(y)F(y)包含的所有f(d)f(d)都被F(x)F(x)包含了,F(y)F(y)不能包含f(x)f(x原创 2016-07-09 15:20:44 · 4083 阅读 · 2 评论 -
HDU 5833 Zhu and 772002 高斯消元
原题见HDU 5833在nn个数中选择几个数aia_i相乘得到平方数,问有多少种取法。最大的素因子不超过2000,最后答案mod 1000000007。 (1≤n≤300,1≤ai≤1018)(1 \leq n \leq 300, 1 \leq a_i \leq 10^{18})分析所有数的因子不超过2000,则可以打表得到所有可能的因子共pn个。并得到每个因子属于第几个。 对每个数整数分解,原创 2016-08-15 20:57:13 · 853 阅读 · 0 评论 -
线性代数
矩阵类重载运算符,使得矩阵的运算可视化更佳。#define M 10struct Matrix{ int n, m; int a[M][M]; Matrix(){} Matrix(int p[M][M], int x, int y) { memcpy(a, p, sizeof(a)); n = x, m = y; }原创 2016-08-19 16:15:52 · 807 阅读 · 0 评论 -
Codeforces 724C Ray Tracing 扩展欧几里得
标签: 解题报告 数学原题见CF 724Cn*m的矩形内有k个点,四周有围墙围起来。从(0,0)45度发射小球,速度为2√\sqrt 2每次遇到墙都正常反弹,直到射到顶点被吸收。问每个点第一次被经过的时刻。分析把矩形对称展开,最后小球在横纵坐标均为maxx=mn/gcd(m,n)maxx=mn/gcd(m,n)处被吸收。 原坐标为(x,y)(x, y)的小球经过轴对称展开,其坐标为(2kn±x,2原创 2016-10-08 23:50:57 · 2701 阅读 · 0 评论 -
HDU 5954 Do not pour out 积分 二分 — 2016ACM-ICPC亚洲区沈阳站
标签: 解题报告 数学原题见HDU 5954高为2,底面圆直径为2的开口杯,平放时里面装有高为d的水。问倾斜到不能再倾斜时(水不能溢出),水的表面积为多少?分析水面有两种可能的形状:椭圆或椭圆的一部分。其临界状况为: 此时椭圆经过杯底与杯口,得到被子恰好倾斜45°,空杯体积和水体积对称相等,故d=1d=1。d>1d>1时为椭圆。(杯子倾斜画得累了,直接让水倾斜吧) 如图水面与杯底倾角原创 2016-11-01 23:51:46 · 4508 阅读 · 4 评论 -
HDU 5728 PowMod 欧拉函数 递归
感觉智商被掏空…原题见HDU 5728定义k=∑mi=1φ(i·n) mod 1000000007k=\sum_{i=1}^{m} \varphi (i·n)\ mod\ 1000000007 nn是无质因子平方项的数. 求ans=kkkk...k( mod p)ans=k^{k^{k^{k^{...^k}}}}(\ mod \ p),其中k有无穷多个 数据范围:1≤n,m,p≤1071 \l原创 2016-07-22 22:24:05 · 6248 阅读 · 0 评论 -
莫比乌斯反演
特别感谢:吉大附中实验学校PoPoQQQ童鞋制作的ppt\color{green}{特别感谢:吉大附中实验学校 PoPoQQQ 童鞋 制作的ppt}定义反演已知函数F(x)是可以通过f(x)变换而来的,现在求f(x)通过F(x)的变换。 这样的逆变换称之为反演\color{blue}{反演}。 举个栗子,F(x)=f(x)2F(x)=f(x)^2,则f(x)=±F(x)−−−−√f(x)=\pm原创 2015-10-05 22:34:14 · 1548 阅读 · 0 评论 -
HDU 5528 Count a - b 欧拉函数 素数
原题见HDU 5528题意:f(m)f(m)表示abmodm≠0ab\mod m\neq 0的(a,b)(a,b)的个数,a,ba,b为小于m的非负整数。 G(n)=∑m|nf(m)G(n)=\sum\limits_{m|n}f(m) 给出n(1≤n≤109)n(1 \le n \le 10^9),求G(n)mod264G(n)\mod 2^{64}.分析mod264\mod 2^{64}最后结原创 2016-07-10 14:12:49 · 1216 阅读 · 0 评论 -
POJ 3696 The Luckiest number 欧拉函数 或 BSGS
原题见POJ 3696给一个数L,问至少几个8(如88,8888,88888)可以整数L。若不能,就输出-1.首先把连续的x个8表示成8+8⋅10+8⋅102+...+8⋅10x−1=8(10x−1)10−18+8·10+8·10^2+...+8·10^{x-1}={8(10^x-1)\over 10-1} 若能整除L,则存在y,使得8(10x−1)9=Ly{8(10^x-1)\over 9}=L原创 2015-10-02 23:05:14 · 943 阅读 · 2 评论 -
HDU 5531 Rebuild ——— 2015ACM-ICPC亚洲区长春站
原题见HDU 5531依次输入n个点的坐标,分别为圆心。保证相邻圆心的距离是个正整数。第n个圆和第1个圆相邻。要求相邻两个圆要相切,求全部圆面积和的最小值,以及此时半径的取法。 先根据坐标求出相邻圆心距离依次为a0,a1,...,an−1a_{0},a_{1},...,a_{n-1} 设圆半径分别为x0,x1,...,xn−1x_{0},x_{1},...,x_{n-1} 化为方程,即:⎧⎩⎨原创 2015-11-01 23:09:43 · 2140 阅读 · 0 评论 -
POJ 1845 Sumdiv 逆元 费马小定理 Trick
原题见POJ 1845给A,B,求ABA^B的所有因子的和模9901。首先把A分解成素数的幂的形式AB=ps1B1ps2B2...pskBkA^B=p_1^{s_1B}p_2^{s_2B}...p_k^{s_kB}再求和sum=ps1B1−1p1−1ps2B2−1p2−1...pskBk−1pk−1sum={p_1^{s_1B}-1\over p_1-1}{p_2^{s_2B}-1\over p_2原创 2015-10-03 13:01:12 · 947 阅读 · 0 评论 -
ZOJ 3913 Bob wants to pour water —— ZOJ Monthly, October 2015
原题见ZOJ 3913在一个无限高的长方体容器里面倒一定的水,问水面有多高。其中,容器里会有一些小长方体和球体。 给定了长方体的长、宽,障碍物体的个数、位置、大小。所以很快想到,能不能求出给定高度能够倒入水的体积,二分高度逼近答案。已知旋转体的体积公式: V=π∫f(x)2dxV=\pi \int f(x)^2dx对于绕x轴的连续函数f(x)x轴的连续函数f(x)有效。因此写出圆方程(x−r)2原创 2015-10-11 23:40:07 · 744 阅读 · 0 评论 -
分形之美
焉识何物前几天手贱点开了一道题 POJ 2083想着简单的递归就可以吧。只是一开始的方法非常蠢!把一个子图用string存下来,然后构造下一个等级的图。将3*3的子图拼成一个大图,我是一行一行扫进来的……于是如下:#include <cstdio>#include <iostream>#include <cstring>#include <queue>#include <algorithm>原创 2016-05-23 12:34:43 · 1214 阅读 · 0 评论 -
线性筛
线性筛用在素数、欧拉函数、莫比乌斯函数的打表上。埃拉托斯特尼筛法一开始最容易理解的筛法是酱紫滴~#define N 1000100#define LL long longint num[N], prim[N];int pn = 0;void table(){ memset(num, -1, sizeof(num)); for(int i = 2;i < N;i++) if(n原创 2016-07-10 15:33:00 · 1775 阅读 · 1 评论 -
POJ 3904 Sky Code 莫比乌斯反演 容斥原理
原题见POJ 3904给n个数,求其中四个数的gcd是1的情况有多少种。从反面考虑,算出gcd不是1的情况,总数取反即是结果。这是容斥原理的思想。当时在做POJ 1091的时候即是这样的想法。画一个vene图,每个集合表示最大公约数为k的情况数。 当k含有素数因子的平方项,如4,12,其实已经被2的情况数覆盖,不必再进行任何处理。只需考虑k是素数的一次方的乘积的情况。当素数个数为奇数个,如2,原创 2015-10-06 18:20:42 · 2225 阅读 · 0 评论 -
爱奇艺2018秋季校招算法工程师(第二场)编程题题解
第一题题意一堆石子共N颗,两人(niu和yang)轮流取石子,规则是每次取4i(i为非负整数)4^i(i为非负整数)颗,直到轮到的人不能取则为输。两个人都是聪明人。给出N,求赢家名字。思路明显是博弈题,SG函数解决,先打表找规律。b[i] 用来实现mex函数的辅助数组 sg[i] i的sg值 dp[i] 4i4^ifor(int x = 1;x < 1000;x++) { memset(原创 2017-10-14 22:12:54 · 1716 阅读 · 0 评论