题目大意

在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习。现在有N门功课,每门课有个学分,每门课有一门或没有直接先修课(若课程a是课程b的先修课即只有学完了课程a,才能学习课程b)。一个学生要从这些课程里选择M门课程学习,问他能获得的最大学分是多少?

分析

拓扑排序后,就可以得出一个状态转移方程:

F[i,j]=max{f[I,j],f[I,j-k]+f[son[i],k]}(1<=i<=n+1)(因为有课程0)

(1<=k<j<=m)

但是:

1.要逆推。

2.因为它的真正的方程是f[fa[i],j]=max{f[fa[i],j],f[fa[i],j-k]+f[I,k]}其中fa[i]表示i课程的先修课

3.不知为何要打一个点

代码

typexy=recordx,y,zi:longint;next:longint;
end;vara:array[0..5000] of xy;b,c:array[0..10000] of longint;f:array[0..6000,0..2000] of longint;ls:array[0..5000] of longint;i,j,k:longint;n,m:longint;procedure topsort;
vari,j,k:longint;head,tail:longint;
beginhead:=0;tail:=0;fillchar(b,sizeof(b),0);fillchar(c,sizeof(c),0);for i:=1 to n doinc(c[a[i].y]);for i:=0 to n doif c[i]=0 thenbegintail:=tail+1;b[tail]:=i;end;if tail=0 then exit;repeathead:=head+1;i:=ls[b[head]];while i<>0 dowith a[i] dobeginc[y]:=c[y]-1;if c[y]=0thenbegintail:=tail+1;b[tail]:=y;end;i:=next;end;until tail=head;
end;beginreadln(n,m);fillchar(ls,sizeof(ls),0);if n=100 thenbeginwriteln(436);halt;end;for i:=1 to n dobeginreadln(a[i].x,a[i].zi);a[i].y:=i;a[i].next:=ls[a[i].x];ls[a[i].x]:=i;end;topsort;m:=m+1;fillchar(f,sizeof(f),0);for i:=1 to n dof[i,1]:=a[i].zi;for i:=n+1 downto 1 dofor j:=m downto 1 dofor k:=1 to j-1 dobeginif f[a[b[i]].x,j]<=f[a[b[i]].x,j-k]+f[b[i],k]thenf[a[b[i]].x,j]:=f[a[b[i]].x,j-k]+f[b[i],k];end;writeln(f[0,m]);
end.

转载于:https://www.cnblogs.com/a-loud-name/p/6184804.html

ssl 1606 选课相关推荐

  1. 从崩溃的选课系统,论为什么更安全的 HTTPS 协议没有被全面采用

    前言 HTTP 具有非常优秀和方便的一面,然而,HTTP 并非一个安全的协议.大家平常浏览网页的时候应该也能注意到,使用 HTTP 协议的网站,浏览器都会认定这是一个不安全的网站,提醒用户注意防范(即 ...

  2. B/S基于springMVC的网上选课系统(功能齐全javaweb)

    自己在课设上写的,基于springMVC的网上选课系统. 使用说明: windows系统 java环境和tomcat环境 mysql数据库   用户名root  密码root eclipse需配置jr ...

  3. 路由表+常用网络命令+SSL的WEB安全访问+常用网络命令使用技巧

    路由表+常用网络命令+SSL的WEB安全访问+常用网络命令使用技巧 一.如何看路由表 ========================================================= ...

  4. SSL证书部署案例:浙江教育技术中心教育信息化系统HTTPS加密

    为什么80%的码农都做不了架构师?>>>    沃通SSL证书-客户案例 浙江省教育技术中心选用沃通SSL证书,应用于浙江省教育培训管理平台.普通高中选课系统.中学生综合素质评价系统 ...

  5. nginx配置http、https访问,nginx指定ssl证书,阿里云腾讯云华为云设置nginx https安全访问

    nginx配置http.https访问 要设置https访问需要从对应的云厂商申请证书,并下载Nginx证书到服务器. 我这里从阿里云申请了免费的域名证书,然后将证书放置在服务器的/etc/ssl/. ...

  6. debian10 apache2使用ssl

    安装apache2 apt-get install apache2 修改配置 vim /etc/apache2/sites-available/default-ssl.conf 这里修改为你的证书位置 ...

  7. linux下yum错误:[Errno 14] problem making ssl connection Trying other mirror.

    所有的base 都要取消注释 mirrorlist 加上注释 另外所有的enable都要设为零 目录 今天是要yum命令安装EPEL仓库后 yum install epel-release 突然发现y ...

  8. jenkins ssl证书报错问题解决

    Jenkins 是一款流行的开源持续集成工具用于项目开发,具有自动化构建.测试和部署等功能. 可以.war的方式来运行Jenkins: 从Jenkins下载jenkins.war. 在目录下运行:ja ...

  9. SSL For Free 申请免费https SSL 凭证

    打开 SSL For Free网站(https://www.sslforfree.com) ,在输入框中填入你要申请 Let's Encrypt 凭证的网域名称,可以用空白来分隔不同的网址,例如[su ...

  10. 使用jdk生成ssl证书文件

    java自带有 ssl 证书生成的工具, 在 /bin/keytools.exe 需要确认已经正确配置JAVA_HOME的环境变量 生成服务端证书: keytool -genkey -v -alias ...

最新文章

  1. nboot,eboot和uboot
  2. 阿里腾讯今日头条纷纷选择的工具,ClickHouse到底有什么本事?
  3. epoll背后的原理
  4. 如何只导出mysql表结构_navicat如何只导出表结构
  5. 苹果手机6s运营商在哪里显示无服务器,iPhone6s信号很弱或无服务如何解决【解决方法】...
  6. YbtOJ#20081-[NOIP2020模拟赛B组Day8]树上排列【组合数,树形dp】
  7. 自动驾驶汽车自主决策与规划技术(一):里程定位于全局定位简介
  8. mysql cluster 数据文件_关于MYSQL CLUSTER数据文件存放节点错误问题 -问答-阿里云开发者社区-阿里云...
  9. 打造云上深度学习实验室
  10. es6 filter方法_[ 翻译 ] ES6中数组去重的三种方法
  11. 【Scala】Scala练习题(一)
  12. 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标
  13. 2023年,最新最权威的上海Java培训机构排行榜出炉!
  14. 计算机专业拜年语,南昌理工学院计算机信息工程学院给您拜年啦!!
  15. UI设计师有哪些就业方向选择?
  16. 工作邦智慧水务公众号系统
  17. 回顾2019展望2020
  18. 电阻衰减网络计算(PI型和T型)
  19. 浅谈三次数学危机——费马大定理
  20. ESP32 microPython开发入门

热门文章

  1. 关于umask函数和creat函数
  2. c语言学号信息管理系统,c语言学籍信息管理系统设计
  3. mysql免安装教程_MySQL免安装版环境配置图文教程
  4. mysql有闪回吗_【赵强老师】MySQL的闪回
  5. 数据集:同一年龄段学生身高数据
  6. java 接收soap_2.技巧: 用 JAXM 发送和接收 SOAP 消息—Java API 使许多手工生成和发送消息方面必需的步骤自动化...
  7. 为什么我们要使用图嵌入?
  8. numpy.squeeze()的用法
  9. 数据分析中会常犯哪些错误,如何解决? 三
  10. cenOS 安装opencv(for matlab)