数论/推导
morejarphone
这个作者很懒,什么都没留下…
展开
-
UVAlive 4119 (数学)
白书123页的例题,如果不看书上的证明自己写真是写不出来,好厉害~#include using namespace std;#define maxn 111char P[111111];int xishu[maxn]; //每一个指数下的系数long long mod;void deal () { int l = strlen (P); memset (xish原创 2015-11-18 23:39:49 · 476 阅读 · 0 评论 -
UVA 10780 (唯一分解)
题意:求最大的正整数k使得m^k|n!.把k分解,然后1~n每一个都分解,判断一下k分解后的的每部分都最多能够取多少次就行了.#include #include #include #include #include #include #include #include #include using namespace std;#define maxn 11111原创 2016-06-07 16:19:57 · 398 阅读 · 0 评论 -
UVALive 2889 (数学)
题意:求第n大的回文数字.截取对称中心前面的那一段数字,从大到小依次就是1,2,3......11,12,13......,100,101而以某个数字为对称中心前一段的数字共有两种,比如13就有131和1331.所以判断一下是哪一种就好了.#include #include #include #include #include #include #include #i原创 2016-06-07 22:26:04 · 503 阅读 · 0 评论 -
HDU 4919 (数学推导)
题目链接:点击这里1.当n=2k+1n=2k+1:f(n)=∑i=1n−1i⊗(n−i)=2∑i=1k2i⊗(n−2i)=2∑i=1k2i⊗(2k−2i+1)=4∑i=1ki⊗(k−i)+2k=4f(k)+6k\begin{align} f(n)&=\sum_{i=1}^{n-1}i\otimes(n-i)\\&=2\sum_{i=1}^{k}2i\otimes (n-2i)\\&=2\s原创 2016-07-11 23:11:18 · 710 阅读 · 0 评论 -
HDU 5778 (数学)
题目链接:点击这里题意: 给定x, 求最接近x的数p使得p分解后每一个质数出现两次.每个质数出现两次说明是一个完全平方数, 所以要求一个最接近x√\sqrt x的数使得这个数分解后每个质数出现一次. 显然质数本身就是一种可行解. 而两个质数之间又不会差的太远. 所以直接暴力枚举就好了.#include <iostream>#include <cstdio>#include <cstring>#原创 2016-07-31 10:18:24 · 358 阅读 · 0 评论 -
HDU 5446 (中国剩余定理 Lucas)
题目链接:点击这里题意:求Cmn%M,(M=m1∗…mp且mi都是质数)C_n^m\% M,(M=m_1*\dots m_p且m_i都是质数)。用Lucas定理求出Cmn%mi=aiC_n^m\% m_i=a_i,然后用中国剩余定理求此方程组。#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#incl原创 2016-08-17 22:34:20 · 546 阅读 · 0 评论 -
codeforces 546D (数学 水)
题目链接:点击这里题意:给出一个数字,每次用他除以一个因子。问最多可以除几次。一个数字要能够除最多的数显然每次都除以一个素因子。所以直接一边线性筛找出每一个数的最小质因子,然后像DP一遍统计每素因子数的前缀和就行了。#include <bits/stdc++.h>using namespace std;#define maxn 5000005bool vis[maxn];int prime[m原创 2016-10-21 11:58:28 · 324 阅读 · 0 评论 -
codeforces 733E (数学)
题目链接:点击这里题意:n个台阶,每个台阶上有上或者下,每经过一次都会改变方向。求从每个台阶出发,从最下方或者最上方走出去的步数对于每一个开始的台阶,只有他下方的U和他上方的D会影响最后的步数。如果要从下方出去就需要把下面都变成D,同样的,要从上面出去就要把上面都变成U。观察一下发现交换初始台阶上下方的D和U的步数花费就是两者距离的一半,最后加上开始台阶从下方或者上方走出的步数。 trick:结果原创 2016-11-03 21:24:42 · 559 阅读 · 0 评论 -
codeforces 730E (数学)
题目链接:点击这里题意:给出一个封榜时的榜单,按照封榜时的分数排序,每个队伍在封榜后分数会改变,名次也会对应的变化t名。现在要求一个揭晓的顺序最大化∑t\sum t。对于两个队伍i,j,考虑揭晓他们的相对顺序。如果这两个队在揭晓前和揭晓后相对排名不同,那么说明无论先揭晓哪个队伍,最后对答案的贡献总是1(画个图很容易看出来)。如果两个队揭晓前后相对排名不变,就分两种情况考虑: 1. 无论先后揭晓顺原创 2016-10-25 20:09:46 · 628 阅读 · 0 评论 -
HDU 5970 (循环节)
题目链接:点击这里打个表可以发现对于给定的j,f(i,j)的循环节长度为j。有了这个性质以后可以处理不向下取整的。题目需要向下取整,谕示考虑f(i,j)的含义,它表示辗转相除次数c和gcd(i,j)的平方的乘积。因为(i+kj, j)和(i,j)的辗转次数相等,所以考虑延长循环节,把cj看成是循环节,这样的话就只需要求出循环节内部分,并且重复循环节就行了。在两个循环节之间是等差数列,瞎搞搞就出来了。原创 2016-11-06 18:36:54 · 1004 阅读 · 0 评论 -
HDU 3292 (佩尔方程 矩阵快速幂)
题目链接:点击这里题意:求解佩尔方程x2−ny2=1x^2-ny^2=1的第k大解。首先暴力求出佩尔方程的最小特解,然后根据迭代式子 [xkyk]=[x1y1d×y1x1]k−1[x1y1]\begin{bmatrix} x_k \\y_k\\\end{bmatrix} =\begin{bmatrix}x_1 & d\times y_1\\y_1 & x_1 \\\end{bmatri原创 2016-10-27 14:55:32 · 352 阅读 · 0 评论 -
codeforces 731F (暴力)
题目链接:点击这里题意:给出n个数字,可以选中一个数字,然后把其他的数都减成这个数字的倍数。求所有数字的和最大值。假设选中数字a,容易发现在区间[a∗k,a∗(k+1)−1][a*k,a*(k+1)-1]中的数字对答案的贡献是一样的。所以只需要维护一个统计数字的前缀和,每次暴力枚举选中的数字(注意不要重复枚举),然后暴力按照按照相同的区间网上跳即可。因为每次跳的步长等于a,容易证明复杂度是Max1+原创 2016-10-18 20:37:19 · 334 阅读 · 0 评论 -
UVA 11388 (唯一分解 水~)
题意:求使得lcm(A,B)=C的最小的B.如果把A分解成A=p1^a1 * p2^a1 * p3^a3 *...*pn^an, C = q1^b1 * q2^b2 *...*qm^bm,然后就只需要考虑C的每一个因子是能不能全部由A提供就好了.#include #include #include #include #include #include #include原创 2016-06-07 15:30:32 · 389 阅读 · 0 评论 -
HDU 5363 (数学 水~)
杭州),亚信科技,壹晨仟阳(杭州) Key SetTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1624 Accepted Submission(s): 866Problem De原创 2016-05-31 15:57:06 · 371 阅读 · 0 评论 -
HDU 5686 (斐波那契数列 高精度)
Problem BTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 222 Accepted Submission(s): 54Problem Description 度熊面前有一个全是由1构成的字符串原创 2016-05-17 17:58:37 · 1617 阅读 · 0 评论 -
codeforces 603B (数学)
B. Moodular Arithmetictime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputAs behooves any intelligent schoolboy原创 2015-12-02 15:19:23 · 709 阅读 · 0 评论 -
Gym 100499I (数学 模拟)
I. Fractiontime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputA repeating decimal, also called a recurring dec原创 2015-12-03 22:49:13 · 404 阅读 · 0 评论 -
UVALive 6835 (简单推导)
题意是一个球,在重力加速度为1的环境下,无能量损失,从起点弹到重点.中间有n张网,告诉你每张网和起点的距离和高度,限制碰撞的最大次数,求出最小的出射速度.题面给了一大堆公式然而并没有什么卵用,直接根据输入说明YY题意.首先需要发现对于给定长度从一端到另一端需要的最小的速度是出射方向为45度的速度,高中物理就能推出来~然后只需要写两个函数,第一个用来解决弹i次的最小速度,第二个用来解决经过(原创 2015-12-07 16:27:54 · 663 阅读 · 0 评论 -
Codeforces 639C (数学)
C. Bear and Polynomialstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputLimak is a little polar bear. He do原创 2016-03-29 14:53:59 · 503 阅读 · 0 评论 -
gym 100935E (数学推导 水~)
E. Pairstime limit per test2 secondsmemory limit per test64 megabytesinputstandard inputoutputstandard outputIn the secret book of ACM, it’s said: “Glory for th原创 2016-03-25 11:47:53 · 382 阅读 · 0 评论 -
HDU 4565 (数学推导 矩阵快速幂)
So Easy!Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3517 Accepted Submission(s): 1136Problem Description A sequence Sn i原创 2016-04-07 20:35:44 · 394 阅读 · 0 评论 -
HDU 4569 (推导)
题意:求一个方程模m^2为0是否有解。因为m是素数,所以方程模m^2为0必然需要方程模m为0,而所有的x(x>=m)模m为0,必然有(x-m)模m为0.所以就可以寻找[0,m-1]中f(x)模m为0的x,然后判断x+m,x+2m....是不是满足。#include #include #include #include #include #include #include原创 2016-04-07 23:04:02 · 444 阅读 · 0 评论 -
Codeforces 622F (拉格朗日插值 费马小定理)
做这个题之前需要知道一些知识:拉格朗日插值:n-1次多项式可以用n个点唯一确定,插值公式是:费马小定理:a^(p-1)≡1(如果p是素数),也就是说模p时a和a^(p-2)互为逆元关于模:原创 2016-03-26 18:09:56 · 2021 阅读 · 0 评论 -
HDU 4586 (数学)
Play the DiceTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 2213 Accepted Submission(s): 729Special JudgeProblem Description原创 2016-04-12 20:51:15 · 314 阅读 · 0 评论 -
HDU 5698 (数学 lucas)
瞬间移动Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 489 Accepted Submission(s): 274Problem Description有一个无限大的矩形,初始时你在左上角(即第一行原创 2016-05-24 21:26:00 · 369 阅读 · 0 评论 -
HDU 5685 (前缀+逆元 水~)
Problem ATime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 300 Accepted Submission(s): 83Problem Description度熊手上有一本字典存储了大量的单词,有原创 2016-05-17 17:55:56 · 843 阅读 · 0 评论 -
codeforces 734F (数学)
题目链接:点击这里题意:给出两个数组b,c,构造a数组满足条件.首先需要知道一个推论:a AND b+a OR b=a+ba\ AND\ b+a\ OR \ b=a+b,这个按位比较很显然是相等的. 然后把原式的bib_i和cic_i加起来就得到了: ⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪b.1+c1=na1+∑ab2+c2=na2+∑a⋮bn+cn=nan+∑a\begin{equation}原创 2016-11-17 09:42:47 · 617 阅读 · 0 评论