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

打卡信奥刷题(2526)用C++实现信奥 P2014 [CTSC1997] 选课

P2014 [CTSC1997] 选课

题目描述

在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习。现在有NNN门功课,每门课有若干学分,分别记作s1,s2,⋯ ,sNs_1,s_2,\cdots,s_Ns1,s2,,sN,每门课有一门或没有直接先修课(若课程aaa是课程bbb的先修课即只有学完了课程aaa,才能学习课程bbb)。一个学生要从这些课程里选择MMM门课程学习,问他能获得的最大学分是多少?

题目保证课程安排无冲突。(即不会有aaabbb的先修课,bbb也是aaa的先修课这类情况存在。)

输入格式

第一行有两个整数NNNMMM用空格隔开(1≤N≤300(1 \leq N \leq 300(1N300,1≤M≤300)1 \leq M \leq 300)1M300)

接下来的NNN行,第i+1i+1i+1行包含两个整数kik_ikisis_isikik_iki表示第iii门课的直接先修课,sis_isi表示第iii门课的学分。若ki=0k_i=0ki=0表示没有直接先修课(0≤ki≤N(0 \leq {k_i} \leq N(0kiN,1≤si≤20)1 \leq {s_i} \leq 20)1si20)

数据保证至少存在一个ki=0k_i=0ki=0,即至少一门课无先修课。

输出格式

只有一行,选MMM门课程的最大学分。

输入输出样例 #1

输入 #1

7 4 2 2 0 1 0 4 2 1 7 1 7 6 2 2

输出 #1

13

C++实现

#include<iostream>#include<cstdio>#definemaxn1000usingnamespacestd;intn,m,f[maxn][maxn],head[maxn],cnt;structedge{intto,pre;}e[maxn];inlineintin(){chara=getchar();while(a<'0'||a>'9'){a=getchar();}intt=0;while(a>='0'&&a<='9'){t=(t<<1)+(t<<3)+a-'0';a=getchar();}returnt;}voidadd(intfrom,intto){e[++cnt].pre=head[from];e[cnt].to=to;head[from]=cnt;}voiddp(intnow){// f[now][0]=0;for(inti=head[now];i;i=e[i].pre){intgo=e[i].to;dp(go);for(intj=m+1;j>=1;j--){for(intk=0;k<j;k++){f[now][j]=max(f[now][j],f[go][k]+f[now][j-k]);}}}}intmain(){n=in(),m=in();for(inti=1;i<=n;i++){intfa=in();f[i][1]=in();add(fa,i);}dp(0);printf("%d\n",f[0][m+1]);return0;}

后续

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

http://www.cnnetsun.cn/news/17493.html

相关文章:

  • 程序员:微软的面试流程探讨
  • 爆款!国产开源公众号AI管家ChatWiki全解析
  • 2、Linux 操作系统基础与 Bash 命令行使用指南
  • 网闸厂家排行:安全隔离技术迭代下的选型指南
  • 单北斗变形监测在水库安全中的应用与维护该如何实施?
  • Win11Debloat:终极Windows系统清理优化完整指南
  • 第一季影响设计可靠性的第一性原理(2)
  • 2025年软件工程/计算机科学与技术专业毕业设计选题推荐
  • NTFSTool:在macOS上实现NTFS磁盘完整读写的终极解决方案
  • Qwen3-Reranker-8B:重新定义文本检索效率与精度边界
  • PingFang SC woff2字体:网页中文排版的终极解决方案
  • ModernWMS开源仓库管理系统终极配置与功能详解
  • MPV播放器macOS硬件解码色彩异常终极修复指南
  • Flink自定义函数实战:从入门到精通的完整开发手册
  • 哔哩哔哩漫画下载器技术指南
  • 目标检测数据集 - 穿着服饰检测数据集下载
  • Windows系统终极清理工具:快速免费释放C盘空间
  • Spring AOP场景3——接口防抖(附带源码)
  • 黑客技术水深!普通人不要随便碰
  • AI建议的C++基础入门顺序
  • 35、使用 Ansible 部署脚本化服务器环境
  • 13、文件操作与命令全解析
  • 第32课 PCB布局的常用操作命令介绍
  • 终极修复指南:彻底解决Atmosphere固件2168-0002启动错误
  • 第一章——办公自动化之Word报告自动生成:解放双手,高效创作
  • 压电材料的d33(纵向压电应变常数)测试流程及影响因素
  • 中烟创新连续两年被认定为国家级科技型中小企业
  • s4cmd完整指南:终极高性能Amazon S3命令行工具
  • 开题报告不是“过关文档”,而是“学术项目启动书”——Paperzz AI开题报告功能深度拆解:从选题模糊到框架清晰,它如何把你的“研究冲动”翻译成“可执行的科研计划”?
  • 1996-2025年政府采购合同公告明细数据