phpskycn作者
17年4个月前IP:未同步
148150
12楼
转自我的Blog
正确解法
思路:首先定义一个函数f()计算不满意度的和,为了方便后面的计算,该函数的返回值类型为Point类型。后面再计算1<x<34时对应的y值,另外还需要一个Point类型的全局变量cache,作为数据缓冲。之后,对比计算得到的y值,如果比cache.y小,就写入cache。
C++ Code
Point cache;
Point f(Point pt){
Point p;
int x = pt.x;
p.x = pt.x;
p.y = (1+33)*(33-x-1)/2+(x-2)*(1+x-2)*3/2;return p;}
Point GMinV(){
Point p;
Point p1;
p.x = 0;
while((p.x)<34)
{p.x ++p1.y = f(p);
if(p1.y<cache.y){cache.x = p.x;cache.y = p1.y;}}
return cache;}
//cache.y是不满度的最小值,cache.x是此时电梯停的楼层。
评论
文号 / 148150

万流景仰
名片发私信
学术分 8
总主题 412 帖总回复 4593 楼拥有证书:专家 老干部 学者 机友 笔友
注册于 2009/03/15 21:53:00最后登录 2026/01/31 04:21:35
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:0

个人简介

CV

笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的