XidianOJ 1057 卡尔的技能
题目描述
dota中的英雄卡尔的技能说明如下,他拥有3种不同的元素(冰,雷,火),每次他需要释放技能的时候,他要先选择3次元素来决定释放技能的类型(比如,他可以选择火+火+火或冰+雷+火等等),生成技能的类型由选择的元素中各个元素的比例决定,比如选择冰+冰+雷和选择冰+雷+冰会生成同样的技能,这种机制下,卡尔一共拥有10个技能。
冰+冰+冰:急速冷却
冰+冰+雷:幽灵漫步
冰+冰+火:寒冰之墙
雷+雷+冰:强袭飓风
雷+雷+雷:电磁脉冲
雷+雷+火:灵动迅捷
火+火+火:炎阳冲击
火+火+雷:混沌陨石
冰+雷+火:超震声波
火+火+冰:熔炉精灵
现在,为了加强卡尔,使可供选择的元素达到n个(3<=n<=10^12),选择的次数达到m次(3<=m<=10^12),那么卡尔头疼了,他到底能拥有多少种不同的技能呢?
输入
输出
对于每组数据输出一行,即对应的结果(答案对10007取模)
--正文
仔细一看,这题换个形式就是:
m个相同的球,放到n个盒子里,允许有空盒的方案数
所以就是C(n+m-1,m)
因为n,m比较大所以需要使用Lucas
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std; typedef long long LL;
LL Fast_Mod(LL a,LL b,LL MOD){
LL res = ,base = a;
while (b){
if (b&) res = (res*base) % MOD;
base = (base*base) % MOD;
b = b >> ;
}
return res;
}
LL fac[],n,m;
void Getfac(LL p){
fac[] = ;
int i;
for (i=;i<=p;i++){
fac[i] = (fac[i-]*i) % p;
}
}
LL Lucas(LL n,LL m,LL p){
LL res = ;
while (n && m){
LL a = n % p,b = m % p;
if (a < b) return ;
res = (res*fac[a]*Fast_Mod(fac[b]*fac[a-b]%p,p-,p)) % p;
n = n / p; m = m / p;
}
return res;
} int main(){
Getfac();
while (scanf("%lld %lld",&n,&m) != EOF){
printf("%lld\n",Lucas(n+m-,m,));
}
}
XidianOJ 1057 卡尔的技能的更多相关文章
- XidianOJ 1149 卡尔的技能 II
--正文 多重集合数 + 组合数取模 首先求出没有限制的选择方法C(n+m-1,m) 然后减掉至少有一个元素选择了k+1次的方法数,加上至少有两个元素选择了k+1次的方法数...以此类推 然后是组合数 ...
- 用java开发dota英雄最华丽的技能
爱java 爱dota,突发奇想想用java开发dota操作最华丽的英雄之一的卡尔的技能,因为本人系小白,代码不足的地方还请包涵,有同样爱好的同学欢迎一起研究学习. 先把我的代码呈上 import ...
- 面对最菜TI战队,OpenAI在Dota2上输的毫无还手之力
作者:Tony Peng 去年,OpenAI 的 1v1 AI 击败了世界顶尖选手 Dendi,OpenAI CTO Greg Brockman 承诺:明年,我们会带着 5v5 的 AI bot 重回 ...
- nba技能表
球员名 主动技能名 主动技能效果 拆解技能名 拆解技能效果 巅峰-纳什 跑投三分 全队三分出手概率提高X%,但体力消耗增加Y% 稳固进攻 全队进攻增加X%,持续整场比赛 巅峰-科比 肉搏 对方全体行动 ...
- 【腾讯Bugly经验分享】程序员的成长离不开哪些软技能?
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57ce8068d4d44a246f72baf2 Dev Club 是一个交流移动 ...
- CI Weekly #8 | CI/CD 技能进阶路线
在使用 flow.ci 进行持续集成的过程中,也许你会遇到一些小麻烦.最近我们整理了一些常见问题在 flow.ci 文档之 FAQ,希望对你有用.如果你遇到其他问题,也可以通过「在线消息」或去 Git ...
- [转] 评 WOW技能天赋设计
本文转至:http://bbs.chinaunix.net/thread-1692302-8-1.html(只作转载, 不代表本站和博主同意文中观点或证实文中信息)再比如,传说中的面向对象本该大显神威 ...
- Java程序员应该掌握的10项技能
这篇文章主要介绍了作为Java程序员应该掌握的10项技能,包括java的知识点与相关的技能,对于java的学习有不错的参考借鉴价值,需要的朋友可以参考下 1.语法:必须比较熟悉,在写代码的时候ID ...
- 技能收获与C语言学习
你有什么技能比大多人(超过90%以上)更好? 我会的东西很多,喜欢的东西太多,但是很遗憾广而不专,会而不精.学了很多东西我都是为了娱乐,因为以前我们那里过于强调学习,很多爱好也都被扼杀在摇篮里.我觉得 ...
随机推荐
- 15、java中的内部类介绍
内部类顾名思义就是定义在类中的类,下面做一个简单介绍: 内部类的访问规则:1,内部类可以直接访问外部类中的成员,包括私有. 之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式 ...
- lumen 构建api(dingo api)
什么是 API API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力, ...
- [Maven]Apache Maven 入门篇
作者:George Ma 上 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法.这个入门篇分上下两篇.本文着重动手,用 ma ...
- VMware下安装Linux系统,ORACLE软件,DBCA建库
操作系统安装 在vmware下安装Linux (OEL5.6),用于数据库服务器 1.打开vmware,选择"创建新的虚拟机" 2.选择自定义安装 3.选择虚拟 ...
- MyEclipse运行前自动保存
MyEclipse中又一坑人设置.运行编译好的代码,如果不手动保存的话,MyEclipse是不会自动保存的.所以,在运行前如果对代码做了修改,运行的依然是上一次的结果. 修改这个反人类设置步骤如下: ...
- [SQL]收缩数据库日志
SELECT NAME, recovery_model_desc FROM sys.databases --查看数据库的模式 ALTER DATABASE TOMS SET RECOVERY SIMP ...
- Eclipse连接VirtualBox中的Android x86
Android x86 Alt+F1打开命令行,命令netcfg查看当前ip,记住,然后Alt+F7回界面. Eclipse-Window-Preferences-Android-DDMS-Use A ...
- phoenix 索引修复-基本流程
索引修复基本流程
- http响应状态码大全
http响应状态码大全 http状态返回代码 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码. http状态返回代码 代码 说明100 (继续) 请求者应当继续提出请求. 服 ...
- 关于Python的数据分析工具
Python - 核心编程环境NumPy/SciPy - 用于快速.高效的数组和矩阵运算IPython - 用于Python的可视化交互开发matplotlib - 用于数据的图形可视化pandas ...