自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Twin Automata的博客

这里只是一个蒟蒻的孤芳自赏,如果能帮到你,那真是太好了。

  • 博客(10)
  • 收藏
  • 关注

原创 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

原创 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

原创 codeforces869C The Intriguing Obsession 动态规划

题目链接:戳这里 题目大意: 齐心协力,我们可以以超乎想象的速度到达任何地方!现在,火炎姐妹(Fire Sisters)——火怜(Karen)和月火(Tsukihi)正在前往一个她们从未到达的地方——水中的小岛! 有三种不同类型的小岛,方便地,各自涂上了红,蓝,紫三色。每种颜色的小岛各自有a,b,c个。 这些小岛之间初始时互相分离。可以在小岛之间架桥,两个小岛间最多架一座桥。

2018-02-27 10:19:23 254

原创 codeforces859E Desk Disorder 并查集判环+乘法原理

题目链接:戳这里 题目大意:有N 个人和2N 个座位。告诉你这N 个人它们现在的座位。以及它们想去的座位。 每个人可以去它们想去的座位或者就坐在原来的座位上。 新的座位安排和旧的座位安排,都不允许一个座位被两个人占据的情况。 问你新的座位安排的方案数。 题解:可以发现不同的联通块是互不影响的,那么我们就可以统计出所有联通块分开统计答案在按照乘法原理乘起来。 如果一个联通块内存在自环,那么答案

2018-02-27 10:07:07 253

原创 codeforces895C Square Subsets 状压dp

题目链接:戳这里 题目大意:Petya又迟到了...老师给了他额外的任务。对于一个数组a,Petya需要统计从中间选择非空子集,使它们的乘积等于某个整数的平方的方法的数量。 如果这些方法所选择的元素的索引不同,则认为这两种是不同的方法。 因为结果可能很大,结果需要mod 10^9+7。 题解:一个数是完全平方数,说明它的每个质因子都有偶数个,而a数组中的每个元素最大不超过70,那么我们可以

2018-02-27 09:51:22 298

原创 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

原创 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

原创 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

原创 codeforces486D Valid Sets 树上计数

题目链接:戳这里 题目大意:给出一棵树,树上有点权,求这棵树的满足最大点权与最小点权之差小于d的连通子图的个数。 题解:我们可以枚举一个点作为最大的点权向下扩展。但这样有一个问题:点权相等的点会重复扩展。所以我们规定点权相等的点,只能由编号小的向编号大的点扩展。 代码:#include #define maxn 200005 #define maxm 400005 #define mod 1

2018-02-22 09:57:00 266

原创 codeforces52B Right Triangles 计数问题

题目链接:戳这里 题目大意:给出一个n*m的只有‘*’和‘.’的矩阵,求三个顶点都是‘*’且直角边平行于矩阵边的直角三角形个数。 题解:显然对于一个直角顶点,它能构成的直角三角形的个数为(左边‘*’的个数+右边‘*’的个数)×(上边‘*’的个数+下边‘*’的个数)。 代码:#include #define maxn 1005 using namespace std; typedef long

2018-02-22 09:36:48 460

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除