ZOJ 3956 Course Selection System】的更多相关文章

题意 有n节课可供选择,每节课都有两个值Hi和Ci,如果学生选择了m节课(x1,x2,....,xm),则它的舒适值被定义为: //这里没有公式((lll¬ω¬)),因为那个图片我保存不下来≧ ﹏ ≦,见原题好啦~ 分析 当时被这个公式搞得很懵逼,场上想了几种贪心发现都能找出反例.结束后听学长们说是个背包...一脸懵逼. 我们在来看这个题···我们发现Ci比Hi小很多··这里算是一个暗示o(* ̄▽ ̄*)o 我们再来看那个公式我们可以发现,当 C一定时,H越大这个舒适值越大.而对于每一节课我们都只…
题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3956 题意 给出N组Hi Ci 然后 要选出若干个 使得 这个式子的值最大 然后是可以不选的,这个式子的值就是0 思路 因为 Ci 的范围特别小,我们就可以用Ci 来当做容量 进行01背包 其实在做题的时候有一个问题 就是 ci 并不是连续的 如果 给出一组数据 3 10 1 5 1 2 10 那个ci 的最大就是 12 但是 其实有效值 能够选择的 Ci 其实…
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3956 题意:就是给你Hi,Ci的值,问怎么取使得下面那个式子的值最大: 理解:当时做了好久以为是贪心>_<.后来看别人的题解发现是01背包,现在学了01背包以后看就好理解多了. 因为每个值都是取或不取,所以容易想到是01背包.而且Hi的范围是[1,10000],Ci的范围是[1,100],n是[1,500],所以明显可以发现Ci适合做“物品体积”,Hi做“物品价值”,Σ…
ZOJ3956 观察数据范围, c的值非常小 只有100 所以c的和也很有限 只有50000 是否可以从这里下手? 对于某一个c的和 我们一定希望h的和最大 才有可能是最终答案. 于是有了类似背包的dp方程. 代码很简单,就不给出方程了. //比赛的时候想得太多,都想到斜率优化上了,完全忽略了c的范围这么小!!!毕竟图样. //一个人的面命运,当然要靠自我奋斗,但是也要考虑到历史的行程. #include<iostream> #include<cstdio> #include<…
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3956 Course Selection System Time Limit: 1 Second      Memory Limit: 65536 KB There are n courses in the course selection system of Marjar University. The i-th course is described by two va…
Course Selection System ZOJ - 3956 这个题目居然是一个01背包,我觉得好难想啊,根本就没有想到. 这个题目把题目给的转化为  ans = a*a-a*b-b*b 这个可以看成 当b不变的时候 a 越大越好. 这个就可以用01背包来解决 #include <cstdio> #include <cstring> #include <algorithm> #include <iostream> #include <algor…
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5565 Course Selection System Time Limit: 1 Second      Memory Limit: 65536 KB There are n courses in the course selection system of Marjar University. The i-th course is described by t…
Course Selection System 比赛的时候最后20分钟想到了是01背包,奈何没时间推出怎么背. 题意:n门课程,每门课程都有一个h值和c值,现在给出一个happy的定义,所选的课程的h的和H,c的和C,happy=H^2-C^2-HC.求happy的最大值. 思路:开始以为是贪心,但感觉没有贪心这么简单,在这个问题中每门课程都有选或不选两种情况,很容易就想到01背包,但是状态方程不好求,此方程等价:H(H-C)-C^2.即H越大,值越大.注意到c的和也只有50000,我们可以用c…
题意: 输入数据n,m.n代表工厂的数量,m代表城市的数量. 接下来n+m行为工厂和城市的坐标. 规定如图所示方向刮风,工厂的air会污染风向地区的air. 注意,工厂和城市的坐标表示的是从x到x+1从y到y+1之间小正方形都是工厂区域,规定如果只有一个coner的air被污染那么该地区视为无污染. 要求输出有多少不被污染的城市. 坑: 思考了很多问题.... 1.加入某城市的正下方是工厂怎么办...这个是否算污染. 2.假如有两个角被污染了怎么办...算污染吗. 坑了一整天.没办法找大神的代码…
zoj3956_Solution H=sum(hi),C=sum(ci),Value=H*H-H*C-C*C 求Value的最大值 Solution: 动态规划: 共两维:H,C           固定一维C,在该维值C相同的情况下另一维应最大H,从而动态规划另一维H,转变为01背包问题. 优化: H*H-H*C-C*C=0 (H,C>0) H/C=(1+sqrt(5))/2=1.6180… 必会选择h/c>(1+sqrt(5))/2 的(h,c)对 证明: 若Value大于0,则H/C&g…