组合

一道组合数学题,链接
http://acm.fzu.edu.cn/problem.php?pid=2301

解析

题目的意思对方有两只怪物,一只血量为mmm, 另一只血量为无穷。游戏共nnn个回合,每个回合会随机地选择对方的一只怪物进行攻击,问在nnn回合内打死那只血量为mmm的概率为多大。 因为是nnn回合,每次攻击都有两种可能性,所以总的方案数为2n2^n2n,因为怪物的血量为mmm,所以至少需要mmm次攻击才能打死这只怪物,那么总的可能方案为Cnm+Cnm+1+⋯+CnnC_{n}^{m}+C_{n}^{m+1}+\cdots+C_{n}^{n}Cnm​+Cnm+1​+⋯+Cnn​, 因为m,n≤1000m,n\leq1000m,n≤1000,所以预处理下阶乘和组合数就行了

AC代码

/*小学生一发的刷题之路;今天你刷题了吗???*/#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <queue>
#include <cmath>
#include <set>
#include <map>
#include <deque>
#include <stack>
#include <vector>
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const double PI=acos(-1.0);
const int maxn=1e3+5;
const ll mod=1e9+7;
ll A[maxn],Amo[maxn],C[maxn][maxn],sum[maxn][maxn];
ll B[maxn];
ll poww(ll a,ll b){ll ans=1,base=a;while(b){if(b&1){ans*=base;ans%=mod;}b>>=1;base*=base;base%=mod;}return ans;
}void init(){A[0]=1;     //计算阶乘;Amo[0]=1;for(int i=1;i<=1000;i++){A[i]=i*A[i-1];A[i]%=mod;Amo[i]=poww(A[i],mod-2);}memset(sum,0,sizeof(sum));for(int i=1;i<=1000;i++){for(int j=0;j<=i;j++){if(j==0){C[i][j]=1;}else{C[i][j]=((A[i]*Amo[j])%mod*Amo[i-j])%mod;}if(j==0){sum[i][j]=C[i][j];}else{sum[i][j]=sum[i][j-1]+C[i][j];sum[i][j]%=mod;}}}B[0]=1;     //计算2的阶乘;for(int i=1;i<=1000;i++){B[i]=B[i-1]*2;B[i]%=mod;}for(int i=1;i<=1000;i++){       //计算模逆;B[i]=poww(B[i],mod-2);}
}int main(){init();     //预处理阶乘;int t,n,m;scanf("%d",&t);while(t--){scanf("%d %d",&n,&m);ll ans=(sum[n][n]-sum[n][m]+C[n][m]+mod)%mod;ans=(ans*B[n])%mod;printf("%lld\n",ans);}return 0;
}

新的开始,每天都要快乐哈!

Chosen by god相关推荐

  1. chosen.jquery.js 有搜索功能、多选功能的下拉框插件

    chosen.jquery.js 有搜索功能.多选功能的下拉框插件 官方源码:  https://github.com/harvesthq/chosen 该源码中的样例index.html有该插件的详 ...

  2. jquery.chosen.js下拉选择框美化插件项目实例

    由于之前使用的bootstrap-select插件是建立在bootstrap基础上的,实际使用到项目中的时候,与我们使用的ace-admin(基于bootstrap)存在样式冲突,导致下拉框的样式发生 ...

  3. Chosen中选择项的更新

    Chosen 选择项的动态修改/更新 如果你需要去动态更新select选择框里的选择项,你需要通知Chosen去响应这个变动,你需要在这个选项框是触发一个"liszt:updated&quo ...

  4. chosen ajax获取数据,Jquery Chosen插件 - 由Ajax动态填充列表

    小智.. 5 选择的答案已经过时,熔化/ ajax选择的插件也是如此. 使用Select2插件有很多错误,我无法解决它. 这是我对这个问题的回答. //setup before functions v ...

  5. chosen组件实现下拉框

    chosen组件用于增强原生的select控件,使之有更好的用户体验.官方demo https://harvesthq.github.io/chosen/ 目前项目中碰到的使用,比如一个页面中有两个不 ...

  6. Chosen通用初始化

    一直在用Chosen这个js插件,其目的就是美化下拉框.github地址:https://harvesthq.github.io/chosen/ no_results_text:"xxxxx ...

  7. 比select2 更好用的chosen插件 for angular

    为什么80%的码农都做不了架构师?>>>    官网传送门在这里: https://github.com/localytics/angular-chosen 首先angular a ...

  8. chosen jquery ajax搜索,基于chosen插件实现人员选择树搜索自动筛选功能

    要实现的功能截图: 要求: 1.点击输入框可以根据拼音自动筛选数据,并且标记已经选择的数据,没有结果的时候提示,相应的更新左边树状态 2.勾选树右侧树的复选框左侧出现相应的内容 我用到的插件 vue+ ...

  9. java实现省市区的联动,chosen实现省市区三级联动

    本文实例为大家分享了chosen实现省市区三级联动的具体代码,供大家参考,具体内容如下 效果图: 一.资源 1.1.css资源 1.2.js资源 二.代码 请选择省份 ${province.name! ...

  10. jquery.chosen.js实现模糊搜索

    jquery.chosen.js查询时,chosen默认从第一个字符搜索,所以写中间的字符搜索时,是搜索不出来的 若想实现中间字符的模糊查询,下面的js中(search_contains属性为true ...

最新文章

  1. 单商户商城与多商户商城的区别
  2. mac os 下 Android Studio设置真机调试
  3. Strut2与Hibernate的一个web分页功能
  4. PHP7.0 Window10 Redis安装教程
  5. 减法公式运算法则_人教版数学七年级上册1.3.2有理数的减法视频讲解+知识点+同步练习...
  6. 用apache commons-pool2建立thrift连接池
  7. python苦逼_自学Python编程的第十天(希望有IT大牛看见的指点小弟我,万分感谢)---------来自苦逼的转行人...
  8. ffmbc——广播电视以及专业用途量身定制的FFmpeg
  9. 推荐系统多兴趣召回最新进展
  10. 如何搭建MySQL数据库,常用的数据库命令
  11. LR监控linux系统资源
  12. jmp怎么做合并的箱线图_Python数据可视化:箱线图多种库画法
  13. Java连接各种数据库
  14. oracle 索引个数限制,oracle索引详解
  15. 一个独特的简历生成器,开源了!
  16. java8收费_java8为什么要收费?
  17. 【开发工具】Windows远程桌面连接
  18. wordpress 安装教程
  19. SQL Server练习
  20. 前端埋点pv,uv以及实现思路

热门文章

  1. 1万人游戏服务器多少钱?
  2. 华为Ascend昇腾CANN详细教程(二)
  3. 一节计算机课作文500,难忘的一堂课作文500字5篇
  4. 美发明家脑洞大开 预测十几年后电脑会产生感情
  5. 马列主义告诉我们:物质基础决定上层建筑 - 移动互联网时代之后的时代演进推断
  6. 《软件工程》期末题型
  7. C/C++编程学习 - 第6周 ⑤ 球弹跳高度的计算
  8. STM32CUBE+自平衡车-前言
  9. 每日一道Leetcode - 5. 最长回文子串 【动态规划】
  10. java多线程:9、synchronized、Lock的底层实现原理以及和volatile、Lock、ReentrantLock的区别?