![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ACM-数学
文章平均质量分 84
基础数论、博弈
nefu-ljw
这个作者很懒,什么都没留下…
展开
-
CCF-CSP 202104-4 校门外的树【dp+因子数集合】
题目链接http://118.190.20.162/view.page?gpid=T125思路对于n=2的情况,假设障碍物位置分别是a[i]和a[j](i>j),即两个障碍物相邻,中间没有障碍物阻挡,区间长度为a[i]-a[j],容易想到ans=f(a[i]−a[j])ans=f(a[i]-a[j])ans=f(a[i]−a[j]),其中f(x)f(x)f(x)函数表示求xxx的因子个数(注意,此处的因子包括1,但不包括xxx自身)。对于n>2,考虑O(n2)O(n^2)O(n2)复杂度原创 2022-03-18 12:15:14 · 774 阅读 · 2 评论 -
“科林明伦杯”哈尔滨理工大学第十届程序设计竞赛 D题 扔硬币【组合数+逆元】
D题 扔硬币用概率公式计算可算出在有解的情况下:ans=C(n,k)C(n,m)+C(n,m+1)+...+C(n,n)%modans = { \frac{C(n,k) }{C(n,m)+C(n,m+1)+...+C(n,n)} \%mod} ans=C(n,m)+C(n,m+1)+...+C(n,n)C(n,k)%mod然后求组合数取模,由于除法不能直接取模,需要求逆元,根据费马小定理,mod是质数,x对mod的乘法逆元就是x的mod-2次幂。至于求组合数,用公式 C(n,m)=n!m!∗(n−m原创 2020-05-31 19:34:41 · 684 阅读 · 0 评论 -
2019 ICPC南京站 B题 Chessboard【组合数,乘法逆元】
神仙思维题。原本的暴力想法是,把n*m矩形当中选一个起点进行扩展判断是否合法(用这想法打表代码都难写);题解思路是,从一个1*1的矩阵扩展行和列变成n*m的矩形,计算组合数。本题要找到一个很巧妙的特点:如果当前被染色的区域是个矩形,那么最后一个被染色的点,一定在角上。最开始是1*1的矩形,也可以认为它是一个角,每次把它进行扩展一层,则行数+1 或者 列数+1,直到变成n*m的矩形。行扩充n-1次,列扩充m-1次,总共扩充n+m-2次,扩充方案显然为C(m+n−2,n−1)C(m+n-2,n-1)C(原创 2021-05-08 22:15:19 · 677 阅读 · 0 评论 -
2019年第十届蓝桥杯决赛(国赛) C++大学A组 D题 序列求和【全网找不到的题解?】
题面试题 D: 序列求和本题总分:10 分【问题描述】学习了约数后,小明对于约数很好奇,他发现,给定一个正整数 t,总是可以找到含有 t 个约数的整数。小明对于含有 t 个约数的最小数非常感兴趣,并把它定义为StS_tSt。例如 S1=1S_1 = 1S1=1, S2=2S_2 = 2S2=2, S3=4S_3 = 4S3=4, S4=6S_4 = 6S4=6,· · · 。现在小明想知道,前 60 个 SiS_iSi 的和是多少?即 S1S_1S1 + S2S_2S2 + ·原创 2020-11-12 20:23:31 · 1647 阅读 · 6 评论 -
2020牛客暑期多校训练营(第五场) E题 Bogo Sort【置换群+高精度】
题目链接:https://ac.nowcoder.com/acm/contest/5670/E题意已知一个长度为n的序列p,用序列p将排列a(未知)进行置换,要求找到排列使其被p置换若干次之后能够有序,求满足条件的排列有多少种。思路举个例子,p为3 2 1,a为3 2 1,那么a被p置换一次后为1 2 3,再被置换一次为3 2 1,又变为了原数组,即1 3构成一个环,2自身构成一个环。本题实际上就是要求出每个环的长度,然后求所有环的长度的LCM原创 2020-07-26 11:05:22 · 278 阅读 · 0 评论 -
2020牛客暑期多校训练营(第四场) H题 Harder Gcd Problem【素因子+贪心】
题目链接:https://ac.nowcoder.com/acm/contest/5669/H题意给你一个大小为n的序列{1,2,…,n},要求每次从序列中取出两个不互质的数构成一对,并且每个数只能被取一次。现在要求最多能取多少对,并输出取数方案(可能不唯一)。思路n以具体的数字为例,方便找到规律,理顺思路。比如,现在n=26,最小素因子是2,为了避免重复,我们先得到小于等于n/2的素数:2,3,5,7,13。求这些素数的倍数(小于等于n),列出表格方便观察,如下:pp*2p*原创 2020-07-20 22:04:58 · 1003 阅读 · 0 评论 -
exgcd模板
问题:形如ax+by=c(a,b均不为0)的方程,a,b,c都是整数,求(x,y)整数解。判断是否有解整数二元一次方程有解的充要条件是gcd(a,b)|c。如果不能整除则无解。hdu2669exgcd模板#include <bits/stdc++.h>using namespace std;typedef long long ll;ll exgcd(ll a,ll b,...原创 2020-03-02 22:05:49 · 268 阅读 · 0 评论 -
基础数论
hdu 1215 七夕节求一个数的因子和。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=5e5+10;ll t,x;ll sum(ll x)//求x的因子和{ ll s,ans=1; for(int i=2;i*i<=x;i++)//x的素因...原创 2020-03-02 21:54:56 · 295 阅读 · 0 评论 -
博弈论与SG函数
hdu 1850 Being a Good Boy in Spring Festival求尼姆博弈先手必胜的方法数。只要选择的一堆石子数大于其他所有石子堆异或值,则先手必胜,因为可以把选择的那堆石子数减少到与其他所有石子堆异或值相等,从而使所有石子堆异或值为0,使后手开始选择时面临的是必败状态。#include <bits/stdc++.h>using namespace st...原创 2020-03-02 21:53:53 · 314 阅读 · 0 评论 -
2020牛客寒假算法基础集训营1 J题 u's的影响力【矩阵快速幂+欧拉降幂】(全网最详细题解,完整思路)
题目传送门:https://ac.nowcoder.com/acm/contest/3002/J牛客“基础”算法训练营出的题很有意思啊,非常适合我这种萌新学习(真的十分“基础”,我差点就信了)。今天终于把这题给补了,这相当于是一个模板套模板的题,下面说说我的思路。完整思路:首先写出前几项的表达式,找一下规律。f(1)=xf(1)=xf(1)=xf(2)=yf(2)=yf(2)=yf...原创 2020-02-24 14:07:17 · 1544 阅读 · 4 评论 -
基础博弈论【巴什博弈、威佐夫博弈、尼姆博弈、反尼姆博弈】
尼姆博弈:有n堆各若干个石子,两个人轮流从某一堆取任意多的石子,规定每次至少取一个,多者不限,取光最后的石子的人赢(或者说轮到某人时无石可拿的人输)做法:将所有堆的石子异或起来,如果等于则0先手必输,不等于0则先手必胜。 poj 2234 Matches Game尼姆博弈模板题#include &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;原创 2019-03-09 18:37:10 · 1099 阅读 · 0 评论 -
POJ 1845 Sumdiv【唯一分解定理+快速幂+分治法(不用逆元)】
题目传送门: POJ 1845 Sumdiv思路题意很简单,求x的y次方这个数的因子和对9901取模的值。首先我们知道,要求一个数的因子和,先要把它分解质因数,得到它的所有素因子(唯一分解定理如下)假设 x 素因子分解后是p1c1+p2c2+…+pncn则 xy 素因子分解后是p1c1*y+p2c2*y+…+pncn*y=(1+p11+…+p1c1*y)*…*(1+pn1+…+pncn...原创 2020-01-03 00:27:15 · 1593 阅读 · 4 评论 -
矩阵快速幂 练习题(2019.7.16训练)
HIT 2060 - Fibonacci Problem Again#include <bits/stdc++.h>using namespace std;const int N=3,mod=1e9;typedef long long ll;ll a,b,ans1,ans2;struct node{ ll m[N][N];};node s1,s2,A={1,1...原创 2019-07-19 14:33:10 · 530 阅读 · 3 评论 -
Fibonacci拓展题:求前四位【数学】&&后四位【矩阵快速幂】&&大数【高精度】(2019.7.14训练)
hdu 1568 Fibonacci求Fibonacci数前四个数,推导数学公式即可。(类似的题目hdu 1060 Leftmost Digit)先用科学计数法来表示 f(n),Fibonacci数的通项公式为f(n)=(1/√5)∗[((1+√5)/2)n−((1−√5)/2)n]设ans为最左边的四个数字,设f(n)=s则 s = ans.xxx * 10len-4 ,其中len表示s...原创 2019-07-19 14:31:47 · 230 阅读 · 0 评论 -
博弈(2019.3.9训练)【更新完成】
本次训练共6题,本文附AC代码和题目链接。A题 Brave GameBrave GameProblem:ATime Limit:1000msMemory Limit:65535KDescription十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫《勇敢者的游戏》(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象深刻。今天,大家选...原创 2019-03-09 16:30:21 · 461 阅读 · 0 评论 -
exgcd解线性同余方程&&逆元(2019.3.2训练)
本次训练共5题,本文附AC代码和题目描述(题目难度与题序无关)先给出求a对p的逆元inv(a,p)的2个模板,线性求逆元,时间复杂度均为O(n)。模板1:递归求逆元使用注意:数据必须保证逆元存在,否则无限递归Runtime Error如果a、p互质,则a对p的逆元存在,若判断出gcd(a,p)=1即可使用该模板long long inv(long long a,long long p)...原创 2019-03-03 09:34:27 · 791 阅读 · 2 评论