-----------数学-----------
文章平均质量分 75
ObsdianGungnir
非常弱的OIer
展开
-
bzoj3240 [NOI2013]矩阵游戏 数学递推
题目链接:戳这里 3240: [Noi2013]矩阵游戏 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 1855 Solved: 847 [Submit][Status][Discuss] Description 婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的n行m列的矩阵(你不用担心她如何存储)。她生成的这个原创 2018-01-31 10:59:52 · 181 阅读 · 0 评论 -
codeforces938E Max History 组合数学
题目链接:戳这里题目大意:我们定义f(a)为:1、开始时,f(a)=0,M=1。2、对于每个2<=i<=n,如果a[M]<a[i],那么f(a)=f(a)+a[M],M=i。现在对于一个给定的数组a,求其所有排列的f(a)之和,答案对1e9+7取模。题解:一开始以为是把f(a)变成a[M],然后不会做。后来发现是题看错了QAQ。既然是加上,那么我们可以分开统计每个数的贡献。如果一...原创 2018-02-22 11:11:29 · 376 阅读 · 0 评论 -
codeforces888D Almost Identity Permutations 排列组合
题目链接:戳这里 题目大意:给出1个数n,求1~n的排列中满足最多有 k 个元素不满足 ai = i 的数列有几个。 题解:考虑到k只有4,所以可以直接分类讨论,这个很好手推... 代码:#include using namespace std; typedef long long LL; LL read() { char c;LL sum=0,f=1;c=getchar();原创 2018-02-27 09:28:18 · 246 阅读 · 0 评论 -
codeforces900D Unusual Sequences 容斥原理
题目链接:戳这里 题目大意:输入x,y,求有多少个数列满足其gcd为x,和为y。 题解:显然我们可以将y/x,这样就变成了求gcd为1,和为y/x的数列个数。 如果不考虑重复,那么显然有2^(y-1)种方法,但这种情况里是存在不合法情况的,比如6分成{2,2,2},其gcd为2而不是1。 所以我们考虑容斥原理,通过枚举gcd为2*gcd,3*gcd……的方式来去掉不合法情况即可。 代码:原创 2018-02-27 09:35:52 · 235 阅读 · 0 评论 -
codeforces852F Product transformation 排列组合
题目链接:戳这里 题目大意:有一个长度为n的数组A,开始时,A内的元素全为a。 现在进行m次操作,每次操作将A[i]变为A[i]*A[i+1],最后一个元素不变。 现给出n,m,a,Q,输出m次操作后的A数组,每个元素对Q取模。 题解:因为每个数刚开始都是一样的,那么我们可以把乘法考虑为指数的相加。 用S代表指数,那么Si=Si+S(i+1)。 设S[i][j]表示第i个数经过原创 2018-02-27 10:32:34 · 350 阅读 · 0 评论 -
codeforces893E Counting Arrays 排列组合
题目链接:戳这里 题目大意:给出x和y,求一个长度为y的序列,其乘积为x,允许有负数,求这种序列的个数,对1e9+7取模。 题解:经典的排列组合问题。 先对x进行质因数分解,那么答案就是C(t+y-1,t)之和,t为每个质因数的指数。 再考虑负数,无非就是只会出现偶数个负数,答案再乘上2^(y-1)即可。 代码:#include #define mod 1000000007 using原创 2018-02-27 10:40:19 · 262 阅读 · 0 评论