http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3635

题意:有n个geek,每个人一张票,每个票号ai表示这个geek要坐在当前第ai个空座上,入座顺序亦为1到n。下面输入query,分别要求输出输入的那个编号的geek座位号。

题解:树状数组。开始时每个点均为1插入,表示每个座位都是空座。然后对于要求为ai的空座,二分查找满足sum(ans)==ai&&sum(ans-1)==ai-1即为答案。保存后查询时输出,同时删去ans上点。

#include <cstdio>
#include <cstring>
#include <cmath>
#include <map>
#include <set>
#include <vector>
#include <iostream>
#include <algorithm>
#include<string>
using namespace std;
//const double eps=1e-7;
//const double INF=1e50;
//const double pi=acos(-1);#define N 50005
#define M 10000int c[N],n,ans[N];void add(int p,int d)//p位置上加d
{while(p<=n){c[p]+=d;p+=p&(-p);//lowbit[i]=i&(-i);}
}int sum(int p)//a[1]+...+a[p]
{int ret=0;while (p){ret+=c[p];p-=p&(-p);}return ret;
}int find_kth(int k)//log(n)复杂度
{int s=1,t=n,mid,s1,s2;while (s<=t){mid=(s+t)/2;s1=sum(mid);s2=sum(mid-1);if (s1==k && s2==(k-1)) return mid;else if (s1<k) s=mid+1;else t=mid-1;}return mid;
}int main()
{//freopen("a","r",stdin);int i,ai,an,m;while (scanf("%d",&n)!=EOF){for (i=1;i<=n;i++) add(i,1);for (i=1;i<=n;i++){scanf("%d",&ai);an=find_kth(ai);ans[i]=an;add(an,-1);}scanf("%d",&m);for (i=1;i<=m;i++){scanf("%d",&an);if (i>1) printf(" %d",ans[an]);else printf("%d",ans[an]);}printf("\n");}return 0;
}

ZOJ3635 Cinema in Akiba相关推荐

  1. ZOJ3635 Cinema in Akiba(线段树)

    描述 Cinema in Akiba (CIA) is a small but very popular cinema in Akihabara. Every night the cinema is ...

  2. ZOJ 3635 Cinema in Akiba[ 大规模阵列 ]

    门户:ZOJ 3635 Cinema in Akiba Time Limit: 3 Seconds      Memory Limit: 65536 KB Cinema in Akiba (CIA) ...

  3. 浙大月赛C题(2012/8)Cinema in Akiba(线段树)

    http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=4791 (1)第一次写浙大的题目,这题让我十分意外,基本的线段树类 ...

  4. ZOJ Monthly, August 2012 题解

    A: 题目链接:点击打开链接 Alice's present #include <cstdio> #include <iostream> #include <cstrin ...

  5. ZOJ Monthly, August 2012

    http://acm.zju.edu.cn/onlinejudge/showContestProblems.do?contestId=340 A Alice's present   题意:给出一个10 ...

  6. 爬取html数据中文乱码,解决PHP中file_get_contents抓取网页中文乱码问题

    根据网上有朋友介绍说原因可能是服务器开了GZIP压缩. 下面是用firebug查看我的博客的头信息,Gzip是开了的. 请求头信息原始头信息 代码如下 复制代码 Accept text/html,ap ...

  7. C4D和Redshift:2D矢量到三维渲染 Cinema 4D and Redshift: 2D vector to 3D render

    C4D和Redshift:2D矢量到三维渲染 时长:1h 4m |视频:. MP4 1280×720,30 fps(r) |音频:AAC,48000 Hz,2ch |大小解压后:633 MB 含课程文 ...

  8. c4d中的3D插图制作视频教程 Skillshare – 3D Illustration in Cinema 4D

    技能分享--C4D的3D插图 教程大小解压后:1.33G 1920X1080 mp4 语言:英语+中英文字幕(根据原英文字幕机译更准确) C4D是众所周知的平易近人的软件,也是进入3D艺术梦幻世界的理 ...

  9. c4d教程-太空火车站场景创作视频教程Skillshare – Create A Space Train Scene With Cinema 4D Redshift Render

    c4d教程-太空火车站场景创作视频教程Skillshare – Create A Space Train Scene With Cinema 4D & Redshift Render 教程大小 ...

最新文章

  1. Slam十四讲(第二版):1、习题
  2. 从电影死亡笔记看商业智能在治安领域的应用
  3. Spring scope解惑
  4. 有点小激动-Index Condition Pushdown Optimization
  5. 【译】Construction of a Plasma Chain 0x1
  6. 关于动态语言 静态语言 静态类型语言 动态类型语言的区别
  7. mysql 主从 单表_MySQL主从复制单表或者多表
  8. nyoj461 Fibonacci数列(4)解通项公式
  9. openwrt 如何打patch补丁
  10. 中国出口印度尼西亚主要商品
  11. 港湾嫁西门子梦断华为诉讼 内耗致高层离职
  12. 企业邮箱哪个最好用?哪个企业邮箱更优惠?费用是多少?
  13. 2021年的保研之旅总结
  14. 华三华为交换机配置时间
  15. 资深Android开发带你入门Framework,深夜思考
  16. 大规模优化方法(一)
  17. pscp ssh_init: Network error: Cannot assign requested address
  18. 致命打击:携号转网马上要实施,移动吐血!
  19. 学编程需要的电脑配置
  20. 如何在Word中输入英语音标

热门文章

  1. Jetpack Compose 中的架构思想
  2. 逃离dplyr: 不使用group_by和arrange实现分组排序
  3. 通过Measure Arrange实现UWP瀑布流布局
  4. 数据仓库笔记(高质量建模)——01
  5. 下载煎蛋无聊图--简单Web浏览
  6. 白酒行业网络营销分析及思路
  7. Registry和Harbor镜像仓库实例
  8. macbook pro 安装双系统 win10 教程
  9. 爬虫---抖音--准备工作--模拟器出现net::ERR_CONNECTION_TIMED_OUT
  10. Layui中使用ECharts