news 2026/8/7 23:32:46

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(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考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 1:21:55

程序员:微软的面试流程探讨

Q&#xff1a;微软的面试流程是什么样的&#xff1f;技术面试主要考察哪些方向&#xff1f;在疫情期间&#xff0c;微软实行远程线上面试&#xff0c;面试前会提前预约时间&#xff0c;4 - 5 轮技术面试会尽量排在同一天&#xff0c;面试内容主要包括算法和数据结构&#xff0c…

作者头像 李华
网站建设 2026/8/7 15:54:43

爆款!国产开源公众号AI管家ChatWiki全解析

一款专为微信生态打造的开源工作流自动化平台&#xff0c;以国内首创的公众号 AI 知识库 Agent 为核心&#xff0c;GitHub 已斩获 1.4k Star。无需复杂开发&#xff0c;通过可视化操作即可让公众号变身 “超级 AI 智能体”&#xff0c;覆盖内容创作、用户互动、运营自动化全场景…

作者头像 李华
网站建设 2026/8/7 15:52:23

2、Linux 操作系统基础与 Bash 命令行使用指南

Linux 操作系统基础与 Bash 命令行使用指南 1. Linux 操作系统概述 在计算机发展早期,指令和数据通常被存放在两个不同的存储区域。现代计算机采用了“冯诺伊曼架构”,这种架构由匈牙利计算机科学家约翰冯诺伊曼提出,它将数据和指令存放在同一个存储区域,使计算机的构建和…

作者头像 李华
网站建设 2026/8/7 3:26:15

网闸厂家排行:安全隔离技术迭代下的选型指南

在数字化转型纵深推进的今天&#xff0c;网络边界安全成为政企机构的核心防护重点&#xff0c;网闸作为切断不同安全域非法连接、保障合规数据交换的关键设备&#xff0c;市场需求持续扩大。网闸厂家排行也因此成为政企采购决策中的重要参考&#xff0c;其排名变化背后&#xf…

作者头像 李华
网站建设 2026/8/7 22:07:51

单北斗变形监测在水库安全中的应用与维护该如何实施?

本文将探讨单北斗变形监测在水库安全管理中的应用与维护。单北斗GNSS技术的引入&#xff0c;使得实时位移监测成为可能&#xff0c;为水库的结构安全提供了强有力的保障。以GNSS变形监测一体机为核心&#xff0c;该系统能够高效捕捉水库坝体及周边地质的细微变化&#xff0c;帮…

作者头像 李华
网站建设 2026/8/7 5:14:30

Win11Debloat:终极Windows系统清理优化完整指南

Win11Debloat&#xff1a;终极Windows系统清理优化完整指南 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本&#xff0c;用于从Windows中移除预装的无用软件&#xff0c;禁用遥测&#xff0c;从Windows搜索中移除Bing&#xff0c;以及执行各种其他更改以简化和改善你的…

作者头像 李华