火球术

Time Limit

1s

Memory Limit

262144KB

Judge Program

Standard

Ratio(Solve/Submit)

21.43%(3/14)

Description:

小Z喜欢玩炉石传说。他尤其喜欢里面的一张卡牌,叫做火球术。他想,如果有个法术能释放好多个火球术会很有意思,由此他想到了一个问题。如果场上有n只怪物,每只怪物有hpi 点血量,现在有一张法术能随机对所有怪物释放m个火球术,每个火球术均会造成6点伤害,怪物死亡即最终hpi小于等于0,不会立即从场上消失,仍可能受到火球术,直到m个火球术释放完毕,问最终第i个怪物死亡的概率。

Input:

第一行给出一个整数T(1<=T<=100),表示测试数据的数目。
每一组测试数据第一行包含两个正整数n和m。(1<=n,m<=1000)

接下来一行是n个用空格隔开的整数hpi (1<=hpi<=1000)。

Output:

对于每组数据,输出一行用空格隔开的n个数,代表最终第i个怪物死亡的概率,答案对1e9+7取模,以p*q-1的形式输出,其中p是概率最简形式的分子,q-1是概率最简形式的分母对模数的乘法逆元(一个数q对于1e9+7的乘法逆元为q^(1e9+5))。

Sample Input:

1
2 1
6 3

Sample Output:

500000004 500000004

Source:

hdu校赛

题意:

有m个火球,逐个释放,每一个火球会随机对一个怪物进行攻击,攻击造成6点伤害,每一只怪物有自己的血量hp

当hp<=0,怪物死亡,怪物死亡后,不会消失仍然会收到火球的攻击,直到m个火球释放完毕

解析:

每一次每一个怪物收到攻击的几率是1/n,根据怪物血量可以算出怪物死亡所需要受到的火球攻击次数cnt

只要怪物受到的攻击次数>=cnt,则怪物一定会死亡。这里需要注意的是火球的攻击是有次序的,所以需要用到组合数

并且不能只算怪物收到攻击的次数(1/n)^i,还要算其他怪物收到的攻击次数的概率=((n-1)/n)^(m-i)

这样随后的公式是1/(n^m)*Σ(i∈[cnt,m])(C(m,i)*(n-1)^(m-i))

#include <cstdio>
#include <algorithm>
#include <queue>
using namespace std;
typedef long long ll;
const int MAXN = 1e3+5;ll C[MAXN][MAXN];
ll f[MAXN][MAXN];
ll mi[MAXN][MAXN];const ll MOD = 1e9+7;ll pow(ll a,ll n,ll p)
{ll ans=1;while(n){if(n&1) ans=ans*a%p;a=a*a%p;n>>=1;}return ans;
}ll niYuan(ll a,ll b)
{return pow(a,b-2,b);
}ll gcd(ll a,ll b)
{while(b){ll tmp=a%b;a=b;b=tmp;}return a;
}int main()
{int t;scanf("%d",&t);C[0][0]=1;for(int i=1;i<MAXN;i++){C[i][0]=1;for(int j=1;j<=i;j++)C[i][j]=(C[i-1][j]+C[i-1][j-1])%MOD;}while(t--){ll n,m;scanf("%lld%lld",&n,&m);//if(m>n) m=n;if(n==1){ll hp;scanf("%lld",&hp);if(hp>6*m) printf("0\n");else printf("1\n");continue;}ll mmu=niYuan(pow(n,m,MOD),MOD);for(int i=1;i<=n;i++){ll hp;scanf("%lld",&hp);ll ans;if(hp>6*m) ans=0;else{ll cnt=hp/6+(hp%6?1:0);ll zi=0;ans=0;ll tmp=1;for(int j=m;j>=cnt;j--){zi=(zi+tmp*C[m][j]%MOD)%MOD;tmp=tmp*(n-1)%MOD;}ans=(zi*mmu)%MOD;}if(i==1)printf("%lld",ans);else printf(" %lld",ans);}printf("\n");}return 0;
}

hdu训练赛 火球术(组合数打表)相关推荐

  1. 19级算法训练赛第七场

    19级算法训练赛第七场 传送门:https://vjudge.net/contest/362412#problem/J A - 程序设计:合并数字 蒜头君得到了 n 个数,他想对这些数进行下面这样的操 ...

  2. ACM训练赛--递推专题

    1001: Buy the Ticket Problem Description The "Harry Potter and the Goblet of Fire" will be ...

  3. 【ECJTU_ACM 11级队员2012年暑假训练赛(8) - F - A Mame】

    Home Problems Status Contest Register Login B题要套一个数论的模版,注意m=1!! C题可以二分匹配,把行列看作点; 不能开百度,开谷歌搜题解,再次强调!一 ...

  4. Dream_Chaser队训练赛第一场 K题

    Dream_Chaser队训练赛第一场 K题 题目来自2012成都区域赛 K - Yet Another Multiple Problem Time Limit:20000MS     Memory ...

  5. Dream_Chaser队训练赛第一场 I题

    Dream_Chaser队训练赛第一场 I题 题目来自2012成都区域赛 I - Count Time Limit:1000MS     Memory Limit:32768KB     64bit ...

  6. HDU6578 2019HDU多校训练赛第一场 1001 (dp)

    HDU6578 2019HDU多校训练赛第一场 1001 (dp) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6578 题意: 你有n个空需要去填,有 ...

  7. 机器学习实践系列(二)----达观杯--轴承故障检测训练赛

    竞赛地址 轴承故障检测训练赛 任务 轴承有3种故障:外圈故障,内圈故障,滚珠故障,外加正常的工作状态.如表1所示,结合轴承的3种直径(直径1,直径2,直径3),轴承的工作状态有10类: 参赛选手需要设 ...

  8. 2018-2019 ACM-ICPC, Asia Shenyang Regional Contest 不完整题解与训练赛复盘

    RT,训练赛复盘+题解,赛中过6题,又比理论上界少1题( 发挥比较惊险刺激,前期直接拉闸,中后期翻盘成功. (别问我为什么又紫了,这波是两场div1各掉快100分,第二场试图跳车,不知道跳下去没有) ...

  9. 2021UPC个人训练赛第47场

    个人训练赛第47场 A: 加工零件(最短路) 问题 A: 加工零件时间限制: 1 Sec 内存限制: 128 MB 题目描述 凯凯的工厂正在有条不紊地生产一种神奇的零件,神奇的零件的生产过程自然也很神 ...

最新文章

  1. [Vert.x Core手册 for Java]-了解Vert.x
  2. Git - ‘假设未改变‘和‘跳过工作树‘之间的区别
  3. 线性代数第五版吉尔伯特课后答_线性代数同济第五版第四章课后习题答案!
  4. 4.2 深层网络中的前向传播-深度学习-Stanford吴恩达教授
  5. 深入Lock锁底层原理实现,手写一个可重入锁
  6. Uncaught TypeError: Object [object Object] has no method 'xxx'
  7. CentOS 7 NAT软路由
  8. ch341a编程和ttl刷机区别_土豪金CH341a编程器 开箱晒物
  9. 改开源项目的一些心得
  10. SQL Server - 聚集索引 第六篇
  11. 计算机软件知识pdf,[计算机软件及应用]PDF基础知识.doc
  12. jpeg图片转换成word
  13. 全套AI平面设计软件教程案例素材免费分享
  14. 安装使用 GoldenDict 查词神器 (Windows/Mac/Linux)
  15. 转:七大项目管理技术优势
  16. Logistic Regression - IBM 员工离职预测
  17. 怎么截取巨大日志里某一天的log
  18. 【MQTT】SpringBoot整合MQTT(EMQX)
  19. Chrome浏览器首次打开后未响应较长时间
  20. 一、YouTube-8M 初探(视频与音频分类)

热门文章

  1. HandBrakeMac视频转码软件,小巧高效
  2. BootStrap学习2 typeahead
  3. Python练习题答案: 海盗!是大炮准备好了!?【难度:0级】--景越Python编程实例训练营,1000道上机题等你来挑战
  4. SUN 超强服务器 (多图)
  5. 【优化算法】猫群优化算法(CSO)【含Matlab源码 1071期】
  6. 优秀的人都将是孤独的
  7. 受力分析软件_【硕士论文】供热管网管道支架载荷分析与优化设计
  8. real-time loop closure in 2D LIDAR SLAM 论文整理
  9. (ESC IIS笔记)类型“TextBox”的控件“TextBox1”必须放在具有 runat=server 的窗体标记内
  10. 如何理解EOS使用的 DPOS 机制