【ZOJ - 3956】Course Selection System(01背包)

题干:

There are n courses in the course selection system of Marjar University. The i-th course is described by two values: happiness Hi and credit Ci. If a student selects m courses x1, x2, ..., xm, then his comfort level of the semester can be defined as follows:

$$(\sum_{i=1}^{m} H_{x_i})^2-(\sum_{i=1}^{m} H_{x_i})\times(\sum_{i=1}^{m} C_{x_i})-(\sum_{i=1}^{m} C_{x_i})^2$$

 

Edward, a student in Marjar University, wants to select some courses (also he can select no courses, then his comfort level is 0) to maximize his comfort level. Can you help him?

Input

There are multiple test cases. The first line of input contains an integer T, indicating the number of test cases. For each test case:

The first line contains a integer n (1 ≤ n ≤ 500) -- the number of cources.

Each of the next n lines contains two integers Hi and Ci (1 ≤ Hi ≤ 10000, 1 ≤ Ci≤ 100).

It is guaranteed that the sum of all n does not exceed 5000.

We kindly remind you that this problem contains large I/O file, so it's recommended to use a faster I/O method. For example, you can use scanf/printf instead of cin/cout in C++.

Output

For each case, you should output one integer denoting the maximum comfort.

Sample Input

2
3
10 1
5 1
2 10
2
1 10
2 10

Sample Output

191
0

Hint

For the first case, Edward should select the first and second courses.

For the second case, Edward should select no courses.

解题报告:

   容易观察到对于一个给定的ci,hi肯定是越大越好的,所以我们可以转化成容量是sum(ci),价值分别是hi的01背包问题,这和那道蓝桥有异曲同工之妙。

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define F first
#define S second
#define ll long long
#define pb push_back
#define pm make_pair
using namespace std;
typedef pair<int,int> PII;
const int MAX = 2e5 + 5;
int dp[MAX];
int h[MAX],c[MAX];
int main()
{int t,n;cin>>t;while(t--) {scanf("%d",&n);int m=0;for(int i = 1; i<=n; i++) {scanf("%d%d",h+i,c+i);m += c[i];}for(int i = 0; i<=m; i++) dp[i] = 0;for(int i = 1; i<=n; i++) {for(int j = m; j>=c[i]; j--) {dp[j] = max(dp[j],dp[j-c[i]]+h[i]);}}ll ans = 0;for(int i = 0; i<=m; i++) {ans = max(ans,1LL*dp[i]*dp[i]-1LL*dp[i]*i-1LL*i*i); }printf("%lld\n",ans);}	return 0 ;
}

 

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

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

相关文章

oracle 账户 锁定 密码忘记了,Oracle System密码忘记 密码修改、删除账号锁定lock

运行cmd命令行录入 sqlplus /nolog 无用户名登录conn /as sysdba 连接到数据本地数据alter user system identified by password; 修改System 密码 为passwordD:\oracle\ora92\bin>sqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on 星期四 8月 16 11:32:22 …

【计蒜客 - 2019南昌邀请赛网络赛 - K】MORE XOR(数学,找规律,打表)

Given a sequence of nn numbers a_1, a_2, \cdots, a_na1​,a2​,⋯,an​ and three functions. Define a function f(l,r)f(l,r) which returns \oplus a[x]⊕a[x] (l \le x \le rl≤x≤r). The \oplus⊕ represents exclusive OR. Define a function g(l,r)g(l,r) which r…

oracle编译失效物化视图,使用“不存在”的Oracle物化视图

启用快速刷新很棘手,有许多奇怪的限制和无用的错误消息.在这种情况下,您需要创建物理化视图日志WITH ROWID,使用()连接语法,并为每个表添加ROWID.create table tablea(my_id number primary key,a number);create table tableb(my_id number primary key,b number);create mate…

【计蒜客 - 2019南昌邀请赛网络赛 - M】Subsequence(字典树,dp预处理)

题干&#xff1a; Give a string SS and NN string T_iTi​ , determine whether T_iTi​ is a subsequence of SS. If ti is subsequence of SS, print YES,else print NO. If there is an array \lbrace K_1, K_2, K_3,\cdots, K_m \rbrace{K1​,K2​,K3​,⋯,Km​} so th…

Linux把文件移动到容器外,Docker容器与主机之间拷贝文件的方法

一般情况下&#xff0c;我们在启动Docker容器的时候可以使用-v参数映射宿主机的文件或者目录到容器里&#xff0c;这样的话&#xff0c;在宿主机相关目录下的文件修改会自动在容器里生效。但是&#xff0c;如果我们已经启动了一个容器的话&#xff0c;就只能使用下面的这种方式…

【计蒜客 - 2019南昌邀请赛网络赛 - H】Coloring Game(找规律,思维dp)

题干&#xff1a; David has a white board with 2 \times N2N grids.He decides to paint some grids black with his brush.He always starts at the top left corner and ends at the bottom right corner, where grids should be black ultimately. Each time he can mov…

linux打包tar包命令,Linux压缩打包方法连载之一:tar命令

Linux压缩打包方法有很多种&#xff0c;以下讲了tar命令的概念&#xff0c;同时文列举了多种范例供大家查看&#xff0c;希望对大家有所帮助....tar命令[rootlinux ~]# tar [-cxtzjvfpPN] 文件与目录 ....参数&#xff1a;-c &#xff1a;建立一个压缩文件的参数指令(create 的…

【计蒜客 - 2019南昌邀请赛网络赛 - I】Max answer(单调栈,RMQ)

题干&#xff1a; Alice has a magic array. She suggests that the value of a interval is equal to the sum of the values in the interval, multiplied by the smallest value in the interval. Now she is planning to find the max value of the intervals in her arr…

linux联想电脑wifi密码,联想笔记本Y7000—ubuntu16.4无法开启wifi的解决办法

一、问题描述本人使用的是联想游戏本Y7000&#xff0c;默认装入Win10系统&#xff0c;然当装入Ubuntu16.04双系统时&#xff0c;会出现无线硬件开关关闭的问题&#xff0c;当然也就无法连网。使用rfkill list all会出现如下提示0:ideapad_wlan: Wireless LANSoft blocked: noHa…

【HDU - 6514】Monitor(二维差分,前缀和)

题干&#xff1a; Monitor Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 163840/163840 K (Java/Others) Total Submission(s): 872 Accepted Submission(s): 145 Problem Description Xiaoteng has a large area of land for growing crops, and the land…

linux网卡限速tc,linux tc 对本机网卡限速

今天由于项目要测试在网络环境不好的情况下&#xff0c;会不会对平台有所影响&#xff0c;要求测试限制服务器流量&#xff0c;我想到了TC&#xff0c;我对TC不是很了解&#xff0c; google了一下&#xff0c;看到了不少文章都是做路由用的&#xff0c;对我来说不是很实用&…

【ZOJ - 3715】Kindergarten Election(枚举得票数,贪心)

题干&#xff1a; At the beginning of the semester in kindergarten, the n little kids (indexed from 1 to n, for convenience) in class need to elect their new leader. The ith kid will vote for his best friend fi (where 1 ≤ fi ≤ n, and its too shame to vo…

修改DNS的Linux脚本,Shell脚本-配置网络

原先学习过shll但是只是了解一下它的语法而已&#xff0c;在平时中并没有使用&#xff0c;在暑假的时候又想起了shell&#xff0c;所以又回顾了一下&#xff0c;学习后一定要用&#xff0c;这样才能掌握。最近实验室刚装好机子&#xff0c;什么都要配置一下&#xff0c;包括网络…

【ZOJ - 3872】Beauty of Array(思维,计算贡献,枚举)

题干&#xff1a; Edward has an array A with N integers. He defines the beauty of an array as the summation of all distinct integers in the array. Now Edward wants to know the summation of the beauty of all contiguous subarray of the array A. Input There…

linux 使用gzip压缩打包的文件,linux常用的解压,压缩,打包

gzip zcat[rootlinux ~]# gzip [-cdt#] 文件名[rootlinux ~]# zcat 文件名.gz参数&#xff1a;-c : 将压缩的数据输出到屏幕上&#xff0c;可通过数据流重导向来处理-d &#xff1a;解压缩参数-t &#xff1a; 可以用来检验一个压缩文件的一致性&#xff5e;看看文件有无错误-#…

【POJ - 1836】Alignment(dp,LIS,最长上升子序列类问题)

题干&#xff1a; In the army, a platoon is composed by n soldiers. During the morning inspection, the soldiers are aligned in a straight line in front of the captain. The captain is not satisfied with the way his soldiers are aligned; it is true that the …

Windows共享Linux打印机,linux – 如何为cups客户端构建windows共享打印机的url

从this page开始&#xff1a;smbThis backend sends print files to printers shared by a Windows host. Examplesof CUPS device-URIs that may be used includes:smb://workgroup/server/printersharenamesmb://server/printersharenamesmb://username:passwordworkgroup/se…

【HDU - 1080】Human Gene Functions(dp,可编辑距离类问题)

题干&#xff1a; 给你两个DNA序列&#xff08;长度不一定相同&#xff09;&#xff0c;你可以在其中任意位置上加入空格&#xff0c;使得最终他俩长度相同&#xff0c;最终相同长度的两个DNA序列会有个相似度比较&#xff08;每个字符相对应的比较&#xff09;&#xff0c;问…

linux 对硬盘重新分区,硬盘重新分区后,linux的硬盘表的重新设置

硬盘重新分区后&#xff0c;linux的硬盘表的重新设置发布时间:2007-12-29 16:04:19来源:红联作者:Alwaysfirm会硬盘分区后uuid会变动&#xff0c;导致linux挂载硬盘出错。-----什么是uuid?UUID&#xff0c;全称Universally Unique Identifier它是一个128位&#xff0c;16字节的…

【POJ - 1837】Balance(dp及其优化)

题干&#xff1a; Gigel has a strange "balance" and he wants to poise it. Actually, the device is different from any other ordinary balance. It orders two arms of negligible weight and each arms length is 15. Some hooks are attached to these arm…