牛客网 【每日一题】5月11日题目精讲 Moovie Mooving

题目链接

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

Bessie is out at the movies. Being mischievous as always, she has
decided to hide from Farmer John for L (1 <= L <= 100,000,000)
minutes, during which time she wants to watch movies continuously. She
has N (1 <= N <= 20) movies to choose from, each of which has a
certain duration and a set of showtimes during the day. Bessie may
enter and exit a movie at any time during one if its showtimes, but
she does not want to ever visit the same movie twice, and she cannot
switch to another showtime of the same movie that overlaps the current
showtime. Help Bessie by determining if it is possible for her to
achieve her goal of watching movies continuously from time 0 through
time L. If it is, determine the minimum number of movies she needs to
see to achieve this goal (Bessie gets confused with plot lines if she
watches too many movies).

输入描述:

The first line of input contains N and L. The next N lines each
describe a movie. They begin with its integer duration, D (1 <= D <=
L) and the number of showtimes, C (1 <= C <= 1000). The remaining C
integers on the same line are each in the range 0…L, and give the
starting time of one of the showings of the movie. Showtimes are
distinct, in the range 0…L, and given in increasing order.

输出描述:

A single integer indicating the minimum number of movies that Bessie
needs to see to achieve her goal. If this is impossible output -1
instead.

示例1
输入

4 100
50 3 15 30 55
40 2 0 65
30 2 20 90
20 1 0

输出

3

备注:
Bessie should attend the first showing of the fourth movie from time 0
to time 20. Then she watches the first showing of the first movie
from time 20 to time 65. Finally she watches the last showing of the
second movie from time 65 to time 100.

题意:

有n部电影,第i个电影时长为ai,有b个播放电影的时间,
每个电影只能看一次,且在看一部电影的过程中,不能换到另一个正在播放相同电影的放映厅。
问能不能在0~L的过程中连续不断的观看电影?如果能,最少看几部

题解:

dp问题
但是看看L的范围1≤L≤100,000,000,是个状态压缩dp
dp[a]表示在a的状态下最多可以在影院里看多长时间电影。
a是一个01串,0表示当前电影没看,1表示当前电影看过
a初始全为0,在状态转移过程中,我们要在a中找一个没看过的(值为0)且放映时间尽可能往后(但要在上一个点的电影结束之前放映或者正好衔接)
因为我们要求所看电影尽可能少,其实就是尽可能少出反应厅,或者刚从一个电影厅出来,进一个刚刚开始放映的电影,这样待的时间最长,不用频繁出来看其他电影,所以就要选所看电影的放映时间尽可能往后

因为a是一个二分串,当时间超过l时,我们可以直接查询当前状态二进制有多少1,也就是多少电影
起始时间的查找需要用二分

本人理解,不知道对不对
查询二进制多少个1可以自定义函数,也可以用__builtin_popcount(i), 这个函数是返回二级制i中1的个数
我看好多人都在用这个

代码:

#include <bits/stdc++.h>
using namespace std;
const int maxn = 30;
int a[maxn];
vector<int> G[maxn];
int ans=30; 
int dp[1 << maxn];
int n,l;
int sum(int x)
{int ans=0;while(x){if(x){ans++;}x>>=1;}return ans;
}
int main()
{cin>>n>>l;for(int i=0;i<n;++i){cin>>a[i];cin>>m;for(int j=0;j<m;j++){int x;cin>>x;G[i].push_back(x);}}for(int i=1;i<(1<<n);++i){for(int j=0;j<n;++j) {if(i&(1<<j)) {int w=i^(1<<j);int pos=upper_bound(G[j].begin(),G[j].end(),dp[w])-G[j].begin()-1;if (pos){dp[i]=max(dp[i],G[j][it]+a[j]);}}}//   if(dp[i]>=l) ans=min(ans,__builtin_popcount(i)); if(dp[i]>=l) {ans=min(ans,sum(i)); }if(ans==30)ans=-1; cout<<ans;return 0;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320136.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AspNetCore中使用Ocelot之 IdentityServer4

前言&#xff1a;Ocelot网关是基于AspNetCore开发的可扩展的高性能的企业级Api网关&#xff0c;目前已经基于2.0 升级版本升级&#xff0c;在使用AspNetCore 开发的时候可以使用2.0版本了&#xff0c;开源项目Ocelot 张大队长是主力的参与人员&#xff0c;以前提起张大队前面都…

P3177-[HAOI2015]树上染色【树形dp】

正题 题目链接:https://www.luogu.com.cn/problem/P3177 题目大意 nnn个点的一棵树&#xff0c;将kkk个点染成黑色&#xff0c;其他是白色&#xff0c;使得黑点之间和白点之间两两距离和最大。 解题思路 也是统计每条边的贡献&#xff0c;设fx,if_{x,i}fx,i​表示节点xxx的子…

Nginx主配置文件详解【笔记】

1 Nginx配置文件目录结构 最近使用Nginx做负载均衡&#xff0c;顺便整理Nginx配置文件笔记如下所述&#xff0c;本文主要梳理主配置文件各属性的作用。使用yum安装好Nginx后&#xff0c;可以在默认路径&#xff08;/etc/nginx&#xff09;看到如下配置文件。 /etc/nginx/ ├─…

【矩阵乘法】Quad Tiling(poj 3420)

Quad Tiling poj 3420 题目大意 在一个4n的棋盘上&#xff0c;用12的多米诺骨牌把他填满&#xff0c;问有多少种方法 输入样例 1 10000 3 10000 5 10000 0 0 输出样例 1 11 95数据范围 1⩽N⩽1091 \leqslant N \leqslant 10^91⩽N⩽109 0<M⩽1050 < M \leqslant 10…

牛客网 【每日一题】5月12日题目精讲 模拟战役

链接&#xff1a; 文章目录题目描述题解&#xff1a;时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld题目描述 齐齐和司机在玩单机游戏《红色警戒IV》&#xff0c;现在他们的游戏地图被划…

微服务介绍及Asp.net Core实战项目系列之微服务介绍

0、目录整体架构目录&#xff1a;ASP.NET Core分布式项目实战-目录一、微服务选型在做微服务架构的技术选型的时候&#xff0c;以“无侵入”和“社区活跃”为主要的考量点&#xff0c;将来升级为原子服务架构、量子服务架构的时候、甚至恢复成单体架构的时候&#xff0c;代价最…

P3349-[ZJOI2016]小星星【树形dp,容斥】

正题 题目链接:https://www.luogu.com.cn/problem/P3349 题目大意 nnn个点的一棵树&#xff0c;再给出一张图&#xff0c;树上每个点对应图上每个点后要求树上的边图上都有&#xff0c;求有多少种对应方式。 解题思路 由于题目要求每个点只出现一次就加大了难度&#xff0c;可…

【矩阵乘法】生成树计数(luogu 2109/NOI 2007)

生成树计数 luogu 2109 题目大意 有n个排成一列的点&#xff0c;把距离不超过k的点之间连边&#xff0c;问这个图的生成树个数 输入样例 3 5输出样例 75样例说明 样例对应的图如下&#xff1a; 数据范围 解题思路 因为n十分大&#xff0c;不能直接2^m暴力枚举&#x…

[XSY] PQ树(区间DP)

PQ树 对于非叶子节点&#xff0c;它只能调换它的儿子的顺序&#xff0c;却不能调换整颗子树的顺序合法的PQ树都能表示出1,2,3,…,n 这个排列由以上两点可以得出&#xff1a;PQ树的每棵子树对应的一定都是一段连续的数字区间考虑区间DP&#xff0c;设f(l,r)f(l,r)f(l,r)表示数字…

牛客网 【每日一题】5月14日题目 maze

链接&#xff1a; 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld题目描述 小明来到一个由n x m个格子组成的迷宫&#xff0c;有些格子是陷阱&#xff0c;用’#‘表示&#xff0c;小明…

你需要知道的这几种 asp.net core 修改默认端口的方式

一般情况下&#xff0c;aspnetcore发布后的默认端口是5000&#xff0c;这个大家都知道&#xff0c;而且默认骨架代码中没有看到任何让你输入的ip地址和端口号&#xff0c;但作为程序员的我们&#xff0c;不希望被框架所管制&#xff0c;那如何实现默认端口的修改呢&#xff1f;…

CF1139D-Steps to One【期望dp,莫比乌斯反演】

正题 题目链接:https://www.luogu.com.cn/problem/CF1139D 题目大意 不停的在表格中填下1∼m1\sim m1∼m中随机一个数&#xff0c;直到所有数的gcd1gcd1gcd1为止&#xff0c;求期望数的个数。 解题思路 设fnf_nfn​表示现在gcdgcdgcd为nnn时的期望个数。那么有转移方程fn∑i…

【DP】错排问题(ybtoj DP-1-1)

错排问题 ybtoj DP-1-1 题目大意 求n个数的错排种数 输入样例 2输出样例 1数据范围 1⩽n⩽201\leqslant n \leqslant 201⩽n⩽20 解题思路 设fif_ifi​为i个数的错排种数 考虑第i个数能放在前面i-1个位置的其中一个&#xff08;i-1种选法&#xff0c;要乘i-1&#xff0…

牛客网【每日一题】5月15日题目 储物点的距离

链接&#xff1a; 文章目录题目描述题解&#xff1a;代码&#xff1a;时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format: %lld题目描述 一个数轴&#xff0c;每一个储物点会有一些东西&#x…

[XSY] 最长公共子串对(后缀自动机)

最长公共子串对 先放一段考场暴力代码&#xff1a; #include<iostream> #include<cstdio> #include<cstring> using namespace std; char a[2005],b[2005]; int na,nb,f[2005][2005],c[2005][2005],ans; //f[i][j]表示 s[1...i]与 t[1...j]以s[i]、t[j]结尾…

P3911-最小公倍数之和【莫比乌斯反演】

正题 题目链接:https://www.luogu.com.cn/problem/P3911 题目大意 给出数列AAA求∑i1n∑j1nlcm(Ai,Aj)\sum_{i1}^n\sum_{j1}^nlcm(A_i,A_j)i1∑n​j1∑n​lcm(Ai​,Aj​) 解题思路 设cic_ici​表示AjiA_jiAj​i的个数&#xff0c;然后答案就是&#xff08;下面n5e4n5e4n5e4&…

【DP】奇怪汉诺塔(ybtoj DP-1-2)

奇怪汉诺塔 ybtoj DP-1-2 题目大意 求四根柱子的汉诺塔问题 输出 共12行 每行输出第一根柱子有i个圆盘的最小步数 解题思路 设aia_iai​表示三根柱子&#xff0c;第一根柱子有i个圆盘的步数 很显然是先移i-1个到第二根&#xff0c;再移最大的到第三根&#xff0c;再把i-…

牛客网【每日一题】5月18日 「土」秘法地震

链接&#xff1a; 文章目录题目描述题解&#xff1a;代码&#xff1a;时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 帕秋莉掌握了一种土属性魔法 这种魔法可以在一片kk大小…

AspNetCore 中使用 InentityServer4(2)

基于上一篇文章 实现对IdnetityServer4 服务的使用1&#xff1a;添加接口解决方案&#xff0c;并且使接口受认证服务的保护&#xff1a;首先在解决方案中添加Api项目如下图所示&#xff1a;在API项目中添加Nuget 引用 如下图所示&#xff1a;Install-Package IdentityServer4.A…

[XSY] 宝藏(LCS,DP)

宝藏 首先&#xff0c;这个问题等价于给定两个字符串S,T &#xff0c;每次询问LCS(S[1,n],T[x,y])LCS(S[1,n],T[x,y])LCS(S[1,n],T[x,y])。 对每个询问重新求一遍LCSLCSLCS显然不现实&#xff0c;又因为yyy都是连续变化的&#xff0c;我们考虑探讨 LCS(S[1,n],T[x,y])与LCS(S[…