4247: 挂饰

题目:传送门


题解:

   看完题目很明显的一道二维背包(一开始还推错了)

   设f[i][j]表示前i个挂饰选完(可以有不选)之后还剩下j个挂钩的最大值(j最多贡献为n)

   那么f[i][j]=max(f[i-1][j],f[i-1][max(j-a[i].w,0)+1]+a[i].x);(一开始忘了加1真的是沙茶)

   然后就直接乱打一通...然后又错了

   再想想,如果前面的好几个物品都没有挂钩...那我怎么转移,所以排序一下挂钩数目咯

  


代码:

 #include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
using namespace std;
struct node
{
int w,x;
}a[];
int n,f[][];//前i个物品剩j个挂钩
bool cmp(node n1,node n2){return n1.w>n2.w;}
int main()
{
scanf("%d",&n);for(int i=;i<=n;i++)scanf("%d%d",&a[i].w,&a[i].x);
sort(a+,a+n+,cmp);
for(int i=;i<=n;i++)for(int j=;j<=n+;j++)f[i][j]=-;f[][]=;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
f[i][j]=max(f[i-][j],f[i-][max(j-a[i].w,)+]+a[i].x);
int ans=-;for(int i=;i<=n;i++)ans=max(ans,f[n][i]);
printf("%d\n",ans);
return ;
}

bzoj4247: 挂饰(背包)的更多相关文章

  1. bzoj4247: 挂饰(背包dp)

    4247: 挂饰 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1136  Solved: 454[Submit][Status][Discuss] ...

  2. 【BZOJ4247】挂饰 背包

    [BZOJ4247]挂饰 Description JOI君有N个装在手机上的挂饰,编号为1...N. JOI君可以将其中的一些装在手机上. JOI君的挂饰有一些与众不同——其中的一些挂饰附有可以挂其他 ...

  3. 【bzoj4247】挂饰 背包dp

    题目描述 JOI君有N个装在手机上的挂饰,编号为1...N. JOI君可以将其中的一些装在手机上. JOI君的挂饰有一些与众不同——其中的一些挂饰附有可以挂其他挂件的挂钩.每个挂件要么直接挂在手机上, ...

  4. [BZOJ4247]挂饰(DP)

    当最终挂饰集合确定了,一定是先挂挂钩多的在挂挂钩少的. 于是按挂钩从大到小排序,然后就是简单的01背包. #include<cstdio> #include<algorithm> ...

  5. BZOJ4247挂饰

    Description     JOI君有N个装在手机上的挂饰,编号为1...N. JOI君可以将其中的一些装在手机上.     JOI君的挂饰有一些与众不同--其中的一些挂饰附有可以挂其他挂件的挂钩 ...

  6. 洛谷P4138 挂饰 背包

    正解:背包dp 解题报告: 昂先放链接qwq 感觉还挺妙的,,,真的我觉得我直接做可能是想不到背包的,,,我大概想不出是个背包的QAQ 但是知道是背包之后觉得,哦,好像长得也确实挺背包的吼,而且其实是 ...

  7. BZOJ 4247 挂饰 背包DP

    4247: 挂饰 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id ...

  8. bzoj千题计划197:bzoj4247: 挂饰

    http://www.lydsy.com/JudgeOnline/problem.php?id=4247 先把挂饰按挂钩数量从大到小排序 dp[i][j]前i个挂饰,剩下j个挂钩的最大喜悦值 分挂和不 ...

  9. BZOJ4247 : 挂饰

    首先将挂饰按照挂钩个数从大到小排序,然后DP 设f[i][j]处理完前i个挂饰,还有j个多余挂钩的最大喜悦值,则 f[0][1]=0 f[i][j]=max(f[i-1][max(j-a[i],0)+ ...

随机推荐

  1. mongoose 操作 mongodb 笔记 (自己的笔记,自己看的)

    mongodb下载/安装 mongoose   npm install --save mongoose mongoose 数据库连接 const mongoose = require('mongoos ...

  2. Hbase 简单记录

    进入hbase 客户端命令行: hbase shell 根据rowkey获取单条数据: get 'HXXT_ns:app_test_hbase', 'rowkey值'   范围查询,并指定数据量: s ...

  3. Oracle数据库的导入和导出

    Oracle数据库的导入和导出,是一项重要的的技术活,不但解决了数据库的导入导出,更方便快捷的获得数据. 使用imp和exp导入导出数据 使用exp导出数据 存放目录为\ORACLE_HOME\BIN ...

  4. QtUI设计:设置控件透明

    QT设置按钮控件透明: 代码: //设置按钮 背景 前景 this->ui->ShowCvRGB->setStyleSheet(QString("color:rgba(25 ...

  5. vue 上滑加载更多

    移动端网页的上滑加载更多,其实就是滑动+分页的实现. <template> <div> <p class="footer-text">--{{f ...

  6. mysql主主同步

    Mysql 主主同步方案 第一台机器主 [root@master ~]# vim /etc/my.cnf [mysqld] server-id=1 log-bin=mysql-binlog log-s ...

  7. [POI2005]SKA-Piggy Banks tarjan 水题

    Code: #include<bits/stdc++.h> #define maxn 1000002 using namespace std; void setIO(string s) { ...

  8. CentOS7 笔记 (一) .NETCore

    安装系统CentOS,虚拟机好麻烦,直接在阿里云开了一个6个月免费的ECS. 熟悉Linux 基本命令 登录,exit,vi ,vim,vi保存关闭,w,ls,mkdir,df,ip addr,修改系 ...

  9. Linux思维导图之进程管理

    查漏补缺,理解概念,及时总结,欢迎拍砖.

  10. docker安装部署

    1. 如何安装 Epel源到 RHEL/CentOS 7/6/5? RHEL/CentOS rpm -ivh http://mirrors.ustc.edu.cn/epel/7/x86_64/Pack ...