HDU 4262 Juggler
http://acm.hdu.edu.cn/showproblem.php?pid=4262
树状数组更新点的位置,并可以求出两点之间的有多少球
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相关推荐
- HDU 4262 Juggler (模拟+线段树优化)
转载请注明出处,谢谢http://blog.csdn.net/acm_cxlove/article/details/7854526 by---cxlove http://acm.hdu.e ...
- TOJ 4354 HDU 4262 Juggler / 树状数组
Juggler 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte 描述 As part of my magical juggling act, I ...
- HDU 4262 Juggler 树状数组
将每个球按输入顺序编号,建立 它第几个被扔掉->编号 的映射关系. 记录当前在手里的球的编号,按扔掉的顺序查找这个球的编号,看看这个球是逆时针转到手里更近还是顺时针转到手里更近,即当前扔掉球的编 ...
- hdu 4262 Juggler(树状数组)
题意:某人手上有一串珠子,顺时针编号1--n,每次可进行三种操作:顺时针旋转一个珠子,逆时针旋转一个珠子,将手中的珠子移去(移去后顺时针方向下一个珠子进入手中),问按标号12345顺序将所有珠子逐一移 ...
- hdu 4262 Juggler 这题真是跟小丑一般。。。
题意: 有个球的圈圈.三种操作:逆时针转一个,顺时针转一个,丢掉手中的那个的同时顺时针的球到你的手里.每个操作都花费一秒.告诉你要求的出圈顺序,求最小花费时间.注:开始在手中的球为1. 解: 线段树和 ...
- 线段树——单点更新(二)
HDU 4217 Data Structure? http://acm.hdu.edu.cn/showproblem.php?pid=4217 CZ做的一道题目,我帮忙看了看. 题意:给定N个数(1- ...
- 【模拟+线段树】 hdu4262 Juggler
Juggler 题目:http://acm.hdu.edu.cn/showproblem.php?pid=4262 题意:有个数字圆环.三种操作:逆时针转一个,顺时针转一个,丢掉手中的那个的同时顺时针 ...
- HDU4262 Juggler
http://acm.hdu.edu.cn/showproblem.php?pid=4262 题意:给你一串珠子,开始手握第一号珠子.有三种操作:顺时针转动一个珠子,逆时针转一个珠子,取下一个珠子(此 ...
- HDU——1106排序(istringstream的使用、STLvector练习)
排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
最新文章
- 半吊子菜鸟学Web开发 -- PHP学习 4 --异常
- python dash库_让你事半功倍的小众 Python 库
- iOS 苹果app提交 ITC.apps.validation.prerelease_build_missing
- windows下cmd中清屏
- 解读设计模式----简单工厂模式(SimpleFactory Pattern),你要什么我就给你什么
- 低通滤波和高通滤波的理解
- Delphi 取整函数round、trunc、ceil和floor
- [转]如何有效地记忆与学习
- python perl 正则_为什么说perl的正则表达式功能比Python强大
- 【测试】15.质量管理体系
- Nginx工作原理和优化、漏洞
- PCB Layout 注意事项——布线
- Kalman滤波器(1960年论文原文翻译)
- uniapp 标签打印 笔记
- 小米其实已在悄悄涨价了,用户反应不一
- 通过Xcodeproj深入探究Xcode工程文件 一
- C++时间戳time_t和时间结构体tm
- Eigen 矩阵的特征值特征向量求解(EVD分解)
- DataGrip入门小tips
- 嫁给玩股票男人的九大理由
热门文章
- Maven命令行窗口指定settings.xml
- 基于STM32和ATH20实现OLED显示温湿度
- error: prototype for ‘xxx‘ does not match any in class ‘XXX‘
- 怎么购买苹果教育优惠产品?苹果在线商店购买教育优惠产品的具体流程
- java三个数排序从小到大,键盘输入三个数,实现从小到大排序,键盘输入从小到大...
- 钉钉企业内部应用获取登录用户信息
- 二氧化硅改性活性炭|SiO2改性的V2O5-MoO3/TiO2催化剂|SiO2改性MCM-22分子筛上联苯|纳米SiO2改性环氧涂层海洋腐蚀规律
- 更聪明的免费图片素材搜素引擎 Everypixel 用 AI 排除俗气照片
- 应用技术大公开系列Q之八:(纳米纤维).石墨烯滤芯的制备工艺 (*9-2)
- 立象Argox CP-2140E 打印机驱动