Code:

#include<cstdio>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;
const int maxn=1000000+4;
int n,C[maxn];
struct Data_Structure{
int lowbit(int t){
return t&(-t);
}
void add(int pos,int delta){
while(pos<=n)C[pos]+=delta, pos+=lowbit(pos);
}
int query(int x){
int sum=0;
while(x>0){
sum+=C[x];
x-=lowbit(x);
}
return sum;
}
}T;
int A[maxn],position[maxn];
int main(){
scanf("%d",&n);
for(int i=1;i<=n;++i) scanf("%d",&A[i]), position[A[i]]=i;
long long last=0; for(int i=n;i>=1;--i){
last+=T.query(A[i] -1);
T.add(A[i],1);
} long long best=last; for(int i=1;i<=n;++i)
best=min(best,last-(position[i]-1) + (n-position[i])),last=last-(position[i]-1)+(n-position[i]);
printf("%lld",best);
return 0;
}

  

[USACO10NOV]奶牛的图片Cow Photographs 树状数组 递推的更多相关文章

  1. [USACO10NOV]奶牛的图片Cow Photographs

    题目描述 Farmer John希望给他的N(1<=N<=100,000)只奶牛拍照片,这样他就可以向他的朋友炫耀他的奶牛. 这N只奶牛被标号为1..N. 在照相的那一天,奶牛们排成了一排 ...

  2. [bzoj2058][Usaco2010 Nov]Cow Photographs_树状数组_动态规划

    Cow Photographs bzoj-2058 Usaco-2010 Nov 题目大意:给定一个n的排列.每次操作可以交换相邻两个数.问将序列变成一个:$i,i+1,i+2,...,n,1,2,. ...

  3. hdu 2838 Cow Sorting (树状数组)

    Cow Sorting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  4. LG5200 「USACO2019JAN」Sleepy Cow Sorting 树状数组

    \(\mathrm{Sleepy Cow Sorting}\) 问题描述 LG5200 题解 树状数组. 设\(c[i]\)代表\([1,i]\)中归位数. 显然最终的目的是将整个序列排序为一个上升序 ...

  5. hdu 2838 Cow Sorting 树状数组求所有比x小的数的个数

    Cow Sorting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  6. [Usaco2014 Open Gold ]Cow Optics (树状数组+扫描线/函数式线段树)

    这道题一上手就知道怎么做了= = 直接求出原光路和从目标点出发的光路,求这些光路的交点就行了 然后用树状数组+扫描线或函数式线段树就能过了= = 大量的离散+模拟+二分什么的特别恶心,考试的时候是想到 ...

  7. HDU2838 Cow Sorting 树状数组 区间求和加逆序数的应用

    这题目意思非常easy,就是给你一个数组,然后让你又一次排好序,排序有要求的,每次仅仅能交换两个元素的位置,交换须要一个代价 就是两个元素之和,问你把数组重小到大排好最少须要多少代价 可能一開始想不到 ...

  8. HDU Cow Sorting (树状数组)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2838 Cow Sorting Problem Description Sherlock's N (1  ...

  9. P2995 [USACO10NOV]牛的照片(树状数组,逆序对)

    题目: P2995 [USACO10NOV]牛的照片Cow Photographs P4545 [USACO10NOV]奶牛的图片Cow Photographs SP7809 COWPIC - Cow ...

随机推荐

  1. android 双击图片变大,缩放功能

    package com.example.administrator.myapplicationphotochange; /** * Created by Administrator on 2016/8 ...

  2. iOS11即将到来,让我们具体了解下

    谷歌开发者大会后,苹果的WWDC终于也要来了,目前准确时间已经确定. 近日,苹果官方发出的公告显示,WWDC 2017将在北京时间6月6日凌晨1点正式进行,同时他们强调会进行现场直播,用户可以在苹果主 ...

  3. 「JavaSE 重新出发」05.01.01 equals 方法

    equals 方法示例 // 代码来自<Java核心技术 卷I>P167 // 父类 public class Employee{ ... public boolean equals(Ob ...

  4. linux进程的有效用户ID

    进程的有效用户ID用于文件访问时的权限检查.通常,有效用户ID等于实际用户ID(也就是你登录是的用户ID),有效组ID等于实际组ID. 我们知道每个文件针对不同的user有不同的读.写.执行权限.当执 ...

  5. 别让好想法埋没:如何进行APP开发?

    经常和许多创业者讨论,发现很多人想法都不错,但是都不知道该如何实现,今天就如何引导大家走出第一步写一篇文章,很多人通常误会一件事情,认为程序员开发可以一步步把自己的想法拼接出来,我有一个功能点,就让程 ...

  6. 理解UIView的绘制-孙亚洲

    前言 最近研究OpenGL ES相关和 GPU 相关 发现这篇文章很具有参考的入门价值. 理解 UIView 的绘制, UIView 是如何显示到 Screen 上的? 首先要从Runloop开始说, ...

  7. Declarative programming-声明式编程-布局约束是一个案例

    声明式编程需要底层或运行时环境支持. 声明式语言的关键词确定了执行的关键控制流. 表述编程语言是说明性的东西:而不是具体的执行方案. 通常他的执行由解释器进行. In computer science ...

  8. 使用multiprocessing模块操作进程

    1.Process模块介绍 process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建. Process([group [, target [, name [, args [, kwa ...

  9. 亲历:IT 从业者避免猝死攻略 v1.0

    作者:香蕉痞 出处:http://www.geekpark.net/read/view/191188?u=0 亲历:IT 从业者避免猝死攻略 v1.0 By 香蕉痞 | 2013/10/28 [核心提 ...

  10. Maven学习总结(25)——Eclipse Maven Update 时JDK版本变更问题

    1.新建一个Maven项目JDK版本和系统版本不对应, 2.右键Maven项目->Maven->Update ProjectJDK版本改变了, 3.操作系统的JDK重装了新的版本,这是引起 ...