F. Cards and Joy
题目大意:
给你n个人,每一个人恰好选k张牌。
第一行是 n 和 k
第二行有n*k个数,代表有n*k张牌,每张牌上的数字
第三行有n个数,代表第i个人喜欢的数字
第四行有k个数,代表有如果一个人可以拿到 i 张喜欢的牌,那么快乐值+h[i]
然后就是让你分配这些牌来找最大的欢乐值。
这个题目仔细想想就知道,因为这个h数组是递增的,所以我们就是要尽量把这个人喜欢的牌分配给她。
如果一种牌喜欢的人只有一个,那就把这个类型都给她,但是如果有很多人喜欢一样的牌,那就要合理分配使得x个人分配y张喜欢的牌使得欢乐值尽量大。
这个就是要dp了。
知道这个dp就很好d了。
dp[i][j] 表示i个人分配j张喜欢的牌,注意边界条件。
转移就是dp[i][j]=max(dp[i-1][j-x]+dp[1][x])
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <stack>
#include <bitset>
#include <vector>
#include <map>
#include <string>
#include <cstring>
#include <bitset>
#define inf 0x3f3f3f3f
using namespace std;
const int maxn=1e5+;
typedef long long ll;
ll dp[][];
int c[maxn],f[maxn],h[maxn];
int vis[maxn],cnt[maxn];
pair<int,int>pii[maxn];
int main(){
int n,k;
scanf("%d%d",&n,&k); for(int i=;i<=n*k;i++) scanf("%d",&c[i]),vis[c[i]]++;
for(int i=;i<=n;i++) scanf("%d",&f[i]),cnt[f[i]]++;
for(int i=;i<=k;i++) scanf("%d",&h[i]); sort(f+,f++n);
int len=unique(f+,f++n)-f-; int num=,peo=; for(int i=;i<=len;i++){
pii[i]=make_pair(vis[f[i]],cnt[f[i]]);
num=max(vis[f[i]],num);
peo=max(cnt[f[i]],peo);
}
for(int i=;i<=min(num,k);i++) dp[][i]=h[i];
for(int i=;i<=peo;i++){
for(int j=;j<=num;j++){
for(int x=;x<=min(j,k);x++){
dp[i][j]=max(dp[i][j],dp[i-][j-x]+dp[][x]);
// printf("dp[%d][%d]=%lld\n",i,j,dp[i][j]);
}
}
}
ll ans=;
for(int i=;i<=len;i++){
// printf("ww %d %d\n",pii[i].second,pii[i].first);
ans+=dp[pii[i].second][min(pii[i].first,pii[i].second*k)];
}
printf("%lld\n",ans);
return ;
}
F. Cards and Joy的更多相关文章
- Codeforces Round #490 (Div. 3) F - Cards and Joy
F - Cards and Joy 思路:比较容易想到dp,直接dp感觉有点难,我们发现对于每一种数字要处理的情况都相同就是有 i 张牌 要给 j 个人分, 那么我们定义dp[ i ][ j ]表示 ...
- Codeforces Round #490 (Div. 3) :F. Cards and Joy(组合背包)
题目连接:http://codeforces.com/contest/999/problem/F 解题心得: 题意说的很复杂,就是n个人玩游戏,每个人可以得到k张卡片,每个卡片上有一个数字,每个人有一 ...
- AtCoder Beginner Contest 247 F - Cards // dp + 并查集
原题链接:F - Cards (atcoder.jp) 题意: 给定N张牌,每张牌正反面各有一个数,所有牌的正面.反面分别构成大小为N的排列P,Q. 求有多少种摆放方式,使得N张牌朝上的数字构成一个1 ...
- Cards and Joy CodeForces - 999F (贪心+set)
There are nn players sitting at the card table. Each player has a favorite number. The favorite numb ...
- F.Cards with Numbers
链接:https://ac.nowcoder.com/acm/contest/908/F 题意: AFei has many cards. Each card has a number written ...
- Codeforces 999F Cards and Joy(二维DP)
题目链接:http://codeforces.com/problemset/problem/999/F 题目大意:有n个人,n*k张卡牌,每个人会发到k张卡牌,每个人都有一种喜欢的卡牌f[i],当一个 ...
- 999F Cards and Joy
传送门 题目大意 有n个人n*m张牌,每个人分m张牌.每个人有一个自己喜欢的数值,如果他的牌中有x张数值等于这个值则他的高兴度为L[x],求怎样分配牌可以使得所有人的总高兴度最大. 分析 我们发现每一 ...
- CoderForces999F-Cards and Joy
F. Cards and Joy time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- Codeforces Round #490 (Div. 3)
感觉现在\(div3\)的题目也不错啊? 或许是我变辣鸡了吧....... 代码戳这里 A. Mishka and Contes 从两边去掉所有\(≤k\)的数,统计剩余个数即可 B. Reversi ...
随机推荐
- Solr复杂查询一:函数查询
一.简介 Solr的函数可以动态计算每个文档的值,而不是返回在索引阶段对应字段的静态数值集.函数查询是一类特殊的查询,它可以像关键词一样添加到查询中,对所有文档进行匹配并返回它们的函数计算值作为文档得 ...
- 使用Network Emulator Toolkit工具模拟网络丢包测试(上)
弱网络测试包括延时和丢包二种场景下应用的功能是否正常: 网络延时测试使用Fiddler工具控制上下行数据传输延时时间来模拟网络延时场景: 网络丢包测试使用Network Emulator Toolki ...
- 【Java】【常用类】Object 基类 源码学习
源码总览: 有好些都是native本地方法,背后是C++写的 没有关于构造器的描述,默认编译器提供的无参构造 https://blog.csdn.net/dmw412724/article/detai ...
- Salesforce考试 | 如何维护我的Salesforce认证
问题1 Salesforce证书是需要每年维护吗? Salesforce每年会发布3次Realese,分别是Spring.Summer和Winter,可以理解为一年3次的系统新版本更新,每次Relea ...
- 关于MIME类型问题,浏览器请求到的资源是乱码
简介 我想很多同学都可能会遇到这样的问题,调用后台提共的静态资源服务api时,用浏览器打开发现却是一堆乱码.需要的是 JSON, 拿到的却是 xml,访问一个mp4的文件,浏览器直接下载.这一切的来源 ...
- ASP.Net内置对象之网页之间传参(二)
Session对象 运用于多个界面调用某一个特定的用户信息,也就是每个Session 对象是独立的,个不受影响. Session对象的读取和存储 Session[name]=”chen”; 可以用来界 ...
- Python中的可视化神器!你知道是啥吗?没错就是pyecharts!
pyecharts是一款将python与echarts结合的强大的数据可视化工具,本文将为你阐述pyecharts的使用细则 前言 我们都知道python上的一款可视化工具matplotlib,而前些 ...
- js上传文件前判断获取文件大小并且加以判断
描述:要求浏览器单个上传文件大小不超过10M. 解决方案: var fileSize = $("#fileId")[0].files[0].size/(1024*1024);if( ...
- PG TO Oracle 增量同步-外部表
背景 最近在负责公司数据Oracle转PG:老平台数据库:Oracle11g:新平台数据库:PostgreSQL12.由于平台统计规则有变动:所以正在推广的游戏数据无法全部迁移过来:只能在老平台上运行 ...
- h5前端animate等js特效问题汇总
1.jq中的animate不要重复大量使用,会导致内存溢出或泄漏,很直观的现象就是手机发热太严重: 2.input 的button类型的去掉默认样式并换颜色: -webkit-appearance:n ...