链接:牛客网暑期ACM多校训练营(第五场):F - take

题意:

Kanade有n个盒子,第i个盒子有p [i]概率有一个d [i]大小的钻石。

起初,Kanade有一颗0号钻石。她将从第1到第n打开盒子。当她打开一个盒子时,如果里面有一颗钻石并且比它的钻石大,那么她将用她的钻石代替它。

现在您需要计算预期的替换次数。

您只需要输出答案模块998244353。

注意:如果x%998244353 = y * d%998244353,那么我们表示x / y%998244353 = d%998244353。

题解:每一个东西对答案的贡献,即这个东西取的概率乘以前面比它大的东西不取的概率。用树状数组维护不取的概率,则每次都能在O(log)的时间取出前面比它大的东西不取的概率。

#include <bits/stdc++.h>
using namespace std; const int mod = ;
const int maxn = 1e5 + ;
int n;
long long p[maxn], d[maxn];
long long lisan[maxn];
long long bit[maxn]; long long pow_mod(long long x, long long n)
{
long long ans = ;
while(n){
if(n & ) ans = ans * x % mod;
x = x * x % mod;
n >>= ;
}
return ans;
} long long sum(int i)
{
long long ans = ;
while(i){
ans = ans * bit[i] % mod;
i -= i & -i;
}
return ans;
} void add(int i, long long x)
{
while(i <= n){
bit[i] = bit[i] * x % mod;
i += i & -i;
}
} int main()
{
long long NY = pow_mod(, mod - ); //求100的逆元 scanf("%d", &n);
for(int i = ; i <= n; i++){
scanf("%lld%lld", &p[i], &d[i]);
lisan[i] = d[i]; //离散化
p[i] = p[i] * NY % mod; //除以100恢复概率
bit[i] = ; //树状数组维护乘积需初始化为1
} sort(lisan + , lisan + + n);
int li = unique(lisan + , lisan + + n) - lisan - 1;
for(int i = ; i <= n; i++){
//最后要求比当前数大的概率,即后缀,会有除法,需求逆元,将大小互换,则可优化
d[i] = li - (lower_bound(lisan + , lisan + + li, d[i]) - lisan) + ;
} long long ans = ;
for(int i = ; i <= n; i++){
ans = (ans + sum(d[i] - ) * p[i]) % mod;
add(d[i], ( - p[i] + mod) % mod);
} printf("%lld\n", ans); return ;
}

牛客网暑期ACM多校训练营(第五场):F - take的更多相关文章

  1. 牛客网 暑期ACM多校训练营(第二场)A.run-动态规划 or 递推?

    牛客网暑期ACM多校训练营(第二场) 水博客. A.run 题意就是一个人一秒可以走1步或者跑K步,不能连续跑2秒,他从0开始移动,移动到[L,R]的某一点就可以结束.问一共有多少种移动的方式. 个人 ...

  2. 牛客网 暑期ACM多校训练营(第一场)A.Monotonic Matrix-矩阵转化为格子路径的非降路径计数,Lindström-Gessel-Viennot引理-组合数学

    牛客网暑期ACM多校训练营(第一场) A.Monotonic Matrix 这个题就是给你一个n*m的矩阵,往里面填{0,1,2}这三种数,要求是Ai,j⩽Ai+1,j,Ai,j⩽Ai,j+1 ,问你 ...

  3. 2018牛客网暑期ACM多校训练营(第二场)I- car ( 思维)

    2018牛客网暑期ACM多校训练营(第二场)I- car 链接:https://ac.nowcoder.com/acm/contest/140/I来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 ...

  4. 牛客网暑期ACM多校训练营(第一场) - J Different Integers(线段数组or莫队)

    链接:https://www.nowcoder.com/acm/contest/139/J来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语言1048 ...

  5. 牛客网暑期ACM多校训练营(第九场) A题 FWT

    链接:https://www.nowcoder.com/acm/contest/147/A来源:牛客网 Niuniu has recently learned how to use Gaussian ...

  6. 牛客网暑期ACM多校训练营(第九场)D

    链接:https://www.nowcoder.com/acm/contest/147/D来源:牛客网 Niuniu likes traveling. Now he will travel on a ...

  7. 牛客网暑期ACM多校训练营(第二场)B discount

    链接:https://www.nowcoder.com/acm/contest/140/B来源:牛客网 题目描述 White Rabbit wants to buy some drinks from ...

  8. 2018牛客网暑期ACM多校训练营(第一场)D图同构,J

    链接:https://www.nowcoder.com/acm/contest/139/D来源:牛客网 同构图:假设G=(V,E)和G1=(V1,E1)是两个图,如果存在一个双射m:V→V1,使得对所 ...

  9. 牛客网暑期ACM多校训练营(第二场) I Car 思维

    链接:https://www.nowcoder.com/acm/contest/140/I来源:牛客网 White Cloud has a square of n*n from (1,1) to (n ...

  10. 牛客网暑期ACM多校训练营(第二场) D money 思维

    链接:https://www.nowcoder.com/acm/contest/140/D来源:牛客网 White Cloud has built n stores numbered from 1 t ...

随机推荐

  1. HDU 2102 A计划(两层地图加时间限制加传送门的bfs)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2102 A计划 Time Limit: 3000/1000 MS (Java/Others)    Me ...

  2. HTML5学习总结——相关练习与项目

    一.小米商城项目 第一天示例代码: <!DOCTYPE html> <html lang="en"> <head> <meta chars ...

  3. Unity应用发布如何在本地查看Debug输出?

    http://blog.csdn.net/zfsr05255134/article/details/51867323

  4. “->”和“.”运算符

    1.指向结构变量的指针. 2.定义:struct stu *pstu, 赋值是把结构变量的首地址赋给指针,不能把结构名给该指针:如, pstu = &boy; 3. 访问结构变量的成员 (*结 ...

  5. 20181029NOIP模拟赛T2

    2.追捕 [题目背景] Duan2baka:“jmsyzsfq天下第一蠢!” jmsyzsfq:“你说什么?!” [题目描述] 于是Duan2baka开始了逃亡的旅程,而jmsyzsfq也开始追捕Du ...

  6. 开源框架:DBUtils使用详解

    一.先熟悉DBUtils的API: 简介:DbUtils是一个为简化JDBC操作的小类库. (一)整个dbutils总共才3个包: 1.包org.apache.commons.dbutils    接 ...

  7. SSM整合时初始化出现异常

    java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException  ...

  8. spring-mvc高级技术

    Spring MVC高级技术包括但不限于web.xml配置.异常处理.跨重定向请求传递数据 1.web.xml文件的配置 <!DOCTYPE web-app PUBLIC "-//Su ...

  9. thinkphp5 部署到iis服务器url重写

    thinkphp部署到iis服务器配置url重写的解决方法: 1.下载 url rewrite.下载地址:https://www.iis.net/downloads/microsoft/url-rew ...

  10. day 18 类与类之间的关系

    类与类之间的关系     在我们的世界中事物和事物之间总会有一些联系.    在面向对象中,类和类之间也可以产生相关的关系 1.依赖关系     执行某个动作的时候. 需要xxx来帮助你完成这个操作, ...