[CF1854E] Game Bundles
题目描述
Rishi is developing games in the 2D metaverse and wants to offer game bundles to his customers. Each game has an associated enjoyment value. A game bundle consists of a subset of games whose total enjoyment value adds up to $ 60 $ .
Your task is to choose $ k $ games, where $ 1 \leq k \leq 60 $ , along with their respective enjoyment values $ a_1, a_2, \dots, a_k $ , in such a way that exactly $ m $ distinct game bundles can be formed.
输入格式
The input is a single integer $ m $ ( $ 1 \le m \le 10^{10} $ ) — the desired number of game bundles.
输出格式
The first line should contain an integer $ k $ ( $ 1 \le k \le 60 $ ) — the number of games.
The second line should contain $ k $ integers, $ a_1, a_2, \dots, a_k $ ( $ 1 \le a_1, a_2, \dots, a_k \le 60 $ ) — the enjoyment values of the $ k $ games.
首先对于一个选择的集合,大于 30 的数最多只会选择一次。
所以考虑随机一个只由小于等于 30 的数组成的数列,然后在后面增加大于 30 的数。
首先想到到不断在后面增加小于等于 30 的数。每增加一个就是一下可不可以跑出来答案。
怎么试呢?定义 \(dp_i\) 为组成 \(i\) 的方案数,那么增加某一个大于 30 的数 \(x\) 增加的方案数是 \(dp_{60-x}\)。把所有的 dp 值从大到小排序后,能选就选。
然后发现这种方式凑出来的 \(m\) 不能超过 \(10^8\),但是正确率很高。
考虑为什么凑出来方案数太少,这是因为小于 30 的数重复的太少。
枚举一个 \(lim\),然后新增的时候强制序列中的数不超过 \(lim\),就能过了。
#include<bits/stdc++.h>
using namespace std;
int a[65],id[65];
long long n,m,dp[65];
int T,fl;
mt19937 gen(time(0));
int cmp(int x,int y)
{
return dp[x]>dp[y];
}
int main()
{
scanf("%lld",&n);
while(1)
{
for(int j=30;j;j--)
{
memset(dp,0,sizeof(dp));
dp[0]=1;
for(T=1;T<=60;T++)
{
a[T]=gen()%j+1;
for(int i=60;i>=a[T];i--)
dp[i]+=dp[i-a[T]];
if(dp[60]>n)
break;
m=n-dp[60],fl=T;;
// printf("%d\n",m);
for(int i=0;i<=29;i++)
id[i]=i;
sort(id,id+30,cmp);
for(int i=0;i<=29;i++)
{
while(fl<=60&&m>=dp[id[i]])
a[++fl]=60-id[i],m-=dp[id[i]];
}
if(!m&&fl<=60)
{
printf("%d\n",fl);
for(int i=1;i<=fl;i++)
printf("%d ",a[i]);
exit(0);
}
}
}
}
}
[CF1854E] Game Bundles的更多相关文章
- ERROR ITMS-90167: "No .app bundles found in the package"错误
ERROR ITMS-90167: "No .app bundles found in the package" 出现如上错误请查检以下2个方向: 1.macOS Sierra 1 ...
- Using Script and Style Bundles【翻译】
遇到个MVC4中的bundles的问题,问了别人,由于不熟悉MVC4,始终问不到点子上,所以自己就翻译了下资料,搞明白了这个VS显示正常IIS显示异常的小问题,申明我翻译的很烂,不过共享出来或许会帮到 ...
- 基于MVC4+EasyUI的Web开发框架经验总结(11)--使用Bundles处理简化页面代码
在Web开发的时候,我们很多时候,需要引用很多CSS文件.JS文件,随着使用更多的插件或者独立样式文件,可能我们的Web界面代码会越来越臃肿,看起来也很累赘,在MVC里面提供了一个Bundle的对象, ...
- Xcode安装插件,错误选择了Skip Bundles,重新出现Load Bundles方法
Xcode安装插件经常会遇到这样的问题,出现提示性选择,还是英文提示,所以没仔细看就习惯性的选择了右侧的按钮 点击了Skip Bundle,结果悲剧的发现,发现插件完全失效了,以后不管怎么打开Xcod ...
- ASP.NET 5中的ASP.NET Bundles跑到哪里去了?
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 众所周知,在ASP.NET MVC中很早就存在一个所谓的"bundling and ...
- ASP.NET MVC学习笔记-----Bundles
在网页中,我们经常需要引用大量的javascript和css文件,在加上许多javascript库都包含debug版和经过压缩的release版(比如jquery),不仅麻烦还很容易引起混乱,所以AS ...
- ASP.NET MVC4中的bundles特性引发服务器拒绝访问(403错误)
在ASP.NET MVC4中微软引入了bundles特性,这个特性可以将服务器端的多个Javascript或多个css文件捆绑在一起作为一个单一的URL地址供客户端浏览器调用,从而减少了页面上Http ...
- MVC5 Bundles发布到IIS失效问题解决方案
MVC中Bundles可以提高代码的可重用性 我每个页面都需要用到这十几个JS+CSS 当我把MVC发布到服务器以后,Bundles中的JS和CSS会失效的时候 宝宝的心里是崩溃的.... 查了很多资 ...
- MVC bundles
Bundles用于打包CSS和javascript脚本文件,优化对它们的组织管理.显示模式则允许我们为不同的设备显示不同的视图. 减少请求数量和带宽,当然在开发调试时一般不开启.
- Bundles
Bundles 接着在Global.asax文件的Application_Start方法中调用BundleConfig.RegisterBundles方法: protected void Applic ...
随机推荐
- 表格JS实现在线Excel的附件上传与下载
摘要:本文由葡萄城技术团队于博客园原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 在本地使用Excel时,经常会有需要在Excel中添加一 ...
- 历时数月钻研推流/对比各种流媒体服务程序/PK总结
1 前言 大量测试下来,网页显示视频流实时性从高到低依次是 webrtc > ws-flv > flv > hls.播放器打开rtsp/rtmp视频流实时性由具体的播放器控制,比如缓 ...
- 基于Supabase开发公众号接口
在<开源BaaS平台Supabase介绍>一文中我们对什么是BaaS以及一个优秀的BaaS平台--Supabase做了一些介绍.在这之后,出于探究的目的,我利用一些空闲时间基于Micros ...
- xv6 中的进程切换:MIT6.s081/6.828 lectrue11:Scheduling 以及 Lab6 Thread 心得
絮絮叨 这两节主要介绍 xv6 中的线程切换,首先预警说明,这节课程的容量和第 5/6 节:进程的用户态到内核态的切换一样,细节多到爆炸,连我自己复习时都有点懵,看来以后不能偷懒了,学完课程之后要马上 ...
- Linux下Python环境安装
Linux通常都附带Python环境,但是Linux附带的大多数Python都是2.7.5版本.如果我们想使用Python3或者Anaconda3,最好安装一个新的Python3环境,但不要尝试删除P ...
- 解决Promise的多并发问题
提起控制并发,大家应该不陌生,我们可以先来看看多并发,再去聊聊为什么要去控制它 多并发一般是指多个异步操作同时进行,而运行的环境中资源是有限的,短时间内过多的并发,会对所运行的环境造成很大的压力,比如 ...
- 利用SpringBoot项目做一个Mock挡板;基于事件发布动态自定义URL和响应报文
导入SpringbootWEb依赖 <!--web项目驱动--> <dependency> <groupId>org.springframework.boot< ...
- 为什么 Rust 备受开发者青睐?
引子 作为一名敏锐的前端开发者,您可能早已对 Rust 有所耳闻,毕竟近几年,使用 Rust 开发的前端构建工具每经发布,其卓越的性能数据总是能带来社区的一阵惊叹. 图片来源:https://swc. ...
- C语言存储类别
对于C语言中的变量,存储类别可分为4种:auto(自动存储).static(静态存储).register(寄存器存储).extern(外部存储). auto自动存储 函数中的局部变量,如果不专门声明为 ...
- Apache协议原文及中文翻译
Apache协议原文及中文翻译 参考链接 原文 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TER ...