POJ 1701
/*
Every tenant went up N floors would make the dissatisfied degree rise N * a + 0.5 * N * (N - 1) degrees,
every tenant went down N floors would make the dissatisfied degree rise N * b + 0.5 * N * (N - 1) degrees. △= Dp+1 – Dp
= ∑1=<i<=p Ki*(b+p-i)) - ∑p<i<=n Ki*(a+i-p-1)
= ∑1=<i<=n Ki * i +(b+p)*∑1=<i<=p Ki - (a-p-1)∑p<i<=n Ki
*/ #include <iostream>
#define MAXN 10001
using namespace std; __int64 _m[MAXN+];
int k[MAXN+];
__int64 p_2[MAXN+];
__int64 p_3[MAXN+];
int k_1[MAXN];
int k_2[MAXN]; int main()
{
//freopen("acm.acm","r",stdin);
int test;
int n;
int i;
int j;
int p_1;
int a;
int b;
scanf("%d",&test);
while(test --)
{
scanf("%d",&n);
scanf("%d",&a);
scanf("%d",&b); for(i = ; i <= n; ++ i)
{
scanf("%d",&k[i]);
} for(i = ; i <= n; ++ i)
{
k_1[i] = k_2[i] = k[i];
} for(i = n-; i >=; -- i)
{
k_2[i] += k_2[i+];
} for(i = ; i <= n; ++i)
{
k_1[i] += k_1[i-];
} p_1 = ;
for(i = ; i <= n; ++ i)
{
p_1 += k[i]*i;
} for(i = ; i <= n; ++ i)
{
p_2[i] = (b + i)*k_1[i];
} for(i = ; i <= n; ++ i)
{
k_2[i] -= k[i];
} copy(k_2,k_2+n+,p_3); for(i = ; i <= n; ++ i)
{
p_3[i] *= (a-i-);
}
_m[] = ;
for(i = ; i <= n; ++ i)
{
_m[] += (i-)*a+((i-)*(i-)/);
} for(i = ; i <= n; ++ i)
{
_m[i] = _m[i-] - p_1 + p_2[i-] - p_3[i-];
} __int64 min = ; int place; for(i = ; i <= n; ++ i)
{
if(_m[i] < min)
{
min = _m[i];
place = i;
}
}
cout<<place<<endl;
}
}
关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。

技术网站地址: vmfor.com
POJ 1701的更多相关文章
- poj 1701【数学几何】
The area Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- POJ 题目分类(转载)
Log 2016-3-21 网上找的POJ分类,来源已经不清楚了.百度能百度到一大把.贴一份在博客上,鞭策自己刷题,不能偷懒!! 初期: 一.基本算法: (1)枚举. (poj1753,poj2965 ...
- (转)POJ题目分类
初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. ...
- poj分类
初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. ( ...
- poj 题目分类(1)
poj 题目分类 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K--0.50K:中短代码:0.51K--1.00K:中等代码量:1.01K--2.00K:长代码:2.01 ...
- POJ题目分类(按初级\中级\高级等分类,有助于大家根据个人情况学习)
本文来自:http://www.cppblog.com/snowshine09/archive/2011/08/02/152272.spx 多版本的POJ分类 流传最广的一种分类: 初期: 一.基本算 ...
- POJ题目分类(转)
初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. ...
- POJ题目细究
acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP: 1011 NTA 简单题 1013 Great Equipment 简单题 102 ...
- POJ题目(转)
http://www.cnblogs.com/kuangbin/archive/2011/07/29/2120667.html 初期:一.基本算法: (1)枚举. (poj1753,poj29 ...
随机推荐
- C++ 11 之初始化
1.4中不同初始化的形式 a.string s("zhl").int i(3); //括号初始化 b.string s="zhl".int ...
- 关于MD5加密的小知识
- (NSString *)MD5Hash { const char *cStr = [self UTF8String]; unsigned char result[16]; CC_MD5(cStr, ...
- 《samba服务配置的文本》
创建简单的samba服务器 samba 很少用于互联网 /大部分用于局域网 网页更新/ 首先看下你是否安装后了samba. rpm -qa | grep samba samba的简介 1)samb ...
- 取代file_get_contents 的一个采集函数
function url_get_content($url=''){ $ch = curl_init(); $timeout = 100; $browser = 'Mozilla/5.0 (Windo ...
- 基于CSS3新属性Animation及transform实现类似翻书效果
注:本实例JS部分均以原生JS编写,不善用原生JS的,可用jQuery等对三方框架改写 先上效果图:(样式有点丑,可以忽略一下下,效果出来了就好,后期加到其他项目中方便更改0.0) 类似翻书效果,原本 ...
- ros-Qt代码环境的搭建
1 建立package catkin_create_pkg beginner_tutorials roscpp 2 导入Qt Qt中打开整个工作空间的src/CMakeLists.txt 在倒数第二行 ...
- 如何重建Octopress本地环境
# 安装rvm, ruby, bundler 略 # 克隆octopress $ git clone git://github.com/imathis/octopress.git octopress ...
- 内部技术分享的 PPT
本文的基础是搞了一次内部的技术分享,在此也分享一下本次的PPT的一些内容.先列一下大概内容吧. EF-Code First API(WCF.WebAPI) Xaml MVVM AOP Xamarin. ...
- Oracle中的if...then...elsif
if...then...elsif实现多分支判断语句 其语法如下: if <condition_expression1> then plsql_sentence_1; elseif< ...
- Eclipse 常用插件
/* ===================== Eclipse Color Theme 语法高亮 ======================== */ 安装方法同上,软件安装URL http:// ...