传送门

一看这题subtasks就觉得最后能直接推个柿子出来……然而没推出来

首先状压的部分分:发现只需要统计猎人1还没死的状态的贡献,其它情况可以continue掉,有45pts

至于正解……发现我们要求的实际上就是期望有多少个猎人死在猎人1之前

发现每个猎人的死活之间相互独立,所以可以拆成每个猎人死在猎人1之前都能造成1贡献

考虑对于一对猎人 \(i,j\) , \(i\) 死在 \(j\) 前面的概率是多少

分情况讨论:

  1. 两人都活着:是 \(\frac{w[i]}{w[i]+w[j]}\)
  2. 有一人活着:发现是情况1的附属状态,不贡献概率
  3. 都死了:同上不贡献概率

所以…… \(i\) 死在 \(j\) 前面的概率就是一个 \(\frac{w[i]}{w[i]+w[j]}\) ,没了

至于贡献……把所有概率加和就行了

神仙题……

Code:

#include <bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
#define N 100010
#define ll long long
#define reg register int
//#define int long long char buf[1<<21], *p1=buf, *p2=buf;
#define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf, 1, 1<<21, stdin)), p1==p2?EOF:*p1++)
inline int read() {
int ans=0, f=1; char c=getchar();
while (!isdigit(c)) {if (c=='-') f=-f; c=getchar();}
while (isdigit(c)) {ans=(ans<<3)+(ans<<1)+(c^48); c=getchar();}
return ans*f;
} int n;
const ll mod=998244353;
inline void md(ll& a, ll b) {a+=b; a=a>=mod?a-mod:a;}
ll w[N]; ll qpow(ll a, ll b) {
ll ans=1;
while (b) {
if (b&1) ans=ans*a%mod;
a=a*a%mod; b>>=1;
}
return ans;
} namespace force{
ll ans, p[1<<21];
void solve() {
int lim=1<<n;
ll sum, p2, tem;
p[0]=1;
for (reg s=0,cnt; s<lim; ++s) {
if (s&1) continue;
sum=0; cnt=1;
for (reg i=0; i<n; ++i)
if (!(s&(1<<i))) md(sum, w[i+1]);
else ++cnt;
p2=qpow(sum, mod-2);
//cout<<"s: "<<bitset<5>(s)<<endl;
//cout<<p[s]<<' '<<w[1]<<' '<<p2<<endl;
tem=p[s]*p2%mod;
if (!(s&1)) md(ans, tem*cnt*w[1]%mod); //, cout<<"ans: "<<ans<<endl;
for (reg i=0; i<n; ++i) if (!(s&(1<<i))) {
md(p[s|(1<<i)], tem*w[i+1]%mod);
//cout<<p[s]*w[i+1]%mod*p2%mod<<endl;
}
}
printf("%lld\n", ans);
exit(0);
}
} namespace task{
void solve() {
ll ans=0;
for (int i=2; i<=n; ++i) ans=(ans+w[i]*qpow((w[1]+w[i])%mod, mod-2)%mod)%mod;
printf("%lld\n", ans+1);
exit(0);
}
} signed main()
{
n=read();
for (int i=1; i<=n; ++i) w[i]=read();
task::solve(); return 0;
}

题解 Hunter的更多相关文章

  1. hdu 4568 Hunter 最短路+dp

    Hunter Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  2. HDU 4568 Hunter 最短路+TSP

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4568 Hunter Time Limit: 2000/1000 MS (Java/Others)Me ...

  3. HDU暑假多校第三场H.Monster Hunter

    一.题意 给定一个树状地图,每个树节点上有一只怪物,打死一只怪物的过程中将会消耗A点HP,打死之后将会获得B点HP.因为树状结构,所以每只怪物必须先打死父节点的怪兽之后在打死子节点的怪物.现在,给定每 ...

  4. Day3-A-Problem H. Monster Hunter HDU6326

    Little Q is fighting against scary monsters in the game ``Monster Hunter''. The battlefield consists ...

  5. 8.8考试总结(NOIP模拟33)[Hunter·Defence·Connect]

    无法逃避的是自我,而无法挽回的是过去. 前言 还算可以,不过 T1 少 \(\bmod\) 了一下挂了 25pts,T2 没看清题面挂了 27pts. 下回注意吧.. T1 Hunter 解题思路 感 ...

  6. “.Net 社区虚拟大会”(dotnetConf) 2016 Day 1 Keynote: Scott Hunter

    “.Net 社区虚拟大会”(dotnetConf) 2016 今天凌晨在Channel9 上召开,在Scott Hunter的30分钟的 Keynote上没有特别的亮点,所讲内容都是 微软“.Net社 ...

  7. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  8. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  9. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

随机推荐

  1. 将Acunetix与CircleCI集成

    如果要在DevSecOps中包含Acunetix ,则需要将其与CI / CD系统集成.Acunetix具有针对最受欢迎的CI / CD系统Jenkins的现成集成.但是,您可以使用Acunetix ...

  2. C++实现KDTree

    简介   k-d树(k-dimensional),是一种分割k维数据空间的数据结构(对数据点在k维空间中划分的一种数据结构),主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索). 举例    ...

  3. Java基础00-多线程28

    1. 实现多线程 1.1 进程 1.2 线程 1.3 多线程的实现方式(方式一:继承Thread类) 代码示例:定义类MyThread: //1:定义一个类MyThread继承Thread类 publ ...

  4. LeetCode 847. Shortest Path Visiting All Nodes

    题目链接:https://leetcode.com/problems/shortest-path-visiting-all-nodes/ 题意:已知一条无向图,问经过所有点的最短路径是多长,边权都为1 ...

  5. Hector SLAM解读(1)原文翻译

      一种带有3D运动状态估计的slam系统 A Flexible and Scalable SLAM System with Full 3D Motion Estimation 摘要: 在许多应用场景 ...

  6. python + mysql 实现查询表数据

    实例如下: import pymysqldef select_form(): # 打开数据库连接 db = pymysql.connect("localhost", "r ...

  7. Requests方法 -- Http协议的短链接与长连接介绍

    转载于简书: 作者:熊师傅链接:https://www.jianshu.com/p/3fc3646fad80 1.以前的误解 很久之前就听说过长连接的说法,而且还知道HTTP1.0协议不支持长连接,从 ...

  8. 高版本(8以上)tomcat不支持rest中的delete和put方式请求怎么办

    出现问题 当我们去访问delete方式和put方式: 后来才知道tomcat8以上是不支持delete方式和put方式 解决方法: 在跳转目标的jsp头文件上改为(加上了isErrorPage=&qu ...

  9. 微信小程序云开发-云存储-上传、下载、打开文件文件(word/excel/ppt/pdf)一步到位

    一.wxml文件 <!-- 上传.下载.打开文件一步执行 --> <view class="handle"> <button bindtap=&quo ...

  10. ArcGis Server安装与使用

    ArcGis Server安装 下载ArcGisServer 双击Setup.exe,然后一直下一步. 安装完成后,点击完成,弹出如下界面: 选择第三个选项,然选择[.ecp]后缀名的授权文件. 然后 ...