
数学-数论/博弈
文章平均质量分 84
Rain722
这个作者很懒,什么都没留下…
展开
-
poj1061青蛙的约会(扩展欧几里得)
Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面原创 2016-11-15 21:18:07 · 550 阅读 · 0 评论 -
HDU6069 2017 Multi-University Training Contest - Team 4 1003 Counting Divisors(唯一分解定理+思维优化)
Counting DivisorsTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 288 Accepted Submission(s): 84Problem DescriptionIn mathe原创 2017-08-03 18:35:55 · 435 阅读 · 0 评论 -
GYM100526 Interesting Integers(扩展欧几里得)
搬运大佬的题解系列:http://blog.youkuaiyun.com/u010568270/article/details/52315019题目链接: http://codeforces.com/gym/100526 http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11672&courseid=0原创 2017-10-07 18:42:50 · 423 阅读 · 0 评论 -
HDU4596Yet another end of the world(扩展欧几里得)
题意:给定一系列的虫洞,每个虫洞都有自己的x,y,z,当你的 id 对 x 取余后结果落在[ y,z ]区间内,则会被吸引,被两个或两个以上的虫洞吸引会有危险,求能否宇宙飞船能否起飞。分析:枚举每两个虫洞,有id - k1 * x1 = uid - k2 * x2 = v其中k1与k2分别为 id / x1 与 id / x2,u与v分别为求余后原创 2017-10-01 22:02:35 · 464 阅读 · 0 评论 -
codeforce C. Ray Tracing(扩展欧几里得|模拟)
Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)C. Ray Tracingtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputs原创 2016-10-11 21:26:17 · 726 阅读 · 0 评论 -
中国剩余定理及其证明
中国剩余定理(CRT)的表述如下 设正整数两两互素,则同余方程组 有整数解。并且在模下的解是唯一的,解为 其中,而为模的逆元。具体证明如下:找出所有整数x,使其被3,5和7原创 2016-11-19 16:33:55 · 13185 阅读 · 3 评论 -
UVALive 7040 Color (容斥原理 + 组合数学递推公式 + 求逆元 + 基础数论)
搬运题解系列:http://blog.youkuaiyun.com/qingshui23/article/details/51125323传送门 英文题目:Recently, Mr. Big recieved n owers from his fans. He wants to recolor those owers with m colors. The owers are put原创 2017-10-25 18:25:03 · 506 阅读 · 0 评论 -
HDU1907John(尼姆博弈-先取光者输)
大佬的讲解:http://blog.youkuaiyun.com/fsss_7/article/details/51374659链接:http://acm.hdu.edu.cn/showproblem.php?pid=1907题意:有n个装有若干糖果的盒子,有两个人轮流拿糖果,只能在一个盒子中拿,至少拿一个糖果最多可拿掉整盒。拿完最后一次的人输。分析:经典的Nim博弈的一点变形。设糖果数为原创 2017-07-16 14:30:12 · 708 阅读 · 0 评论 -
HDU1848Fibonacci again and again(SG函数入门)
首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数。例如mex{0,1,2,4}=3、mex{2,3,5}=0、mex{}=0。对于一个给定的有向无环图,定义关于图的每个顶点的Sprague-Grundy函数g如下:g(x)=mex{ g(y) | y是x的后继},这里的g(x)即sg[x]。原创 2016-12-01 20:48:44 · 391 阅读 · 0 评论 -
HDU1851A Simple Game(SG定理)
巴什博弈:只有一堆n个物品,两个人轮流从这对物品中取物,规定每次至少取一个,最多取m个,最后取光着得胜。很容易想到当n%(m+1)!=0时,先取者必胜,第一次先拿走n%(m+1)个,以后每个回合都保持两人拿走的物品总和为m+1即可。这个游戏还可以有一种变相的玩法:两个人轮流报数,每次至少报一个,最多报10个,谁能报到100者胜。题意:有n堆石头,每堆有mi个石头,每次可从其中的一堆原创 2016-12-01 20:43:25 · 366 阅读 · 0 评论 -
HDU3499Flight(双向Dijkstra)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3499题意: 有一个有向图,你要从特定的城市A飞到城市B去.给你这个图的所有边(航班)信息.但是你手上有一张卡,可以使得某一趟航班的价格减半.现在的问题是你从A到B的最小费用是多少?分析: 首先要知道这条如果让一条原本是最短路径(假设总距离为x)上最长的边变成原创 2016-12-01 13:53:29 · 703 阅读 · 0 评论 -
HDU1517A Multiplication Game
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1517先引入必胜点和必败点两个概念:必败点(P点) :前一个选手(Previous player)将取胜的位置称为必败点。必胜点(N点) :下一个选手(Next player)将取胜的位置称为必胜点。对于这两个概念的描述,我开始的时候也搞不懂。其实可以从字面理解,简单说原创 2016-12-01 13:43:01 · 559 阅读 · 0 评论 -
尼姆博弈(Nimm's Game)
题型尼姆博弈模型,大致上是这样的:有3堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取1个,多者不限,最后取光者得胜。 分析1、首先自己想一下,就会发现只要最后剩两堆物品一样多(不为零),第三堆为零,那面对这种局势的一方就必败那我们用(a,b,c)表示某种局势,首先(0,0,0)显然是必败态,无论谁面对(0,0,0) ,都必然失败;第二种必败态是转载 2016-12-01 13:36:21 · 594 阅读 · 0 评论 -
HIT2815Min Chain扩展欧几里德
题目:http://acm.hit.edu.cn/hoj/problem/view?id=2815 题意:给定两个数和,其中,只对和进行加减操作,求最少需要多少步能得到1。 分析:典型的扩展欧几里得算法,注意有些需要特判。小结:看到一篇博客说 : a*x+b*y==gcd(a,b)成立的式子的特解:x1,y1,满足:x=x1+t*b,y=原创 2017-04-29 16:14:44 · 402 阅读 · 0 评论 -
LightOJ1336 Sigma Function(约数和为奇数的个数)
题意:f(n)为n所有约数的和,给你一个数n,让你求从1到n中f(n)为偶数的数有多少个分析:数x的因子和 f(x)= (1+p1+p1^2+p1^3+...+p1^a1)*(1+p2+p2^2+...+p2^a2)*...*(1+pn+pn^2+...+pn^an);因为偶数乘偶数还是偶数,奇数乘奇数还是奇数,奇数乘偶数是偶数,所有必须让每个括号内都是奇数,然后减去约数和为奇数的个数原创 2017-03-21 11:25:18 · 1533 阅读 · 1 评论 -
乘法逆元的几种计算方法
乘法逆元是数论中重要的内容,也是 ACM 中常用到的数论算法之一。所以,如何高效的求出乘法逆元是一个值得研究的问题。这里我们只讨论当模数为素数的情况,因为如果模数不为素数,则不一定每个数都有逆元。定义在 的意义下我们把 xx 的乘法逆元写作 x ^ {-1}x−1。乘法逆元有如下的性质:乘法逆元的一大应用是模意义下的除法,除法在模意义下并原创 2016-11-15 13:21:52 · 25107 阅读 · 0 评论 -
扩展欧几里得
欧几里得算法## 介绍 欧几里得算法,又名辗转相除法,是求最大公约数的算法。两个整数的最大公约数是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。例如,252和105的最大公约数是21(252 = 21 × 12;105 = 21 × 5);因为252 − 105 = 147,所以147和105的最大公约数也是21。在这个转载 2016-11-15 13:20:16 · 721 阅读 · 0 评论 -
HDU5685Problem A(逆元)
Problem Description度熊手上有一本字典存储了大量的单词,有一次,他把所有单词组成了一个很长很长的字符串。现在麻烦来了,他忘记了原来的字符串都是什么,神奇的是他竟然记得原来那些字符串的哈希值。一个字符串的哈希值,由以下公式计算得到:H(s)=∏i≤len(s)i=1(Si−28) (mod 9973)Si代表 S[i] 字符的 ASCII 码。请原创 2016-11-14 21:52:02 · 461 阅读 · 0 评论 -
LightOJ1370Bi-shoe and Phi-shoe(欧拉函数)
欧拉函数:指的是n以内与n互质的所有数的个数题意:给出n个数,求出欧拉函数各大于这n个数的所有数的和。欧拉函性质:素数p的欧拉函数值为p-1;欧拉函数大于等于x的那个数就是x+1之后的第一个质数#include#include#include#includeusing namespace std;typedef long long ll;cons原创 2017-03-20 21:13:47 · 354 阅读 · 0 评论 -
LightOJ 1341Aladdin and the Flying Carpet(唯一分解定理)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1341It's said that Aladdin had to solve seven mysteries before getting the Magical Lamp which summons a powerful Genie. Here原创 2017-03-21 09:33:40 · 552 阅读 · 0 评论 -
LightOJ1282 Leading and Trailing(截取前n位输出)
题意:输入n^k,输出n^k的前3位与后3位.思路:最后的三位可以直接快速幂取余,但要注意不够要补前导0.求前三位则需要一些数学知识对于给定的一个数n,它可以写成10^a,其中这个a为浮点数,则n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中x,y分别是a*k的整数部分和小数部分对于t=n^k这个数,它的位数由(10^x)决定,它的位数上原创 2017-03-21 15:24:04 · 487 阅读 · 1 评论 -
LightOJ 1259 - Goldbach`s Conjecture (分解偶数为两个素数之和)
1259 - Goldbach`s Conjecture PDF (English)StatisticsForumTime Limit: 2 second(s)Memory Limit: 32 MBGoldbach's conjecture is one of the oldest unsolv原创 2017-03-21 16:11:54 · 530 阅读 · 0 评论 -
LightOJ1236 - Pairs Forming LCM (LCM·唯一分解)
题意 :给你一个数n 求满足lcm(a, b) == n, a 唯一分解定理内容:对于任意一个大于1的数都可以唯一分解为若干个素数的乘积,即n=a1^b1*a2^b2*......an^bn;容易知道 n 是由a和b的所有素因子构成的,n的中的素因子指数等于a,b中相同素因子指数较大的指数。先将n分解为素数指数积的形式 n = π(pi^ei) 那么对于每个素因子pi原创 2017-04-18 16:03:06 · 494 阅读 · 0 评论 -
LightOJ1220 Mysterious Bacteria(思维+唯一分解)
题目大意:给你一个整数n(可能为负数),让你求满足a^p=n的最大的p思路:当n是正数时,直接对n进行素因子分解,在对它的素因子的个数进行gcd,比如12=2^2*3,gcd(2,1)就是最大的p;当n是负数时,则p的值一定是奇数,因为一个数的偶数次方一定为整数,因此需要将它的素因子个数全都化为奇数。这题主要在于n为负数时的思考!#include#incl原创 2017-04-18 17:08:41 · 693 阅读 · 0 评论 -
POJ2142The Balance扩展欧几里得
题目:http://poj.org/problem?id=2142 题意:有两种类型的砝码质量分别为和,要求称出质量为的物品,要求的数量和的数量的和 最小,如果有多个最小值,取最小的。 分析:扩展欧几里得求出特解后,把转化为最小正值,即,,若 求出的为负值,则把变正,意思就是砝码放置的位置有左右之分,可以左面的减去右面的,也可以右面原创 2017-04-29 16:05:52 · 375 阅读 · 0 评论 -
BZOJ2186]沙拉公主的困惑(求1-N!中与M!互质的数的个数)
以下是来自AcDreamer的分析:题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2186 题意:求中与互质的数的个数,其中。 分析:因为,所以,我们很容易知道如下结论 对于两个正整数和,如果是的倍数,那么中与互素的数的个数为 本结论是很好证明的,因原创 2017-04-30 16:02:09 · 1260 阅读 · 1 评论 -
POJ1845Sumdiv(逆元or等比数列求和)
附上Acdreamer的讲解:http://blog.youkuaiyun.com/acdreamers/article/details/8220787题目:http://poj.org/problem?id=1845 题意:给定两个正整数和,求的所有因子和对9901取余后的值。 分析:很容易知道,先把分解得到,那么得到,那么 的所有因子和的表达式如原创 2017-05-02 14:52:32 · 846 阅读 · 0 评论 -
LightOJ1214Large Division (大数求余)
题意:问b是否能整除a思路:大数求余,利用同余。#include#includetypedef long long ll;char str[205];int main(){ int T, b; scanf("%d", &T); for(int kase = 1; kase <= T; kase++) { ll原创 2017-04-20 10:17:24 · 466 阅读 · 0 评论 -
巴什博奕初步HDU2149Public Sale
巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k原创 2016-10-21 21:08:34 · 358 阅读 · 0 评论