[loj6039]「雅礼集训 2017 Day5」珠宝 dp+决策单调性+分治
我们设dp[i][j]表示考虑所有价值小于等于i的物品,带了j块钱的最大吸引力。
对于ci相同的物品,我们一定是从大到小选k个物品,又发现最大的k个的价值在k变大的时候增长率是单调减的。
同时对于同样的ci,被转移和转移到的状态mod ci同余。
这些dp值也具有单调性,因此这个dp具有决策单调性。
我们用分治优化转移。负责度O(c*k*logk)
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<vector>
#define maxn 305
#define maxk 50005
#define ll long long
using namespace std;
inline int read() {
int x=,f=;char ch=getchar();
for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-;
for(;isdigit(ch);ch=getchar()) x=x*+ch-'';
return x*f;
}
ll n,k,sz[maxn],pre=,now=;
ll dp[][maxk],g[][maxk];
vector<ll> q[maxn];
bool cmp(ll a,ll b) {return a>b;}
void solve(int l,int r,int ql,int qr,int x,int SZ) {
if(l>r||ql>qr) return;
int mid=ql+qr>>,minmid=-;ll val=;
for(int i=max(l,mid-SZ);i<mid&&i<=r;i++) {
if(minmid==-||g[][i]+q[x][mid-i-]>val) {
val=g[][i]+q[x][mid-i-];minmid=i;
}
}
g[][mid]=val;
// if(minmid==-1) minmid=l;
solve(l,minmid,ql,mid-,x,SZ);solve(minmid,r,mid+,qr,x,SZ);
}
int main() {
n=read(),k=read();
for(int i=;i<=n;i++) {
int x=read(),y=read();
q[x].push_back(y);sz[x]++;
}
for(int i=;i<=;i++) {
if(!sz[i]) continue;
sort(q[i].begin(),q[i].end(),cmp);
for(int j=;j<sz[i];j++) q[i][j]+=q[i][j-];
for(int j=;j<i;j++) {
int p=j,bk=;
for(;p<=k;p+=i,bk++) g[][bk]=dp[pre][p];
solve(,bk-,,bk-,i,sz[i]);
p=j,bk=;
for(;p<=k;p+=i,bk++) dp[now][p]=max(g[][bk],g[][bk]);
}
swap(now,pre);
}
for(int i=;i<=k;i++) printf("%lld ",dp[pre][i]);
}
[loj6039]「雅礼集训 2017 Day5」珠宝 dp+决策单调性+分治的更多相关文章
- LOJ6039. 「雅礼集训 2017 Day5」珠宝【决策单调性优化DP】【分治】【思维好题】
LINK 懒得搬题面 简要题意:n个物品,每个物品有一个价格和一个吸引力,问你对于\(i \in [1,k]\),花费i的价格能得到的最大吸引力 其中价格的范围很小,在\([1,300]\)范围内 思 ...
- 「雅礼集训 2017 Day5」珠宝
题目描述 Miranda 准备去市里最有名的珠宝展览会,展览会有可以购买珠宝,但可惜的是只能现金支付,Miranda 十分纠结究竟要带多少的现金,假如现金带多了,就会比较危险,假如带少了,看到想买的右 ...
- [LOJ#6039].「雅礼集训 2017 Day5」珠宝[决策单调性]
题意 题目链接 分析 注意到本题的 \(C\) 很小,考虑定义一个和 \(C\) 有关的状态. 记 \(f(x,j)\) 表示考虑到了价格为 \(x\) 的物品,一共花费了 \(j\) 元的最大收益. ...
- @loj - 6039@ 「雅礼集训 2017 Day5」珠宝
目录 @description@ @solution@ @accpeted code@ @details@ @description@ Miranda 准备去市里最有名的珠宝展览会,展览会有可以购买珠 ...
- loj #6039 「雅礼集训 2017 Day5」珠宝 分组背包 决策单调性优化
LINK:珠宝 去年在某个oj上写过这道题 当时懵懂无知wa的不省人事 终于发现这个东西原来是有决策单调性的. 可以发现是一个01背包 但是过不了 冷静分析 01背包的复杂度有下界 如果过不了说明必然 ...
- 「雅礼集训 2017 Day5」矩阵
填坑填坑.. 感谢wwt耐心讲解啊.. 如果要看这篇题解建议从上往下读不要跳哦.. 30pts 把$A$和$C$看成$n$个$n$维向量,那$A_i$是否加入到$C_j$中就可以用$B_{i,j}$表 ...
- LOJ#6038. 「雅礼集训 2017 Day5」远行(LCT)
题面 传送门 题解 要不是因为数组版的\(LCT\)跑得实在太慢我至于去学指针版的么--而且指针版的完全看不懂啊-- 首先有两个结论 1.与一个点距离最大的点为任意一条直径的两个端点之一 2.两棵树之 ...
- 【loj6038】「雅礼集训 2017 Day5」远行 树的直径+并查集+LCT
题目描述 给你 $n$ 个点,支持 $m$ 次操作,每次为以下两种:连一条边,保证连完后是一棵树/森林:询问一个点能到达的最远的点与该点的距离.强制在线. $n\le 3\times 10^5$ ,$ ...
- 【刷题】LOJ 6038 「雅礼集训 2017 Day5」远行
题目描述 Miranda 生活的城市有 \(N\) 个小镇,一开始小镇间没有任何道路连接.随着经济发现,小镇之间陆续建起了一些双向的道路但是由于经济不太发达,在建设过程中,会保证对于任意两个小镇,最多 ...
随机推荐
- Hexo之我的桌角女友的食用方式
秀秀 通过使用一个名为 hexo-helper-live2d 的开源库,可以轻松的在自己的Hexo网站下贴上一只生猛可爱的萌妹子或主子: 什么是live2d Live2d是11区宅男们开发出的虚拟女友 ...
- Canny边缘检测原理及C#程序实现
http://blog.csdn.net/yjz_uestc/article/details/6664937 Canny边缘检测是被公认的检测效果最好的边缘检测方法,是由John F. Canny于1 ...
- php 三元运算符简洁用法
<?php header('Content-type:text;charset=utf8'); $a = 'aaaa'; $b = $a ?:'; $c = $a ? $a : '; //这个和 ...
- WebSocket解释及如何兼容低版本浏览器
WebSocket类似HTTP 协议,是为了弥补HTTP 协议的缺陷:通信只能由客户端发起,HTTP 协议做不到服务器主动向客户端推送信息. WebSocket 协议在2008年诞生,2011年成为国 ...
- Python进行数据分析—可视化之seaborn
安装seaborn,可以使用 pip: pip install seaborn 也可以使用 conda: conda install seaborn 一个简单的箱线图: import numpy as ...
- JVM调优总结(2):基本垃圾回收算法
可以从不同的的角度去划分垃圾回收算法: 按照基本回收策略分 引用计数(Reference Counting): 比较古老的回收算法.原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数. ...
- StringUtils.htmlEncode()--html标签过滤方法实现
package org.guyezhai.utils; import java.text.CharacterIterator; import java.text.StringCharacterIter ...
- Linux下常用命令汇总
1.ls 1.1 统计文件夹下文件数量 ls -l | wc -l 1.2 将文件夹下文件名输出到文件 ls -l > list.txt -F | grep - v[/$] 2.find 2.1 ...
- Let's Encrypt 免费通配 https 签名证书 安装方法2 ,安卓签名无法认证!
Let's Encrypt 免费通配 https 签名证书 安装方法 按照上文 配置完毕后你会发现 在pc浏览器中正常访问,在手机浏览器中无法认证 你只需要安装一个或多个中级证书 1.查看Nginx ...
- 爬虫--Scrapy之Downloader Middleware
下载器中间件(Downloader Middleware) 下载器中间件是介于Scrapy的request/response处理的钩子框架. 是用于全局修改Scrapy request和respons ...