6271. 2019.8.4【NOIP提高组A】锻造 (forging) 
(File IO): input:forging.in output:forging.out

Time Limits: 1500 ms  Memory Limits: 262144 KB  Detailed Limits

Description

Input

第一行两个整数 n, a,含义如题所示。
为了避免输入量过大,第二行五个整数 bx, by, cx, cy, p,按照下列代码
来生成 b 和 c 数组。

b[0]=by+1;c[0]=cy+1;
for(int i=1;i<n;i++){
b[i]=((long long)b[i-1]*bx+by)%p+1;
c[i]=((long long)c[i-1]*cx+cy)%p+1;
}

Output

输出一行一个整数,表示期望花费。

Sample Input

Sample Input1
0 6432
4602677 3944535 2618884 6368297 9477531Sample Input2
1 3639650
6136976 5520115 2835750 9072363 9302097Sample Input3
10 2
2 33 6 66 2333333Sample Input4
200 5708788
0 0 0 0 1

Sample Output

Sample Output1
6432Sample Output2
150643649Sample Output3
976750710Sample Output4
696441597

Data Constraint

题目大意:

一个值为(i-1)和一个值为(i-2)的物品有p的几率合成一个(i)级物品 ,(1-p)的几率合成一个(i-2)级物品。拥有一把(0)等级的物品花费a。问得到一个n级物品的期望花费。

题解:

一道概率题。

f[i]表示合成一把i级武器的期望花费 。

我们合成失败后 , 得了一把(i-2)的剑 , 不用再锻造 , 只用在输了之后锻造一把(i-1)的剑即可 , 锻造的次数取决于合成成功的期望合成次数k。(若一次就合成成功了 , k=1 , f[i] = f[i-1] +f[i-2] ,退化成percent50(p=1)的形式)

f[i] = f[i-1] * k  +f[i-2]

我们可以计算k。

期望次数  =   P为赢的概率。(假设P为1% , 那我们就期望100次能出个i级剑)

k = (1\p)

f[i] = f[i-1] * (1/p) + f[i-2]

#include<bits/stdc++.h>
#define ll long long
#define re register
#pragma GCC optimize(3)
#pragma GCC optimize(2)
#pragma GCC optimize(1)
#define mod 998244353
#define N 10000010
#define open(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout)
using namespace std;int n,a,i,j,r,ans,bx,by,cx,cy,p;
int  f[N],inv[N];
int b[N] , c[N];int main()
{open("forging");scanf("%d%d",&n,&a);scanf("%d%d%d%d%d",&bx,&by,&cx,&cy,&p);b[0]=by+1;c[0]=cy+1;for(int i=1;i<n;i++){b[i]=(((ll)b[i-1]*bx+by)%p+1);c[i]=(((ll)c[i-1]*cx+cy)%p+1);}inv[1] = 1;for(re int i=2;i<=p+1;i++) (inv[i] = (-((ll)mod/i)  * inv[mod % i])%mod + mod)%= mod;f[0] = (ll)a % mod;(f[1] = (ll)f[0] * inv[min(c[0],b[0])] % mod* (ll)c[0] %mod + f[0] )%= mod;for(re int i=2;i<=n;i++)  (f[i] = (ll)f[i-1] *  inv[min(c[i-1],b[i-2])] % mod* (ll)c[i-1] % mod  + f[i-2]) %= mod;ans = f[n];printf("%d",ans);return 0;

o (N)

6271. 2019.8.4【NOIP提高组A】锻造 (forging)相关推荐

  1. 2018.12.08【NOIP提高组】模拟B组总结(未完成)

    2018.12.08[NOIP提高组]模拟B组总结 diyiti 保留道路 进化序列 B diyiti Description 给定n 根直的木棍,要从中选出6 根木棍,满足:能用这6 根木棍拼出一个 ...

  2. 第一届『Citric杯』NOIP提高组模拟赛 题解

    [官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...

  3. 津津的储蓄计划 NOIp提高组2004

    这个题目当年困扰了我许久,现在来反思一下 本文为博客园ShyButHandsome的原创作品,转载请注明出处 右边有目录,方便快速浏览 题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津\ ...

  4. 信息学奥赛一本通(C++版)NOIP提高组(1820-1829)

    信息学奥赛一本通(C++版)NOIP提高组目录 //1820 [题目描述] 我们可以用这样的方式来表示一个十进制数:将每个阿拉伯数字乘以一个以该数字所 处位置的(值减1)为指数,以10为底数的幂之和的 ...

  5. {小结}2016.6.11【初中部 NOIP提高组 】模拟赛C

    2016.6.11[初中部 NOIP提高组 ]模拟赛C No.1!!! 100+33.3+10+90=233.3 23333 1298. 牛棚(graze2.pas/c/cpp) 题解 1299. 洗 ...

  6. 2020.08.08【NOIP提高组】模拟:奶牛的图片 总结

    2020.08.08[NOIP提高组]模拟:奶牛的图片 总结 Description Farmer John希望给他的 N ( 1 ≤ N ≤ 100 , 000 ) N(1\leq N\leq100 ...

  7. NOIP 提高组 复赛 历年 试题

    NOIP 提高组  复赛  历年 试题 NOIP 2017 提高组 复赛  试题 https://wenku.baidu.com/view/70de9e29854769eae009581b6bd97f ...

  8. noip提高组初赛有感——

    本人第一次考试,感觉还好吧,误打误撞报了个提高组,觉得还是有点亏了(把普及组的脸甩在地上狠狠摩擦那种)..蒟蒻的我答后面的题时就开始困难了,但多选题答得还可以.考场有提前交卷的,大神总是很多呀- 不过 ...

  9. NOIP提高组1900~1909以及1986集合答案

    1900:[17NOIP提高组]时间复杂度时间限制: 1000 ms 内存限制: 262144 KB 提交数: 670 通过数: 287 [题目描述] 给出了他自己算出的时间复杂度,可他的编程老师实在 ...

最新文章

  1. 以下linux进程内存空间中按低地址,Linux 内核开发 - 进程空间
  2. Linux 删除文件夹和文件的命令(强制删除包括非空文件)
  3. python函数式编程读取数据时出现错误_写 Python 代码不可不知的函数式编程技术...
  4. express中response.js 提供的sendFile方法的调试
  5. 面试必考的网络协议相关题目应该如何回答
  6. Python爬虫入门四之Urllib库的高级用法
  7. CSS hr修改样式
  8. Linux使用Blowfish生成密码,linux批量生成密码
  9. python和按键精灵哪个稳定_按键精灵教程,学了这个你也能做出稳定的脚本
  10. Fedora 安装 WPS
  11. 等价类划分法测试用例设计举例
  12. [Qt笔记]设置VS2015下的应用工程图标
  13. 利用docker制作Java程序镜像
  14. 公司/企业如何管理?管理技巧是什么?《宁向东管理学课》音频资料免费下载
  15. 蓝桥杯——PWM / PWM定时器捕获频率和占空比
  16. KVM - 虚机内核配置
  17. C语言期末考试测试题及答案
  18. 机器学习:PR曲线及F1 score
  19. 中文地址的英文翻译方法
  20. 魔兽插件修改服务器名字,《私人定制》如何制作自己心仪的插件

热门文章

  1. outlook2016撤回已发出的邮件。
  2. 电脑回收站删除的文件怎么找回?
  3. Unity3d-制作粒子光环特效
  4. MyEclipse下的Project有红色感叹号
  5. php 电话号码归属地查询,电话号码归属地查询第三方接口
  6. ubuntu开机进入grub解决方法
  7. 搜索引擎中文网站提交登陆入口(09年完整汇总)
  8. 冬去春来,名悦集团分享的这些用车小知识你知多少
  9. 紫书时时阅,茶香几时成——铁观音茶香Muffin
  10. window 2003 系统启动时提示:STOP:c0000218 解决方法