Ryouko's Memory Note
使用vector记录一个数两边的数字,然后把这些数字排序,选中间的那个当做修改后的值.
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std; const int MAX = ;
int a[MAX];
vector<int>ne[MAX];//相邻页
int fabs(int x)
{
if(x<)x=-x;
return x;
}
int main()
{
int n,m;
int i,j;
int tmp1,tmp2;
long long sum1,sum2,maxdis;
long long ans;
while(scanf("%d %d",&n,&m)!=EOF)
{
for(i=;i<m;i++)
scanf("%d",&a[i]); for(i=;i<m-;i++)//statistics
{
if(a[i]!=a[i+])
{
ne[a[i]].push_back(a[i+]);
ne[a[i+]].push_back(a[i]);
}
} maxdis = ;
ans=;
for(i=;i<=n;i++)//sort
{
if(!ne[i].empty())
{
sort(ne[i].begin(),ne[i].end());
tmp2 = ne[i].size()/;
tmp1 = ne[i][tmp2];
sum1=;
sum2=;
for(j=;j<ne[i].size();j++)
{
sum1+=fabs(ne[i][j]-tmp1);
sum2+=fabs(ne[i][j]-i);
}
maxdis = max(maxdis,sum2-sum1);
ans+=sum2;// total turn page former
}
}
printf("%I64d\n",ans/-maxdis);
for(i=;i<=n;i++)
ne[i].clear();
}
return ;
}
Ryouko's Memory Note的更多相关文章
- codeforces 434A A. Ryouko's Memory Note(数学)
题目链接: A. Ryouko's Memory Note time limit per test 1 second memory limit per test 256 megabytes input ...
- 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) 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 C. Ryouko's Memory Note
题意:给你m个数,然后你选择一个数替换成别的数,使得.最小.注意选择的那个数在这m个数与它相同的数都必须替换同样的数. 思路:用vector记录每一个数与它相邻的数,如果相同不必记录,然后遍历替换成与 ...
- CodeForces 433C Ryouko's Memory Note (中位数定理)
<题目链接> 题目大意:给你一堆数字,允许你修改所有相同的数字成为别的数字,不过只能修改一次,问你修改后序列相邻数字的距离和最小是多少. 解题分析: 首先,修改不是任意的,否则那样情况太多 ...
- codeforces 433C. Ryouko's Memory Note 解题报告
题目链接:http://codeforces.com/problemset/problem/433/C 题目意思:一本书有 n 页,每页的编号依次从 1 到 n 编排.如果从页 x 翻到页 y,那么| ...
- 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 433C Ryouko's Memory Note-暴力
Ryouko's Memory Note Time Limit:1000MS Memory Limit:262 ...
随机推荐
- 运动目标跟踪中kalman滤波器的使用
目标跟踪的kalman滤波器介绍 Kalman滤波器是通过前一状态预测当前状态,并使用当前观测状态进行校正,从而保证输出状态平稳变化,可有效抵抗观测误差.因此在运动目标跟踪中也被广泛使用.在视频处理的 ...
- UVA - 11019 Matrix Matcher (二维字符串哈希)
给你一个n*m的矩阵,和一个x*y的模式矩阵,求模式矩阵在原矩阵中的出现次数. 看上去是kmp在二维情况下的版本,但单纯的kmp已经无法做到了,所以考虑字符串哈希. 类比一维情况下的哈希算法,利用容斥 ...
- LeetCode Maximum Length of Pair Chain
原题链接在这里:https://leetcode.com/problems/maximum-length-of-pair-chain/description/ 题目: You are given n ...
- getParameter() getInputStream()和getReader() 区别
我们经常用servlet和jsp, 经常用request.getParameter() 来得到数据. request.getParameter() request.getInputStream() r ...
- python basestring()
作用: basestring是str和unicode的超类(父类),也是抽象类,因此不能被调用和实例化,但可以被用来判断一个对象是否为str或者unicode的实例,isinstance(obj, b ...
- Win7服务器搭建实例教程:教你Win7如何搭建Web服务器【转载】
原文地址:http://www.pc841.com/article/20140607-30534.html 局域网Web服务器的主要功能是实现资源共享,同时借助于局域网服务器访问页面可有效的实现信息的 ...
- GMT时间
GMT:格林尼标准时间 北京时间=GMT时间+8小时
- 洛谷【AT2827】LIS
浅谈\(DP\):https://www.cnblogs.com/AKMer/p/10437525.html 题目传送门:https://www.luogu.org/problemnew/show/A ...
- [转] linux 启动文件及设置环境变量
系统级启动文件 ==================================== 1./etc/rc 主启动文件,不要修改它 2./etc/rc.conf 决定启动哪些系统自带的守护进程 ...
- 基于mjpg-streamer网络视频服务器移植
MJPG简介: MJPG是MJPEG的缩写,但是MJPEG还可以表示文件格式扩展名. MJPEG 全名为 "Motion Joint Photographic Experts Group&q ...