当前位置: 首页 > news >正文

代码部落 20250713 CSP-J复赛 模拟赛

网址:代码部落    

密码 666888

T1-T3    自行处理

一:T4 游乐场

        思路:首先进行可行性判断: 当c[q]>m时,直接输出-1即可

        原本我想用01背包做,但因为有免费玩的条件在,所以应直接用线性dp

        状态转移方程

                设f[i][j][0/1]表示前i个设施,花费j元,第i个设施是“免费”(0)

        或花钱玩(1)时的最大快乐值

        转移:  f[i][j][0] : 从之前“花钱玩”的设施转移(免费获得当前设施),快乐值+hi

        f[i][j][1]: 从之前“免费玩”的设施转移(花钱玩当前设施),快乐值+hi 花费+ci

        同时设施按 从大到小排序(保证 “送” 的设施 ),并强制在 DP 中包含 q 设施。

        代码:

                

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=505;
int f[N][N][2];
int n,m,q;
struct node{int h,c,id;
}a[N];
bool cmp(node xx,node yy){return xx.c>yy.c;
}
signed main(){cin>>n>>m>>q;for(int i=1;i<=n;i++){cin>>a[i].h>>a[i].c;a[i].id=i;		}if(a[q].c>m){cout<<-1<<endl;return 0;}sort(a+1,a+1+n,cmp);for(int i=1;i<=n;i++){if(a[i].id==q){q=i;break;}}memset(f,-1,sizeof(f));f[0][0][0]=0;for(int i=1;i<q;i++){for(int j=0;j<=m;j++){for(int k=0;k<i;k++){if(f[k][j][1]!=-1){f[i][j][0]=max(f[i][j][0],f[k][j][1]+a[i].h);}if(j-a[i].c>=0&&f[k][j-a[i].c][0]!=-1){f[i][j][1]=max(f[i][j][1],f[k][j-a[i].c][0]+a[i].h);}}}}for(int j=0;j<=m;j++){for(int k=0;k<q;k++){if(f[k][j][1]!=-1)f[q][j][0]=max(f[q][j][0],f[k][j][1]+a[q].h);if(j-a[q].c>=0&&f[k][j-a[q].c][0]!=-1)f[q][j][1]=max(f[q][j][1],f[k][j-a[q].c][0]+a[q].h);}}for(int i=q+1;i<=n;i++){for(int j=0;j<=m;j++){for(int k=q;k<i;k++){if(f[k][j][1]!=-1)f[i][j][0]=max(f[i][j][0],f[k][j][1]+a[i].h);if(j-a[i].c>=0&&f[k][j-a[i].c][0]!=-1)f[i][j][1]=max(f[i][j][1],f[k][j-a[i].c][0]+a[i].h);}}}int ans=0;for(int i=q;i<=n;i++){for(int j=0;j<=m;j++){ans=max(ans,max(f[i][j][0],f[i][j][1]));}}cout<<ans<<endl;return 0;} 

        

http://www.dtcms.com/a/277785.html

相关文章:

  • 适配器模式:兼容不兼容接口
  • C++--unordered_set和unordered_map的使用
  • C#接口进阶:继承与多态实战解析
  • DVWA靶场通关笔记-XSS DOM(Medium级别)
  • 在人工智能自动化编程时代:AI驱动开发和传统软件开发的分析对比
  • 如何自动化处理TXT日志,提升工作效率新方式
  • Autotab:用“屏幕录制”训练AI助手,解锁企业级自动化新范式
  • Springboot实现一个接口加密
  • 免费证件照工具,一键制作超方便
  • Linux驱动开发2:字符设备驱动
  • NumPy实战指南:解锁科学计算的超能力
  • 5.适配器模式
  • Chrome浏览器此扩展程序已停用,因为它已不再受支持,插件被停用解决方案
  • 解决 Python 跨目录导入模块问题
  • Ubuntu 设置自动挂载 SD 卡,扩容根目录
  • 进程互斥的硬件实现方法
  • Python----大模型(Langchain-Prompt提示词)
  • 快速搭建Maven仓库服务
  • 大话数据结构之 <顺序表> (C语言)
  • 学习:JS基础[5]对象
  • 【SpringAI Alibaba】基于 Redis 实现连续对话与向量存储
  • VsCode的LivePreview插件应用
  • [Java恶补day41] 226. 翻转二叉树
  • 基于springboot的大学公文收发管理系统
  • AB实验评估指标体系之【实验评估指标体系】
  • 015_引用功能与信息溯源
  • python 字典(Dictionary) vs. 集合(Set):它们是如何做到快速查找的?为什么字典的键(key)必须是不可变的?
  • S7-1200 与 ET200SP:PROFINET 设备关键数据 IP 地址、MAC 地址及 MRP 环状态获取
  • Datawhale AI 夏令营2025科大讯飞AI大赛<夏令营:用AI做带货视频评论分析>
  • 什么是渐进式框架