博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
长春理工大学第十四届程序设计竞赛(重现赛)I
阅读量:6715 次
发布时间:2019-06-25

本文共 1395 字,大约阅读时间需要 4 分钟。

I.Fate Grand Order

题目链接:

题目:

Fate Grand Order是型月社发行的角色扮演类手机游戏,是著名的氪金抽卡"垃圾"手游。
小t是该手游的忠实厨力玩家,为了抽到喜欢的角色他特地氪金买了n颗圣晶石(3颗圣晶石可以抽卡1次)。
已知有m个抽卡活动会按时间顺序在游戏中举办,每个活动都会新推出一个角色,并且告诉你这m个角色的抽取概率,而每当首次成功抽到每个角色之后他会获得一定的开心值。
小t是一个有计划的男人,在第1个活动开始前他就会想好一个抽卡计划,抽卡计划决定哪些角色抽,哪些角色不抽;
小t也是一个贫穷的男人,对于每个选择抽卡的活动,他都只会抽一次,不管是否抽到都不会选择继续再在这个活动抽卡;
小t也是一个纠结的男人,每个角色他都很纠结是否要抽,总之他想让自己尽可能开心,所以小t求助于聪明的你,他想知道什么样的计划可以让开心值的期望最大。

输入描述:

第1行有2个整数n, m,圣晶石数量和活动数量(0<= n <=6000, 1<= m <=2000); 第2行有m个小数,表示每个活动角色的抽取概率p(0 <= p <= 1); 第3行有m个整数,表示每个活动角色抽到的话trx可获得的开心值x(0 <= x <= 10000)。

输出描述:

输出1行长度为m的01串,表示抽卡计划,其中0表示不抽,1表示抽。
示例1

输入

3 50.1 0.05 0.03 0.0001 0.9100 100 100 100 100

输出

00001

思路:

惭愧,这道题一开始我想的竟然还铤复杂的,错还不知道那儿错了,case 通过率为98%,总有一组数据过不去,气死人,后来换了一种思想:

直接结构体重载排序,顺便结构体记录一下下标,再用一个数组book初始化为0,要变成1的话,book[该下标]=1,利用book来输出01字符串。

 

#include
using namespace std;typedef long long ll;const int maxn=2e5+10;int book[maxn]={
0};struct happy{ int cun; double pin; int value; double last; bool operator<(happy const& other)const{ return last>other.last; }}happy[maxn];int main(){ int n,m; cin>>n>>m; for(int i=0;i
>happy[i].pin,happy[i].cun=i; for(int i=0;i
>happy[i].value,happy[i].last=happy[i].pin*happy[i].value; sort(happy,happy+m); int time=n/3; for(int i=0;i

 

 

转载于:https://www.cnblogs.com/Vampire6/p/10997215.html

你可能感兴趣的文章
android SQLite
查看>>
Apache for Load Banlance
查看>>
Sublime Text 2 快捷键用法大全
查看>>
放弃redis使用mongodb做任务队列支持增删改管理
查看>>
G口与S口的区别
查看>>
甲骨文拒绝SAP 2.72亿美元赔偿要求重审
查看>>
FLEX3中应用CSS完全详解手册
查看>>
Windows7添加usb3.0驱动
查看>>
模式——工程化实现及扩展(设计模式Java 版)
查看>>
如何干净的清除Slave同步信息
查看>>
Oracle动态采样学习
查看>>
借助开源工具高效完成Java应用的运行分析
查看>>
Transparent Huge Pages相关概念
查看>>
浅谈RAID和LVM
查看>>
初中高级LINUX运维所需具备技能
查看>>
从开发到测试
查看>>
ajax轮询
查看>>
ubuntu: System program problem detected 问题
查看>>
产品优化利器
查看>>
js,query 选择radio+选中select+checkbox选中
查看>>