博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codeforces 294B B. Shaass and Bookshelf(dp)
阅读量:3710 次
发布时间:2019-05-21

本文共 1118 字,大约阅读时间需要 3 分钟。

题目链接:


题目大意:

给出n本书,每本书有长和宽,先立着放一排,然后在顶上再倒着放,问立着放的这一排最短的距离是多少。


题目分析:

  • 定义状态dp[i][j][k]表示第i本书构成立着排长度为j,横着的排长度为k的情况是否存在。
  • 转移方程很简单,见代码。

AC代码:

#include 
#include
#include
#include
#define MAX 107using namespace std;int n,dp[MAX][MAX<<1][MAX<<1],t[MAX],w[MAX];int main ( ){ while ( ~scanf ( "%d" , &n ) ) { for ( int i = 1 ; i <= n ; i++ ) scanf ( "%d %d" , &t[i] , &w[i] ); memset ( dp , 0 , sizeof ( dp ) ); dp[0][0][0] = 1; for ( int i = 1 ; i <= n ; i++ ) for ( int j = 0 ; j <= 2*n ; j++ ) for ( int k = 0 ; k <= 2*n; k++ ) { if ( j >= t[i] && dp[i-1][j-t[i]][k] ) dp[i][j][k] = 1; if ( k >= w[i] && dp[i-1][j][k-w[i]] ) dp[i][j][k] = 1; } bool flag = true; for ( int i = 0 ; i <= 200&&flag ; i++ ) for ( int k = 0 ; k <= i&&flag ; k++ ) if ( dp[n][i][k] ) { printf ( "%d\n" , i ); flag = false; } }}

转载地址:http://dqvjn.baihongyu.com/

你可能感兴趣的文章
改变gazebo背景颜色
查看>>
PX4多机ros仿真报错
查看>>
Ubuntu安装QT后无法输入中文怎么办?
查看>>
新装Ubuntu18.04系统配置PX4环境
查看>>
QGC注释消息提示框
查看>>
每日一练(二十一)
查看>>
每日一练(二十二)
查看>>
51单片机—串口通信
查看>>
51单片机—红外遥控
查看>>
C51—模拟IIC总线实现EEPROM存取数据
查看>>
C51—小知识点
查看>>
51单片机—使用PWM对直流电机调速
查看>>
51单片机—LCD1602显示模块
查看>>
头文件的建立
查看>>
STM32—常用的几种伪指令宏
查看>>
STM32—位带操作
查看>>
Keil5中出现中文乱码的解决方法
查看>>
【写一个操作系统】1—hello world重出江湖
查看>>
【写一个操作系统】2—VMware创建软盘映像
查看>>
STM32—SPI读写FLASH
查看>>