首页 > 试题广场 >

考试策略

[编程题]考试策略
  • 热度指数:5035 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
小明同学在参加一场考试,考试时间 个小时。试卷上一共有 道题目,小明要在规定时间内,完成一定数量的题目。 考试中不限制试题作答顺序,对于 i 第道题目,小明有三种不同的策略可以选择: 

(1)直接跳过这道题目,不花费时间,本题得0分。
(2)只做一部分题目,花费 pi 分钟的时间,本题可以得到 ai 分。 
(3)做完整个题目,花费 qi 分钟的时间,本题可以得到 bi 分。
小明想知道,他最多能得到多少分。
数据范围:

输入描述:
第一行输入一个n数表示题目的数量。

接下来n行,每行四个数p_i,a_i,q_i,b_i。


输出描述:
输出一个数,小明的最高得分。
示例1

输入

4
20 20 100 60
50 30 80 55
100 60 110 88
5 3 10 6

输出

94
头像 清楚姐姐捞捞没中过奖的我
发表于 2020-11-24 10:27:41
题目描述:小睿睿给了你一个长度为n的数列,他想问你该数列中满足条件(区间内存在某个数是区间内所有数的公因数)的最长区间有多少个。题解:这道题可以看成一个非常简单的分组0-1背包问题,即每组物品只能使用一种,感兴趣对于分组背包的可以去博客园或者CSDN上搜背包九讲#include<bits/st 展开全文
头像 laglangyue
发表于 2020-06-19 21:35:12
0-1背包问题 package org.niuke.solution77; import java.io.*; public class Main { public static void main(String[] args) throws IOException{ B 展开全文
头像 舔出新offer
发表于 2022-03-07 22:07:51
当成特殊的背包问题,用动态规划的方法。 核心:dp[x]表示在考试时间剩下x分钟时,能获得的最高分数。 两层循环,外层遍历物品(即本题中的考试题目,完整做完一题和部分做题视为同一个物品的两种价格和价值),内层循环遍历剩余时间。 #include <bits/stdc++.h> using 展开全文
头像 17c89
发表于 2024-01-23 13:12:45
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in = new Scanner(System.in); while 展开全文