落谷11月月赛——不开心的金明
看到题目想到背包,但是背包开不了这么大的空间,所以好像不好做的样子,但是由于体积(价格)只有四种情况,所以我们可以将体积设为最小值的j倍加上一个k,因为n<=100,所以k的最大值就只有300,数组可以开f[110][110][310],不会超空间,可以完美解决所有的情况,但是最小价格小于300的时候要跑一个普通的01背包,否则数组之间会串起来出错。
状态转移方程
f[i][j][k]=max(f[i-1][j-1][k-(v[i]-minx)]+p[i],f[i-1][j][k])
表示可以从不同的情况下转移过来。
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<ctime>
#define ll long long
//long long 什么的还是要特别注意一下
using namespace std;
const int maxn=100+10;
int n;
ll w,v[maxn],p[maxn],f[maxn][maxn][310],minx=0x3f3f3f3f,F[350*100],ans;
int main(){scanf("%d%lld",&n,&w);for(int i=1;i<=n;i++){scanf("%lld%lld",&v[i],&p[i]);minx=min(minx,v[i]);}if(minx<=300){//这里跑一个很普通的01背包for(int i=1;i<=n;i++)for(int j=w;j>=v[i];j--)F[j]=max(F[j-v[i]]+p[i],F[j]);printf("%d\n",F[w]);return 0;}for(int i=1;i<=n;i++)for(int j=1;j<=w/minx;j++)for(int k=0;k<=3*n;k++)if(j*minx+k>=v[i] && k-(v[i]-minx)>=0 && j*minx+k<=w){//这里要注意判断总价格小于你的钱数&&数组不可以越界&&钱够f[i][j][k]=max(f[i-1][j-1][k-(v[i]-minx)]+p[i],f[i-1][j][k]);//状态转移ans=max(f[i][j][k],ans);}printf("%lld\n",ans);return 0;
}
落谷11月月赛——不开心的金明相关推荐
- 「LuoguP4995」「洛谷11月月赛」 跳跳!(贪心
题目描述 你是一只小跳蛙,你特别擅长在各种地方跳来跳去. 这一天,你和朋友小 F 一起出去玩耍的时候,遇到了一堆高矮不同的石头,其中第 ii 块的石头高度为 h_ihi,地面的高度是 h_0 = 0 ...
- 洛谷11月月赛(284pts rank85)
https://www.luogu.org/contestnew/show/12006 我是比赛完后在去写的 这是我第一次打洛谷月赛,之前一次是比赛完才去看而且写了第一题就没写后面的了 284分,太水 ...
- 【洛谷月赛】洛谷11月月赛·Day1
洛谷2614 计算器弹琴 本题地址: http://www.luogu.org/problem/show?pid=2614 题目描述 总所周知,计算器可以拿来干很多它本不应该干的事情,比如写作文.(参 ...
- 【题解】洛谷P4996[【LGR-055】洛谷11月月赛]C.咕咕咕 组合数
题目链接 #include<cstdio> const int mod=998244353; typedef long long ll; inline int read() {int s= ...
- Mdoi R2 洛谷4月月赛I
Mdoi R2 洛谷4月月赛I DIV2 A Car 题目描述 在MDOI市, 为了推行环保, 一辆车是否被限行的依据时车牌号和当天的日期. 车牌号的编码方式是这样的: **·**前三位均为大写字母, ...
- 安恒赛php_安恒11月月赛周周练writeup
前言 11月月赛 完美错过时间,正好有周周练,基本都是一样月赛的web,记录下write up 手速要快 这题是10月月赛中的一题,直接看我上次的writeup:安恒月赛(十)web-2题writeu ...
- csu-2018年11月月赛Round2-div1题解
csu-2018年11月月赛Round2-div1题解 A(2191):Wells的积木游戏 Description Wells有一堆N个积木,标号1~N,每个标号只出现一次 由于Wells是手残党, ...
- 关于517编程的11月月赛
关于517编程的11月月赛-Nov.29 by Jasonxu 我是传送门 T1:umin之和 1.1题目 小海狸定义 umin为最小的没有在子集中出现过的非负整数. 小海狸有一组非负整数,他希望将这 ...
- 上海11月月赛乙组解题报告
上海11月月赛乙组解题报告 1.数对统计 题目描述 给定 n 个数字 a1,a2,--,an,请从中挑选两个数字,并按原顺序组成一个数对.请问能选出多少种不完全相等的数对? 输入格式 第一行,单个整数 ...
最新文章
- vue 将字符串最后一个字符给替换_一步一步的实现Vue(一)
- android 左移动画_Android 控件的显示隐藏上下左右移动动画
- The type Resource is not accessible due to restriction on required library
- 4项探索+4项实践,带你了解华为云视觉预训练研发技术
- aws linux 安装图形,linux – 用于安装AWS CLI工具的Bash脚本
- 【java】java boolean 源码分析
- c++ string 无法通过下标访问_数组下标1你见过吗?
- 20162309《程序设计与数据结构》第二学期课程总结
- C#捕获摄像头进行拍照和录像资料总结
- 模糊神经网络算法matlab,模糊神经网络算法原理
- Eucalyptus的结构
- 巴法云 mixly 扩展库
- WampServer环境搭建
- python图案绘制解锁_PythonAppium实现安卓手机图形解锁
- oracle中scott用户的创建
- vs2022 error C1001:内部编译器错误
- 微信公众平台开发(15)--群发消息
- 爬取网易云音乐排行榜
- 阿里又一员猛将出走江湖?原钉钉CEO“无招”将离职创业,新公司被投资方疯抢!阿里辟谣:人还没走!...
- 四轴飞行器偏航角不同飞控的C语言实现方法