Codeforces Round #248 (Div. 1)——Ryouko's Memory Note
- 题意:
给n和m,一行m个1<=x<=n的数。记c=
.如今仅仅能选择一个数x变成y,序列中全部等于x的值都变成y,求最小的c - 分析:
对于一个数x,把与他相邻的所有的非x的数所有写下来。假设x增大,那么一部分值增大。一部分减小,且每一个数的增大值或减小值都是x的变化值(均相等),也就是说总的结果仅仅和比x大的数与比x小的数的数量有关,所以即中位数。
const int maxn = 110000; LL ipt[maxn];
map<LL, vector<LL> > mp;
map<LL, vector<LL> >::iterator it; int main()
{
int n, m;
while (~RII(n, m))
{
mp.clear();
REP(i, m)
{
cin >> ipt[i];
}
REP(i, m)
{
if (i > 0 && ipt[i - 1] != ipt[i])
mp[ipt[i]].push_back(ipt[i - 1]);
if (i < m - 1 && ipt[i + 1] != ipt[i])
mp[ipt[i]].push_back(ipt[i + 1]);
}
LL ans = 0;
FC(it, mp)
{
vector<LL>& ipt = it->second;
sort(all(ipt));
LL t = 0, m = ipt[(LL)ipt.size() / 2];
REP(i, ipt.size())
{
t += abs((it->first) - ipt[i]) - abs(m - ipt[i]);
}
ans = max(ans, t);
}
ans *= -1;
REP(i, m - 1)
ans += abs(ipt[i] - ipt[i + 1]);
cout << ans << endl;
}
return 0;
}
Codeforces Round #248 (Div. 1)——Ryouko's Memory Note的更多相关文章
- Codeforces Round #248 (Div. 1)——Nanami's Digital Board
题目连接 题意: 给n*m的0/1矩阵,q次操作,每次有两种:1)将x,y位置值翻转 2)计算以(x,y)为边界的矩形的面积最大值 (1 ≤ n, m, q ≤ 1000) 分析: 考虑以(x,y)为 ...
- Codeforces Round #248 (Div. 1) A. Ryouko's Memory Note 水题
A. Ryouko's Memory Note 题目连接: http://www.codeforces.com/contest/434/problem/A Description Ryouko is ...
- Codeforces Round #248 (Div. 2) (ABCD解决问题的方法)
比赛链接:http://codeforces.com/contest/433 A. Kitahara Haruki's Gift time limit per test:1 second memory ...
- Codeforces 433 C. Ryouko's Memory Note
C. Ryouko's Memory Note time limit per test 1 second memory limit per test 256 megabytes input stand ...
- Codeforces Round #248 (Div. 2) C. Ryouko's Memory Note
题目链接:http://codeforces.com/contest/433/problem/C 思路:可以想到,要把某一个数字变成他的相邻中的数字的其中一个,这样总和才会减少,于是我们可以把每个数的 ...
- Codeforces Round #248 (Div. 2) C. Ryouko's Memory Note (vector 替换)
题目链接 题意:给m个数字, 这些数字都不大于 n, sum的值为相邻两个数字 差的绝对值.求这n个数字里把一个数字 用 其中另一个数字代替以后, 最小的sum值. 分析:刚开始以为两个for 最坏 ...
- Codeforces Round #248 (Div. 2)C 题
题目:http://codeforces.com/contest/433/problem/C 没想到做法就各种纠结, 今天做的都快疯掉了, 太弱了, 等题解一出,就各种恍然大悟 不应该不应该 正文: ...
- Codeforces Round #248 (Div. 1) B. Nanami's Digital Board 暴力 前缀和
B. Nanami's Digital Board 题目连接: http://www.codeforces.com/contest/434/problem/B Description Nanami i ...
- Codeforces Round #313 (Div. 1) Gerald's Hexagon
http://codeforces.com/contest/559/problem/A 题目大意:按顺序给出一个各内角均为120°的六边形的六条边长,求该六边形能分解成多少个边长为1的单位三角形. 解 ...
随机推荐
- JSP:JAVA Bean在JSP中的运用
目录结构,如图: index.jsp <%@ page language="java" import="java.util.*" pageEncoding ...
- Windows Azure 安全最佳实践 - 第 2 部分:Azure 提供哪些现成可用的安全机制
在WindowsAzure安全最佳实践 - 部分:深度解析挑战防御对策中,我介绍了威胁形势以及在您的应用程序中采用深度防御的计划. 在本部分中,我将说明 Windows Azure的安全是一项共同责任 ...
- map对象建立家族姓氏查询
题目:定义一个map对象,其元素的键是家族姓氏,而值是存储该家族孩子名字的vector对象.为这个map容器输入至少六个条目.通过基于家族姓氏的查询检测你的程序,查询应输出该家族所有孩子的名字. // ...
- 万方数据知识平台 TFHpple +Xpath解析
试了一下.基本上适合全部的检索结果. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loadi ...
- android平台中,EventBus研究学习
当一个Android应用功能越来越多的时候.app中各个部分之间通信.往往採用Observer的方式来进行,即注冊----通知----注销的方式运行 各类控件常常须要依据某个状态来更 ...
- 【翻译】十大要避免的Ext JS开发方法
原文地址:http://www.sencha.com/blog/top-10-ext-js-development-practices-to-avoid/ 作者:Sean Lanktree Sean ...
- .NET Core R2
.NET Core R2安装及示例教程 前言 前几天.NET Core发布了.NET Core 1.0.1 R2 预览版,之前想着有时间尝试下.NET Core.由于各种原因,就没有初试.刚好,前 ...
- perl lwp 默认的请求头
</pre><pre name="code" class="html">[root@dr-mysql01 ~]# cat getx.pl ...
- BZOJ 2096([Poi2010]Pilots-单调队列-差值)
2096: [Poi2010]Pilots Time Limit: 30 Sec Memory Limit: 162 MB Submit: 190 Solved: 97 [ Submit][ ...
- 如何去掉List中的重复内容
1.通过循环进行删除 public static void removeDuplicate(List list) { ; i < list.size() - ; i ++ ) { ; j > ...