菜菜给题解,良心出题人!但我还是照常写SRM一句话题解吧...

  T1经典题正解好像是贪心...我比较蠢写了个DP,不过还跑的挺快的

  f[i]=min( f[j-a[j]-1] )+1  { j+a[j]>=i , j<=i }

  这个显然就是查询一个后缀的最小值,倒着做BIT查前缀就行了

  T2建一个超级源点做MST就行了

  T3是一个模拟题,首先预处理出所有数在当前位置是小于坐标还是大于坐标,也就是随着向左挪一格是对答案贡献是增还是减,同时可以算出对答案贡献从增变减或从减变增的分界点,做差分。再扫一遍的时候,照常差分的同时将第一个数跑到最后一个数做一个特殊的处理,不然不好写。特殊处理就是把now减去2,因为第一个数在1位置一定对答案是增,而到n的时候变减了,至于之后状态的改变就靠差分了,所以这个数对答案的贡献从增变成了减,一下-2,但是在算当前答案的时候实际上只少了1,于是计算当前答案我们再把1给他加回去...

  看起来就很乱,因为是个比较复杂的模拟题,再加上我写的丑+表达能力不好QAQ

  T3看代码吧...或者去向CYC学习一波,他的T3比我快到不知道哪里去了

#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#define ll long long
using namespace std;
int n,x,a[],chafen[],fangan;
ll xz,zeng,ans;
void read(int &k)
{
int f=;k=;char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(c<=''&&c>='')k=k*+c-'',c=getchar();
k*=f;
}
int abs(int x){return x>=?x:-x;}
int main()
{
read(n);
for(int i=;i<=n;i++)
read(a[i]);
for(int i=;i<=n;i++)
{
if(a[i]>=i)
{
chafen[a[i]-i]++;
xz+=a[i]-i;
zeng--;
}
else
{
chafen[a[i]+n-i]++;
xz+=i-a[i];
zeng++;
}
}
ans=xz;
for(int i=;i<n;i++)
{
zeng+=chafen[i-]*-;
xz+=abs(a[n-i+]-)-abs(a[n-i+]-n)++zeng;
ans=min(ans,xz);
}
printf("%lld",ans);
return ;
}

最新文章

  1. 浏览器与HTML5的相辅相成
  2. JAVA thread0.interrupt()方法
  3. Java_Servlet 中文乱码问题及解决方案剖析
  4. 深入理解java虚拟机【内存溢出实例】
  5. PowerShell实现文件下载(类wget)
  6. 4. 星际争霸之php设计模式--工厂方法模式
  7. c#中如何不通过后台直接用js筛选gridview中的数据条件筛选查询?
  8. linux ssh 无密码登陆
  9. CSS3 背景
  10. php:检测用户当前浏览器是否为IE浏览器
  11. 【.NET】Repeater控件简单的数据绑定(有bool,日期,序号)
  12. Python基础之字符编码
  13. Gym 101908C - Pizza Cutter - [树状数组]
  14. JavaScript中对象和数组的深拷贝
  15. 小程序中通过判断id来删除数据,当数据长度为0时,显示隐藏部分(交流QQ群:604788754)
  16. selenium中切换浏览器不同tab 的操作
  17. cent6.x配置主机名及静态网络
  18. NLP笔记:词向量和语言模型
  19. lunix 项目部署 *****
  20. scala编程第16章学习笔记(1)

热门文章

  1. Kotlin的密封(Sealed)类:超强的枚举(KAD 28)
  2. ADO.NET基础学习-----四种模型,防止SQL注入
  3. 【shell 每日一练6】初始化安装Mysql并修改密码
  4. vim—自动缩进(编写Python脚本)
  5. [问题] docker: Failed to start Docker Application Container Engine.
  6. 局部加权回归(LWR) Matlab模板
  7. “Hello world!”团队—选题展示
  8. iOS-创建UIScrollerView(封装UIScrollerView)
  9. noauth authentication required redis
  10. [C/C++] C/C++错题集