汕头市队赛 SRM 07 C 整洁的麻将桌
C 整洁的麻将桌 SRM 07
背景&&描述
天才麻将少女KPM立志要在日麻界闯出一番名堂。
KPM上周双打了n场麻将,但她这次没控分,而且因为是全民参与的麻将大赛,所以她的名次范围是1..10^9。
因为找膜法使的事被妹子打断了三条腿后,KPM这次要用自己的真实本领让名次严格递增。
幸好她从前把出题人的头像卖给了炮姐,现在KPM可以入侵比赛系统,修改自己的排名。
KPM毕竟是新手,每次操作只能使自己某场比赛的排名增加或者减少1。
她急着去见妹子,你需要帮她算出最少需要多少次操作。
因为妹子不打麻将,所以哪怕把名次改得<1或者>10^9都是没关系的。
输入格式
第一行一个整数n。
第二行n个整数,表示n场的排名。
输出格式
一个整数,表示最小操作数。
样例输入
5 233 2333 2332 2333 2333
样例输出
3
数据范围与约定
- 对于100%的数据:
这道题据说是套路题 将每个点减去他的位置 然后问题就转换成了求一个不下降序列
然而我连不下降序列都不会 还得去学 唉 惨啊 蒟蒻就是蒟蒻
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define LL long long
using namespace std;
const int M=1e5+;
int read(){
int ans=,f=,c=getchar();
while(c<''||c>''){if(c=='-') f=-; c=getchar();}
while(c>=''&&c<=''){ans=ans*+(c-''); c=getchar();}
return ans*f;
}
int n,w[M],v[M],ans[M];
int main()
{
n=read();
for(int i=;i<=n;i++) w[i]=read()-i,v[i]=w[i];
sort(v+,v++n);
for(int i=;i<=n;i++)
for(int j=;j<=n;j++){
ans[j]+=abs(w[i]-v[j]);
if(j>) ans[j]=min(ans[j],ans[j-]);
}
printf("%d\n",ans[n]);
return ;
}
汕头市队赛 SRM 07 C 整洁的麻将桌的更多相关文章
- 汕头市队赛 SRM 07 D 天才麻将少女kpm
这道题放了很久还是回来补了 D 天才麻将少女KPM SRM 07 背景&&描述 天才麻将少女KPM立志要在日麻界闯出一番名堂. KPM上周叒打了n场麻将,但她这次又没控分,而且 ...
- 汕头市队赛 SRM 07 B 好玩的麻将
B 好玩的麻将 SRM 07 背景&&描述 天才麻将少女KPM立志要在日麻界闯出一番名堂. KPM上周又打了n场麻将,又控了分使得自己的排名是1..n的一个排列. 但她 ...
- 汕头市队赛 SRM 07 A 你的麻将会排序吗
A 你的麻将会排序吗 SRM 07 曾经有过一些沉迷日麻的小孩纸,后来呀,他们都去寻找自己的世界了. kpm也是这样的小孩纸.他想有一只自动整理牌的机器.当麻将以给定的顺序进入机器时,通过机器的运转, ...
- 汕头市队赛SRM 20 T2不净的圣杯
不净的圣杯 SRM 20 背景 作为一张BUG级别的卡,官方打算把它修改得人畜无害一些…… 虽然名字还没想好,但是能力大概是对敌方所有单位造成d点伤害,d为自己牌组中所有卡的编号的最大公约数.这无疑是 ...
- 汕头市队赛 SRM 06 C 秀恩爱
C 秀恩爱 SRM 06 背景&&描述 KPM坐在直升机上俯瞰小渔村景象. 渔村可看作二维平面,密密麻麻地到处都是单身狗,KPM当前所在坐标为(sx,s ...
- 汕头市队赛 SRM 06 A 撕书
A 撕书 SRM 06 背景&&描述 游行寺汀正在杀书. 书总共有n页,每页都可以看作是一个小写英文字母,所以我们可以把书看成长度为n的字符串s. 琉璃 ...
- 汕头市队赛 SRM 06 B 起伏的排名
B 起伏的排名 SRM 06 背景&&描述 天才麻将少女KPM立志要在日麻界闯出一番名堂. 在上个星期她打了n场麻将,每场麻将都有n名玩家.KPM自然记得自己的n次排名. ...
- 汕头市队赛 SRM 08 B
B-3 SRM 08 描述 给长度为 n 的数列 A 和长度为 m 的数列 B,问有多少长度为 m 的数列 C 满足 输入格式 第一行俩整数 n 和 m 第二行 n 个整数 ,表示数列 A 第三行 m ...
- 汕头市队赛 SRM 08 C
C-3 SRM 08 描述 给一个图,n 个点 m 条双向边,每条边有其长度.n 个点中有 k 个是特殊点,问任意两个特殊点的最短路是多少. 输入格式 第一行三个整数 n m k 第二行 k 个整数 ...
随机推荐
- Java实现Avl树
Avl树即左右子树的深度[高度]相差不可超过1,所以在插入key的时候,就会出现需要旋转[更改根节点]的操作 下面是源代码: /* the define of avltree's node */ cl ...
- MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':ge
数据库表里命名有这个字段,可怎么就是报错呢,大神的解释: 加上之后立马好用!!!
- Struts2---数据封装机制
Struts2属性驱动和模型驱动 自动完成了数据的获取和封装 LoginAction.java public class LoginAction implements ModelDriven<U ...
- Div处理滚动条问题
1,用div做容器现在已经十分普遍,下面是最基本的代码 <div style="width:50px;height:50px;background-color:blue"&g ...
- JavaSE总结--多线程
进程: 进程之间内存隔离,内存不共享. 线程: 可以共享内存. 每个线程都是一个栈. 多线程的好处: 1)防止程序阻塞. wait与notify的区别: 针对等待队列而言. wait:进入等待队列.必 ...
- Grub Rescue修复方法[repost]
From : http://www.2cto.com/os/201111/112327.html 症状:开机显示:GRUB loading error:unknow filesystem grub r ...
- 《数据结构与算法分析:C语言描述》复习——第五章“堆”——二叉堆
2014.06.15 22:14 简介: 堆是一种非常实用的数据结构,其中以二叉堆最为常用.二叉堆可以看作一棵完全二叉树,每个节点的键值都大于(小于)其子节点,但左右孩子之间不需要有序.我们关心的通常 ...
- c语言字符串内存分配小记
一.疑问 有这样一道题: #include "stdio.h" int main() { ]; ]; scanf("%s", word1); scanf(&qu ...
- B树、B-树、B+树、B*树 红黑树
转载自:http://blog.csdn.net/quitepig/article/details/8041308 B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right): ...
- Python 3基础教程8--if else、if elif else
本文介绍if else语句,不多说,直接看例子. if elif else语句