zay大爷的膜你题 D2T1 江城唱晚
二更——
因为这篇题解在zay讲之前就写完了,所以我就没写前面的骗分做法,取而代之的是对于正解的一些补充
这一次网易云爆炸了。。。。所以我决定后面的都用QQ(后续的题解证明我真香了)
下面是题面
这道题是一道傻逼题 数学题,按照zay的说法,这种题目在数据范围比较小的情况下可以用dp,数据比较大的话就得用组合数学等方法纸面上推了
我们仔细看一看,首先有m朵花的话,我们就有m!种排列方式(也就是m的全排列),然后我们假设已经把花的顺序排好了
我们这一步要做的事情就是在剩下的n-m+1个空中选择m个插到m朵花中去,也就是插空算法,至于在算n-m等数组要不要+1的时候,最好还是手推再加上实践,这样能保证算出来的数是正确的
所以最后的答案就是A(m,m)*C(n-m+1,m)
本来以为按A和C的算法直接写上就没事的,但是我们忽略了一个问题,直接算阶乘太大,在模意义下算除法还得求逆元,这就意味着我们得化简,把整个式子写出来然后化简得到
(n-m+1)! / (n-2m+1)!
然后直接从n-2m+2开始循环就可以啦
这是代码
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
long long type, n, m, p, ans = ;
int main()
{
freopen("ilove.in","r",stdin);
freopen("ilove.out","w",stdout);
scanf("%lld%lld%lld%lld", &type, &n, &m, &p);
if(type == ){
printf("");
return ;
}
if(n < m*-){
printf("");
return ;
}
for (int i = n - *m + ; i <= n - m + ; ++i){
ans = ans * i % p;
}
printf("%lld", ans % p);
return ;
}
对了,还有一个事,虽然我们对这个东西取模,但是还是很容易溢出int,所以在输出等时候,我们最好是开一个long long
最后送上一句话
十年OI一场空,不开long long见祖宗
zay大爷的膜你题 D2T1 江城唱晚的更多相关文章
- zay大爷的膜你题 D2T2——不老梦(AK梦)
还是万年不变的外链 这个题.....是最难的....但是不知道为啥扶苏神仙讲完了之后我竟然听懂了.... 所以这个题我要好好写一写 首先我们看一看每一个测试点,来一点点得分 第一个测试点n = 1,直 ...
- 【6.24校内test】T1 江城唱晚
[题目背景] 墙角那株海棠,是你种下的思念. 生死不能忘,高烛照容颜. 一曲江城唱晚,重忆当年坐灯前, 青衫中绣着你留下的线. ——银临<江城唱晚> [问题描述] 扶苏是个喜欢一边听古风歌 ...
- 模拟赛DAY 2 T1江城唱晚
[题目背景] 墙角那株海棠,是你种下的思念. 生死不能忘,高烛照容颜. 一曲江城唱晚,重忆当年坐灯前, 青衫中绣着你留下的线. ——银临<江城唱晚> [问题描述] 扶苏是个喜欢一边听古风歌 ...
- 6.25考试整理:江城唱晚&&不老梦&&棠梨煎雪——题解
按照旧例,先安利一下主要作者:一扶苏一 以及扶苏一直挂念的——银临姐姐:银临_百度百科 (滑稽) 好哒,现在步入正题: 先看第一题: 题解: 在NOIP范围内,看到“求方案数”,就说明这个题是一个计数 ...
- NIOP 膜你题
NOIp膜你题 Day1 duliu 出题人:ZAY 1.大美江湖(mzq.cpp/c) [题目背景] 细雪飘落长街,枫叶红透又一年不只为故友流连,其实我也恋长安听门外足音慢,依稀见旧时容颜 ...
- NOIP 膜你题 DAY2
NOIp膜你题 Day2 duliu 出题人:ZAY 题解 这就是一道组合数问题鸭!!! 可是泥为什么没有推出式子!! 首先我们知道的是 m 盆花都要摆上,然后他们的顺序不定(主人公忘记 ...
- zay大爷的神仙题目 D1T3-膜你抄
依旧是外链 锦鲤抄 [题目背景] 你在尘世中辗转了千百年 却只让我看你最后一眼 火光描摹容颜燃尽了时间 别留我一人,孑然一身 凋零在梦境里面. ——银临&云の泣<锦鲤抄> [问题描 ...
- zay大爷的神仙题目 D1T2-腐草为萤
题面如下 依照旧例放外链 [题目背景] 纤弱的淤泥中妖冶颓废在季夏第三月最幼嫩的新叶连凋零都不屑何必生离死别——银临<腐草为萤> [问题描述] 扶苏给了你一棵树,这棵树上长满了幼嫩的新叶, ...
- zay大爷的神仙题目 D1T1-大美江湖
在前几天的时候,千古神犇zay(吊打zhx那个)出了一套神仙题目,所以我得来分析分析QWQ 先补个网易云链接QWQ 毕竟是T1嘛,还算是比较简单的,那道题,读完题目就发现是个中等模拟(猪国杀算大模拟的 ...
随机推荐
- Logback中%X的使用
1. 参考资料 https://gist.github.com/logogin/ff44c254f655340b653c http://www.cnblogs.com/zhudongchang/p/6 ...
- 设计模式——模板模式(Template Pattern)
在读Spring源码的时候,发现Spring代码中运用了大量的模板模式,比如根据文件系统目录加载配置文件(FileSystemXmlApplicationContext),类路径加载配置文件(Clas ...
- The IBM Blockchain Platform: Develop pre-requisites
Installing pre-requisites The IBM Blockchain Platform: Develop pre-requisites can be installed on Ub ...
- JAVA基础--函数和数组03
一.函数的引入 函数的引入 能把相同的代码都抽出来,放到一个地方,等到要使用的时候再去调用,如果有不同的数据,在使用的时候传递就行了: 2. 函数的概念:函数又叫方法,一段独立于代码块 直接卸载类中, ...
- jqGrid 编辑完数据后能返回到当前位置的方法
jqGrid 是一个js的jquery组件,虽然不轻便,但功能还是蛮强大的,也比较方便使用.在数据加载后,经常需要对其中的记录进行编辑,修改完后再返回时需要看到修改后的数据,一般采取重新加载的方法re ...
- 51nod 1069【思维】
具体思路来自相关讨论 给个不太严谨的证明思路: 第一步:证明路径可逆,也就是如果(a, b) -> (x, y)可行,则(x, y) - > (a, b)可行 这个比较直观,只需要分别由( ...
- bzoj 3594: [Scoi2014]方伯伯的玉米田【二维树状数组+dp】
设f[i][j]为前i棵玉米被拔高了j(因为是单调不降所以前面越高越好,所以每次拔一个前缀),转移是f[i][j]=f[k][l]+1,l<=j,a[k]+l<=a[i]+j,然后用二维树 ...
- CentOS7下如何正确安装并启动Docker(图文详解)
我使用了CentOS 7操作系统,可以非常容易地安装Docker环境.假设,下面我们都是用root用户进行操作,执行如下命令进行准备工作: yum install -y yum-utils yum-c ...
- iOS 更改通知栏为白色
1.在 info.plist 中添加View controller-based status bar appearance,值为NO. 2.在设置状态栏的地方添加代码: UIApplication.s ...
- c++中的虚函数是什么东西?
#include <iostream> #include<string> #include<vector> using namespace std; class A ...