买彩票
来源:互联网 发布:大雨还在下网络歌手 编辑:程序博客网 时间:2024/04/29 14:07
【问题描述】
电视里面正放着“抽百万大奖,赢幸福生活”的宣传广告,bird 看后也想去试试手气,
当然,作为经济学院的高材生,他可不屑只是单纯地去碰运气。经过他的一番分析,发现,
商家在彩票里面做了手脚,使得每个抽奖点的中奖概率不是完全一样的,而且随着时间的变
化而变化,不过这种变化是有规律的。对于第1 个抽奖点,最开始的中奖概率是百万分之
Pi,以后每抽一张彩票后都要重新排队,花费的时间是T 分钟,每抽一次减少的概率为Di。
由于可怜的bird 还有一大堆的作业没做,他只能抽出H 个小时去买彩票。由于抽奖地
点都在一路公共汽车的线路上,所以怕麻烦的bird 决定按车站顺序抽奖,当然,bird 可以从
任意一站开始抽奖,对于经过的抽奖点可以买彩票,也可以不买。假设从第i 个抽奖点到第
i+l 个抽奖点需要坐Ci 分钟的汽车。
Bird 希望能在有限的H 个小时内获得最好的运气——抽奖的概率和最大。
【输入】
第一行为一个整数n,表示抽奖点的个数,l≤n≤200
第二行是两个整数H 和T,1≤H≤10,1T≤60。
接下来的n 行,每行3 个整数,分别是Pi,Di,Ci(Cn=0)。l≤Pi≤10000,Di≤Pi,l≤C1
≤600。
【输出】
文件仅有一行,为一个整数,即抽奖概率和的最大值。
【输入输出样例】
2
1 20
200 100 10
【样例说明】
首先,bird 从l 号开始抽奖,花费20 分钟,得到概率200,然后坐车到2 号,花费
电视里面正放着“抽百万大奖,赢幸福生活”的宣传广告,bird 看后也想去试试手气,
当然,作为经济学院的高材生,他可不屑只是单纯地去碰运气。经过他的一番分析,发现,
商家在彩票里面做了手脚,使得每个抽奖点的中奖概率不是完全一样的,而且随着时间的变
化而变化,不过这种变化是有规律的。对于第1 个抽奖点,最开始的中奖概率是百万分之
Pi,以后每抽一张彩票后都要重新排队,花费的时间是T 分钟,每抽一次减少的概率为Di。
由于可怜的bird 还有一大堆的作业没做,他只能抽出H 个小时去买彩票。由于抽奖地
点都在一路公共汽车的线路上,所以怕麻烦的bird 决定按车站顺序抽奖,当然,bird 可以从
任意一站开始抽奖,对于经过的抽奖点可以买彩票,也可以不买。假设从第i 个抽奖点到第
i+l 个抽奖点需要坐Ci 分钟的汽车。
Bird 希望能在有限的H 个小时内获得最好的运气——抽奖的概率和最大。
【输入】
第一行为一个整数n,表示抽奖点的个数,l≤n≤200
第二行是两个整数H 和T,1≤H≤10,1T≤60。
接下来的n 行,每行3 个整数,分别是Pi,Di,Ci(Cn=0)。l≤Pi≤10000,Di≤Pi,l≤C1
≤600。
【输出】
文件仅有一行,为一个整数,即抽奖概率和的最大值。
【输入输出样例】
2
1 20
200 100 10
300 200 0
【样例说明】
首先,bird 从l 号开始抽奖,花费20 分钟,得到概率200,然后坐车到2 号,花费
10 分钟,再花20 分钟得到概率300,概率和是500,花费50 分钟。
枚举起点和终点,再模拟。
#include <iostream>#include <cstring>#include <algorithm>#include <cstdio>#include <cmath>#include <queue>using namespace std;#define maxn 500int H,T;int n;int p[maxn],tmp[maxn],d[maxn],c[maxn],use[maxn];int suan(int s,int t){ int mp,mv,i,times,flag; times=0; mv=0; for(int i=s;i<t;i++) { tmp[i]=p[i]; times+=d[i]; } tmp[t]=p[t]; if(times>=H) { return 0; } times=(H-times)/T; while(times) { int ma=0; for(int i=s;i<=t;i++) { if(tmp[i]>ma) { ma=tmp[i]; flag=i; } } if(ma==0) { break; } mv+=ma; tmp[flag]-=c[flag]; times--; } return mv;}int main(){ freopen("ticket.in","r",stdin); freopen("ticket.out","w",stdout); scanf("%d",&n); scanf("%d%d",&H,&T); for(int i=1;i<=n;i++) { scanf("%d%d%d",&p[i],&c[i],&d[i]); } H=H*60; int ans=0; for(int i=1;i<=n;i++) { for(int j=i;j<=n;j++) { ans=max(ans,suan(i,j)); } } printf("%d\n",ans); return 0;}/*21 20200 100 10300 200 0*/
0 0
- 买彩票
- 买彩票的学问
- 起码买张彩票。。。。
- 买彩票啦
- 如何买世界杯决赛彩票
- 网上彩票停售,网上不能买彩票?
- 今天应该去买彩票的~
- 想发财还是买彩票吧
- 到底要不要买彩票,纠结了
- 买彩票-36随机选择7位数
- 给喜欢买彩票的筒子们看的代码
- 经济萧条的时代下,买彩票减压可行吗?
- TopCoder——Lottery(买彩票问题)
- 别把自己唯一的人生当作买彩票
- 彩票
- 彩票
- 彩票
- 彩票
- FZU - 2064 找位置
- SQLiteDatabase中query、insert、update、delete方法参数说明
- 富有哲理的语句收集
- 菜鸟学51单片机之----在笔记本上模拟PC和51串口通信1
- lightoj 1428 Melody Comparison 后缀数组
- 买彩票
- 带倒影的wpf字体.
- 动态联编
- wpf动画总结:
- IOS学习笔记32—使用Storyboard实现复杂界面
- Linux驱动中,probe函数何时被调用
- 平面计算几何模版集合
- vs2003快捷键
- 6 个重构方法可帮你提升 80% 的代码质量