http://acm.hdu.edu.cn/showproblem.php?pid=4262

树状数组更新点的位置,并可以求出两点之间的有多少球

View Code

 1 #include <stdio.h>
 2 #define maxn  100001
 3 int ans[maxn], n, b[maxn];
 4
 5 int lowbit(int x)
 6 {
 7     return x & (-x);
 8 }
 9
10 void mod(int x, int data)
11 {
12     int i;
13     for(i = x; i <= n; i+=lowbit(i))
14     ans[i] += data;
15 }
16
17 int getSum(int x)
18 {
19     int i, sum=0;
20     for(i = x; i > 0; i -= lowbit(i))
21        sum += ans[i];
22     return  sum;
23 }
24
25 int abs(int a)
26 {
27     if(a < 0)  return -a;
28     return a;
29 }
30
31 int main()
32 {
33     long long  m, i, j, k, l, mark, sum, temp;
34     while(~scanf("%lld",&n), n)
35     {
36         for(i = 1; i <= n; i++)
37         {
38             scanf("%lld",&m);
39             b[m] = i;
40             ans[i] = lowbit(i);
41         }
42         mark = 1;
43         sum = 0;
44         for(i = 1; i <= n; i++)
45         {
46             if(mark != b[i])
47             {
48                 temp = abs(getSum(mark - 1)-getSum(b[i] - 1));
49                 sum += (temp > (n - i + 1 - temp ) ? (n - i + 1 - temp) : temp);
50             }
51             mark = b[i];
52             mod(b[i], -1);
53         }
54         sum += n;
55         printf("%I64d\n",sum);
56     }
57     return 0;
58 }

  

转载于:https://www.cnblogs.com/yoru/archive/2012/08/28/2660849.html

HDU 4262 Juggler相关推荐

  1. HDU 4262 Juggler (模拟+线段树优化)

    转载请注明出处,谢谢http://blog.csdn.net/acm_cxlove/article/details/7854526       by---cxlove http://acm.hdu.e ...

  2. TOJ 4354 HDU 4262 Juggler / 树状数组

    Juggler 时间限制(普通/Java):1000MS/3000MS     运行内存限制:65536KByte   描述 As part of my magical juggling act, I ...

  3. HDU 4262 Juggler 树状数组

    将每个球按输入顺序编号,建立 它第几个被扔掉->编号 的映射关系. 记录当前在手里的球的编号,按扔掉的顺序查找这个球的编号,看看这个球是逆时针转到手里更近还是顺时针转到手里更近,即当前扔掉球的编 ...

  4. hdu 4262 Juggler(树状数组)

    题意:某人手上有一串珠子,顺时针编号1--n,每次可进行三种操作:顺时针旋转一个珠子,逆时针旋转一个珠子,将手中的珠子移去(移去后顺时针方向下一个珠子进入手中),问按标号12345顺序将所有珠子逐一移 ...

  5. hdu 4262 Juggler 这题真是跟小丑一般。。。

    题意: 有个球的圈圈.三种操作:逆时针转一个,顺时针转一个,丢掉手中的那个的同时顺时针的球到你的手里.每个操作都花费一秒.告诉你要求的出圈顺序,求最小花费时间.注:开始在手中的球为1. 解: 线段树和 ...

  6. 线段树——单点更新(二)

    HDU 4217 Data Structure? http://acm.hdu.edu.cn/showproblem.php?pid=4217 CZ做的一道题目,我帮忙看了看. 题意:给定N个数(1- ...

  7. 【模拟+线段树】 hdu4262 Juggler

    Juggler 题目:http://acm.hdu.edu.cn/showproblem.php?pid=4262 题意:有个数字圆环.三种操作:逆时针转一个,顺时针转一个,丢掉手中的那个的同时顺时针 ...

  8. HDU4262 Juggler

    http://acm.hdu.edu.cn/showproblem.php?pid=4262 题意:给你一串珠子,开始手握第一号珠子.有三种操作:顺时针转动一个珠子,逆时针转一个珠子,取下一个珠子(此 ...

  9. HDU——1106排序(istringstream的使用、STLvector练习)

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

最新文章

  1. 半吊子菜鸟学Web开发 -- PHP学习 4 --异常
  2. python dash库_让你事半功倍的小众 Python 库
  3. iOS 苹果app提交 ITC.apps.validation.prerelease_build_missing
  4. windows下cmd中清屏
  5. 解读设计模式----简单工厂模式(SimpleFactory Pattern),你要什么我就给你什么
  6. 低通滤波和高通滤波的理解
  7. Delphi 取整函数round、trunc、ceil和floor
  8. [转]如何有效地记忆与学习
  9. python perl 正则_为什么说perl的正则表达式功能比Python强大
  10. 【测试】15.质量管理体系
  11. Nginx工作原理和优化、漏洞
  12. PCB Layout 注意事项——布线
  13. Kalman滤波器(1960年论文原文翻译)
  14. uniapp 标签打印 笔记
  15. 小米其实已在悄悄涨价了,用户反应不一
  16. 通过Xcodeproj深入探究Xcode工程文件 一
  17. C++时间戳time_t和时间结构体tm
  18. Eigen 矩阵的特征值特征向量求解(EVD分解)
  19. DataGrip入门小tips
  20. 嫁给玩股票男人的九大理由

热门文章

  1. Maven命令行窗口指定settings.xml
  2. 基于STM32和ATH20实现OLED显示温湿度
  3. error: prototype for ‘xxx‘ does not match any in class ‘XXX‘
  4. 怎么购买苹果教育优惠产品?苹果在线商店购买教育优惠产品的具体流程
  5. java三个数排序从小到大,键盘输入三个数,实现从小到大排序,键盘输入从小到大...
  6. 钉钉企业内部应用获取登录用户信息
  7. 二氧化硅改性活性炭|SiO2改性的V2O5-MoO3/TiO2催化剂|SiO2改性MCM-22分子筛上联苯|纳米SiO2改性环氧涂层海洋腐蚀规律
  8. 更聪明的免费图片素材搜素引擎 Everypixel 用 AI 排除俗气照片
  9. 应用技术大公开系列Q之八:(纳米纤维).石墨烯滤芯的制备工艺 (*9-2)
  10. 立象Argox CP-2140E 打印机驱动