Kick Start 2019 Round F Teach Me
题目大意
有 $N$ 个人,$S$ 项技能,这些技能用 $1, 2, 3, \dots, S$ 表示 。第 $i$ 个人会 $c_i$ 项技能($ 1 \le c_i \le 5 $)。对于两个人 $i$, $j$,若 $i$ 会某项技能而 $j$ 不会,则称 $i$ 可以辅导 $j$ 。试问有多少个有序数对 $(i, j)$ 满足 $i$ 可以辅导 $j$ 。
数据范围
- 多组测试数据(不超过 100 组)
- $ 2 \le N \le 5 \times 10^4 $
- $ 1 \le S \le 1000 $
- Time limit: 20 s
- Memory limit: 1 GB
分析
考虑 $i$ 不能辅导 $j$,即 $i$ 的技能集是 $j$ 的技能集的子集(凡是 $i$ 会的 $j$ 都会)。
固定 $i$,我们来求满足 $i$ 不能辅导 $j$ 的二元组 $(i, j)$ 的数量。
枚举 $i$ 的技能集的非空子集 $t$,计算技能集等于 $t$ 的人有多少个。
实现
用 std::vector<int>
表示技能集,用 std::map<std::vector<int>>, int>
统计人数;结果在大数据上超时了。
虽然至少 std::map
常数大,但是看到时限是 20 秒就没太在意。除此之外,还有其他几处可以优化的地方,不过,超时主要是因为 std::map
。
本来能打进前 30 名的,太可惜了。这道题是最后写的,提交时距离比赛结束还有 72 分钟
Kick Start 2019 Round F Teach Me的更多相关文章
- Kick Start 2019 Round A Contention
$\DeclareMathOperator*{\argmax}{arg\,max}$ 题目链接 题目大意 一排 $N$ 个座位,从左到右编号 $1$ 到 $N$ . 有 $Q$ 个预定座位的请求,第 ...
- kick start 2019 round D T3题解
---恢复内容开始--- 题目大意:共有N个房子,每个房子都有各自的坐标X[i],占据每个房子需要一定花费C[i].现在需要选择K个房子作为仓库,1个房子作为商店(与题目不同,概念一样),由于仓库到房 ...
- kick start 2019 round D T2题解
题目大意:由N个房子围成一个环,G个人分别顺时针/逆时针在房子上走,一共走M分钟,每分钟结束,每个人顺/逆时针走到相邻的房子.对于每个房子都会记录最后时刻到达的人(可能是一群人).最终输出每个人会被几 ...
- Kick Start 2019 Round H. Elevanagram
设共有 $N = \sum_{i=1}^{9} A_i$ 个数字.先把 $N$ 个数字任意分成两组 $A$ 和 $B$,$A$ 中有 $N_A = \floor{N/2}$ 个数字,$B$ 中有 $N ...
- Kick Start 2019 Round A Parcels
题目大意 $R \times C$ 的网格,格子间的距离取曼哈顿距离.有些格子是邮局.现在可以把至多一个不是邮局的格子变成邮局,问每个格子到最近的邮局的曼哈顿距离的最大值最小是多少. 数据范围 $ 1 ...
- Kick Start 2019 Round B Energy Stones
对我很有启发的一道题. 这道题的解法中最有思维难度的 observation 是 For simplicity, we will assume that we never eat a stone wi ...
- 【DP 好题】Kick Start 2019 Round C Catch Some
题目链接 题目大意 在一条数轴上住着 $N$ 条狗和一个动物研究者 Bundle.Bundle 的坐标是 0,狗的坐标都是正整数,可能有多条狗住在同一个位置.每条狗都有一个颜色.Bundle 需要观测 ...
- Kick Start 2019 Round D
X or What? 符号约定: $\xor$ 表示异或. popcount($x$) 表示非负整数 $x$ 的二进制表示里数字 1 出现的次数.例如,$13 = 1101_2$,则 popcount ...
- Google Kick Start 2019 C轮 第一题 Wiggle Walk 题解
Google Kick Start 2019 C轮 第一题 Wiggle Walk 题解 题目地址:https://codingcompetitions.withgoogle.com/kickstar ...
随机推荐
- Sql Server 基本使用
一.登录sql server数据库 1.若需要连接本机数据库服务器,服务器名可以采用“local”.“.”“本机Ip”. 2.在连接sql server 之前,确保sql server服务已经启动,如 ...
- Nginx-rtmp点播之complex handshake
1. 点播的配置 假设配置文件 nginx.conf 中对 rtmp 配置如下: # 创建的子进程数 worker_processes 1; #error_log logs/error.log; er ...
- ubuntu下apt-get 命令参数
转载:https://blog.csdn.net/linuxzhouying/article/details/7192612 ubuntu下apt-get 命令参数 常用的APT命令参数 apt-ca ...
- CentOS7——卡在在启动界面
系统在启动时,卡在启动界面比如: 解决方法一 这个时候其实系统已经启动了,如果这台机器之前正确配置好了网络连接的话,此时我们可以使用另外一台机器通过SSH来登录这台机器进行修改. 这个时候将系统出问题 ...
- OSI的七层模型和TCP/IP的五层模型
OSI七层模型: 应用层->表示层->会话层->传输层->网络层->数据链路层->物理层 TCP/IP五层模型: 应用层->传输层->网络层->数 ...
- SUSE系列---修改IP和hosts文件
有些时候我们需要修改linux系统的IP,此时我们要注意,修改IP之后,如果我们如果不修改hosts文件,那么可能我们一些服务会无法使用:下面分别记录修改IP和hosts文件的方法: 修改IP: 打开 ...
- LC 763. Partition Labels
A string S of lowercase letters is given. We want to partition this string into as many parts as pos ...
- springboot实现内存缓存
题记:实现缓存大部分可以使用redis实现,简单.便捷,redis在针对应用部署多服务器是很好的,但如果针对单一服务器,内存缓存更好. 1.创建CacheLoader.java import java ...
- hashcat 密码破解工具 使用教程
日期:2019-08-16 15:03:12 更新: 作者:Bay0net 介绍:记录一下 hashcat 的使用命令 0x01.Install Hashcat Wiki - FAQ Github - ...
- jenkins凭证与新建任务
一.凭证介绍 有许多第三方网站和应用程序可以与 Jenkins 进行交互,例如程序代码仓库,云存储系统和服务等. 此类应用程序的系统管理员可以在应用程序中配置凭证以专供 Jenkins 使用.通常通过 ...