打卡信奥刷题(2685)用C++实现信奥题 P2998 [USACO10NOV] Candy S

P2998 [USACO10NOV] Candy S

题目描述

FJ 知道贝茜喜欢吃糖果。FJ 有N(1≤N≤40000)N (1 \le N \le 40000)N(1N40000)颗糖果,他想在若干天内将这些糖果送给贝茜。每一天,FJ 会让贝茜从他提供的一个列表中选择她当天想吃多少糖果,该列表有Nopt(1≤Nopt≤50)Nopt(1 \le Nopt \le 50)Nopt(1Nopt50)种不同的选项Ci(1≤Ci≤N)C_i (1 \le C_i \le N)Ci(1CiN)。她必须恰好拿走CiC_iCi颗糖果。

农夫约翰给出了F(1≤F≤50)F(1 \le F \le 50)F(1F50)个他喜欢的数字FNi(1≤FNi≤N)FN_i (1 \le FN_i \le N)FNi(1FNiN)。每当一天结束时,如果剩余的糖果数量恰好等于这些数字之一,贝茜可以选择添加M(1≤M≤100)M(1 \le M \le 100)M1M100)颗糖果。如果添加糖果后又出现了另一个 FJ 喜欢的数字,贝茜可能会再次获得添加MMM颗糖果的机会。在最好的情况下,贝茜可以获得无限多的糖果!

当贝茜无法在列表中选择糖果数量(因为糖果不够)时,她就无法再获得更多糖果。

不幸的是,贝茜不知道该如何规划才能吃掉尽可能多的糖果,所以她需要你的帮助。

举例来说,考虑以下场景:

  • FJ 最初有101010颗糖果
  • 贝茜每天可以选择吃掉333555颗糖果
  • 当剩余的糖果数量是222444时,FJ 会添加111颗糖果

贝茜可以使用以下选择来最大化她能吃掉的糖果数量:

初始糖果数 吃掉糖果数 剩余糖果数 奖励糖果数 最终糖果数 第1103707273415353213433000

输入格式

  • 111行:四个由空格分隔的整数:N,Nopt,F,MN,Nopt,F,MN,Nopt,F,M
  • 222行到第Nopt+1Nopt+1Nopt+1行:第i+1i+1i+1行包含一个整数:CiC_iCi
  • Nopt+2Nopt+2Nopt+2行到第Nopt+F+1Nopt+F+1Nopt+F+1行:第i+Nopt+1i+Nopt+1i+Nopt+1行包含一个整数:FNiFN_iFNi

输出格式

  • 111行:一个整数,表示贝茜能吃掉的最大糖果数量,如果贝茜能吃掉无限多的糖果,则输出-1

输入输出样例 #1

输入 #1

10 2 2 1 3 5 4 2

输出 #1

12

C++实现

#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#definelllonglong#defineinf0x7f7f7f7f#defineN60usingnamespacestd;inlinellread(){ll x=0,f=1;charch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}returnx*f;}intn,nopt,F,m,c[N],f[N],book[40110],dp[40110],cnt[40110],ans;intmain(){n=read(),nopt=read(),F=read(),m=read();for(inti=1;i<=nopt;i++)c[i]=read();for(inti=1;i<=F;i++)book[read()]=1;memset(dp,-1,sizeof(dp));dp[n]=0;book[n]=false;for(inti=n;i;i--){if(dp[i]==-1)continue;if(cnt[i]>F+1)returnprintf("-1\n"),0;if(book[i]){cnt[i]++;if(dp[i]>dp[i+m]){dp[i+m]=dp[i];i+=m+1;}continue;}for(intj=1;j<=nopt;j++){if(i-c[j]<0)continue;dp[i-c[j]]=max(dp[i-c[j]],dp[i]+c[j]);}}for(inti=n;i>=0;i--)ans=max(ans,dp[i]);printf("%d\n",ans);return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1153812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【.NET高性能编程必修课】:Span在大规模文件处理中的6大应用场景

第一章&#xff1a;Span高性能文件处理的核心价值在现代高并发系统中&#xff0c;文件处理的性能直接影响整体服务响应能力。Span 作为一种轻量级、高效的数据结构&#xff0c;为大文件读取与切片操作提供了底层优化支持。其核心优势在于避免内存拷贝&#xff0c;直接引用原始数…

17关键点检测保姆级教程:从数据标注到部署,全程云端完成

17关键点检测保姆级教程&#xff1a;从数据标注到部署&#xff0c;全程云端完成 引言&#xff1a;为什么选择云端17关键点检测&#xff1f; 作为一名生物力学研究员&#xff0c;当你需要分析运动员的动作时&#xff0c;最头疼的莫过于IT部门告诉你&#xff1a;"配置本地…

S7.NET+ 实用指南:3步掌握西门子PLC通信的.NET库

S7.NET 实用指南&#xff1a;3步掌握西门子PLC通信的.NET库 【免费下载链接】s7netplus S7.NET -- A .NET library to connect to Siemens Step7 devices 项目地址: https://gitcode.com/gh_mirrors/s7/s7netplus S7.NET 是一个专门用于连接西门子S7系列PLC的.NET开源库…

DroidCam OBS插件:将手机变身高清直播摄像头的终极方案

DroidCam OBS插件&#xff1a;将手机变身高清直播摄像头的终极方案 【免费下载链接】droidcam-obs-plugin DroidCam OBS Source 项目地址: https://gitcode.com/gh_mirrors/dr/droidcam-obs-plugin 还在为高昂的专业摄像头设备而烦恼吗&#xff1f;DroidCam OBS插件为你…

交错数组读写冲突频发?一文搞懂volatile与锁机制的正确用法

第一章&#xff1a;交错数组并发访问的挑战与背景在现代高并发系统中&#xff0c;数据结构的设计直接影响程序的性能与稳定性。交错数组&#xff08;Jagged Array&#xff09;作为一种非矩形的多维数组形式&#xff0c;广泛应用于不规则数据存储场景&#xff0c;例如日志分片、…

CoolProp热物理性质计算终极指南:从零基础到工程应用

CoolProp热物理性质计算终极指南&#xff1a;从零基础到工程应用 【免费下载链接】CoolProp Thermophysical properties for the masses 项目地址: https://gitcode.com/gh_mirrors/co/CoolProp 项目定位&#xff1a;开源热力学计算的革命性工具 CoolProp是一个功能强大…

Linux OCR工具效率革命:3分钟打造极速启动方案

Linux OCR工具效率革命&#xff1a;3分钟打造极速启动方案 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件&#xff0c;适用于Windows系统&#xff0c;支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.com/GitHub_Tren…

中文排版神器:Source Han Serif CN开源字体终极应用指南

中文排版神器&#xff1a;Source Han Serif CN开源字体终极应用指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf &#x1f525; 开篇破局&#xff1a;重新定义中文排版体验 你是否…

极简实战:闲置电视盒子深度改造为高性能Linux服务器全攻略

极简实战&#xff1a;闲置电视盒子深度改造为高性能Linux服务器全攻略 【免费下载链接】amlogic-s9xxx-armbian amlogic-s9xxx-armbian: 该项目提供了为Amlogic、Rockchip和Allwinner盒子构建的Armbian系统镜像&#xff0c;支持多种设备&#xff0c;允许用户将安卓TV系统更换为…

NormalMap-Online技术实现原理与应用实践

NormalMap-Online技术实现原理与应用实践 【免费下载链接】NormalMap-Online NormalMap Generator Online 项目地址: https://gitcode.com/gh_mirrors/no/NormalMap-Online 技术背景与问题分析 在计算机图形学领域&#xff0c;法线贴图技术是提升三维模型表面细节表现力…

老年跌倒检测方案:关键点算法云端测试笔记

老年跌倒检测方案&#xff1a;关键点算法云端测试笔记 引言 在养老院管理系统中&#xff0c;跌倒检测是一项至关重要的安全功能。想象一下&#xff0c;当老人不慎跌倒时&#xff0c;如果系统能立即识别并报警&#xff0c;护理人员就能第一时间赶到现场&#xff0c;这可能会挽…

Android Studio中文插件:告别英文困扰,打造高效开发环境

Android Studio中文插件&#xff1a;告别英文困扰&#xff0c;打造高效开发环境 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还…

为什么顶级团队都在用主构造函数依赖注入?真相令人震惊

第一章&#xff1a;为什么顶级团队都在用主构造函数依赖注入&#xff1f;真相令人震惊依赖注入&#xff08;Dependency Injection, DI&#xff09;早已不是新概念&#xff0c;但近年来顶级开发团队纷纷转向使用**主构造函数依赖注入**&#xff08;Primary Constructor DI&#…

AI自动打码案例:新闻图片隐私处理

AI自动打码案例&#xff1a;新闻图片隐私处理 1. 引言&#xff1a;AI 人脸隐私卫士 - 智能自动打码 在新闻报道、公共安全监控、社交媒体内容发布等场景中&#xff0c;图像中的个人面部信息往往涉及敏感隐私。传统的人工打码方式效率低下、成本高昂&#xff0c;且难以应对多人…

思源宋体CN实战应用与性能优化全解析

思源宋体CN实战应用与性能优化全解析 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 在数字内容创作领域&#xff0c;中文字体的选择直接影响着作品的视觉效果和用户体验。思源宋体CN作…

手势识别技术解析:MediaPipe Hands架构与实现

手势识别技术解析&#xff1a;MediaPipe Hands架构与实现 1. 引言&#xff1a;AI 手势识别与追踪的技术演进 随着人机交互方式的不断演进&#xff0c;传统输入设备&#xff08;如键盘、鼠标&#xff09;已无法满足日益增长的沉浸式体验需求。在虚拟现实&#xff08;VR&#x…

3步搞定Steam资源:智能下载器重塑游戏管理体验

3步搞定Steam资源&#xff1a;智能下载器重塑游戏管理体验 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey 还在为Steam游戏资源管理而烦恼吗&#xff1f;传统的手动操作不仅耗时耗力&#xff0c…

2026毕设ssm+vue教工公寓管理论文+程序

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景 关于高校学生公寓安全管理问题的研究&#xff0c;现有研究主要以“门禁安防系统”“宿舍消防监测”“人脸识别闸机”等硬件升…

AI手势识别为何选CPU?低成本高性能部署案例揭秘

AI手势识别为何选CPU&#xff1f;低成本高性能部署案例揭秘 1. 引言&#xff1a;AI 手势识别与追踪的现实挑战 随着人机交互技术的不断演进&#xff0c;AI手势识别正逐步从实验室走向消费级应用。无论是智能家电控制、虚拟现实交互&#xff0c;还是远程会议中的非接触操作&am…

Raylib核心技术深度解析:构建现代游戏应用的高效工具链

Raylib核心技术深度解析&#xff1a;构建现代游戏应用的高效工具链 【免费下载链接】raylib raysan5/raylib 是一个用于跨平台 C 语言游戏开发库。适合在进行 C 语言游戏开发时使用&#xff0c;创建 2D 和 3D 图形应用程序。特点是提供了丰富的图形和音频处理功能、易于使用的 …