先贪心,容易发现如果两个点中间没有点对,那么一定可以先把这两个点消掉
分析一下,就可以发现这样两个点的答案就是这两个点对中间不成对的点数量
扫描过去,线段树维护每一个点的权值(是否会被算入答案)即可

 1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 100005
4 #define L (k<<1)
5 #define R (L+1)
6 #define mid (l+r>>1)
7 int n,x,ans,vis[N],f[N<<2];
8 void update(int k,int l,int r,int x,int y){
9 if (l==r){
10 f[k]=y;
11 return;
12 }
13 if (x<=mid)update(L,l,mid,x,y);
14 else update(R,mid+1,r,x,y);
15 f[k]=f[L]+f[R];
16 }
17 int query(int k,int l,int r,int x,int y){
18 if ((l>y)||(x>r))return 0;
19 if ((x<=l)&&(r<=y))return f[k];
20 return query(L,l,mid,x,y)+query(R,mid+1,r,x,y);
21 }
22 int main(){
23 scanf("%d",&n);
24 for(int i=1;i<=2*n;i++){
25 scanf("%d",&x);
26 if (!vis[x]){
27 update(1,1,2*n,i,1);
28 vis[x]=i;
29 }
30 else{
31 if (vis[x]<0)continue;
32 ans+=query(1,1,2*n,vis[x]+1,i-1);
33 update(1,1,2*n,vis[x],0);
34 vis[x]=-1;
35 }
36 }
37 printf("%d",ans);
38 }

[bzoj1106]立方体大作战的更多相关文章

  1. [BZOJ1106][POI2007] Tet 立方体大作战

    Description 一个叫做立方体大作战的游戏风靡整个Byteotia.这个游戏的规则是相当复杂的,所以我们只介绍他的简单规则:给定玩家一个有2n个元素的栈,元素一个叠一个地放置.这些元素拥有n个 ...

  2. BZOJ1106: [POI2007]立方体大作战tet

    1106: [POI2007]立方体大作战tet Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 419  Solved: 302[Submit][St ...

  3. BZOJ1106[POI2007]立方体大作战tet - 树状数组

    描述 一个叫做立方体大作战的游戏风靡整个Byteotia.这个游戏的规则是相当复杂的,所以我们只介绍他的简单规则:给定玩家一个有2n个元素的栈,元素一个叠一个地放置.这些元素拥有n个不同的编号,每个编 ...

  4. [BZOJ1106/POI2007]Tet立方体大作战

    Description 一个叫做立方体大作战的游戏风靡整个Byteotia.这个游戏的规则是相当复杂的,所以我们只介绍他的简单规则:给定玩家一个有2n个元素的栈,元素一个叠一个地放置.这些元素拥有n个 ...

  5. BZOJ 1106: [POI2007]立方体大作战tet

    1106: [POI2007]立方体大作战tet Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 682  Solved: 496[Submit][St ...

  6. bzoj 1106 [POI2007]立方体大作战tet 树状数组优化

    [POI2007]立方体大作战tet Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 821  Solved: 601[Submit][Status][ ...

  7. BZOJ 1106: [POI2007]立方体大作战tet 树状数组 + 贪心

    Description 一个叫做立方体大作战的游戏风靡整个Byteotia.这个游戏的规则是相当复杂的,所以我们只介绍他的简单规 则:给定玩家一个有2n个元素的栈,元素一个叠一个地放置.这些元素拥有n ...

  8. Test 3.27 T1 立方体大作战

    Description ​ 一个叫做立方体大作战的游戏风靡整个 Byteotia.这个游戏的规则是相当复杂的,所以我们只介绍他的简单规则:给定玩家一个有 2n 个元素的栈,元素一个叠一个地放置.这些元 ...

  9. Day6 - G - 立方体大作战tet HYSBZ - 1106

    一个叫做立方体大作战的游戏风靡整个Byteotia.这个游戏的规则是相当复杂的,所以我们只介绍他的简单规则:给定玩家一个有2n个元素的栈,元素一个叠一个地放置.这些元素拥有n个不同的编号,每个编号正好 ...

随机推荐

  1. canvas 实现简单的画板功能 1.0

    canvas 实现自由画线,变换颜色.画笔大小,撤销上一步等简单功能 <!DOCTYPE html> <html lang="en"> <head&g ...

  2. Python | 一键生成九宫格图片

    一键生成九宫格图片 首先我们准备几张图片: 将代码文件放在放置图片的地方,用软件打开: 点击运行,在当前目录下会生成一个文件夹: 打开新生成的文件夹: 打开对应图片的名称文件夹: 如果不想图片被分成9 ...

  3. 题解 [HNOI2019]序列

    题目传送门 题目大意 给出一个\(n\)个数的数列\(A_{1,2,...,n}\),求出一个单调不减的数列\(B_{1,2,...,n}\),使得\(\sum_{i=1}^{n}(A_i-B_i)^ ...

  4. 初探JavaScript PDF blob转换为Word docx方法

    PDF转WORD为什么是历史难题 PDF 转Word 是一个非常非常普遍的需求,可谓人人忌危,为什么如此普遍的需求,却如此难行呢,还得看为什么会有这样的一个需求: PDF文档遵循iOS32000的规范 ...

  5. 成功在Caterpillar代码中插入事件对象-20200917

    首先搞清楚了Caterpillar的solidity代码生成机制.Caterpillar分为Caterpillar Core和 executepanel两部分. executePanel是UI前端,用 ...

  6. Java:线程池

    Java:线程池 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 获取多线程的方法: 实现 Runnable 接口 实现 Callable 接口 实例化 Thre ...

  7. Java:容器类线程不安全

    Java:容器类线程不安全 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 1. Collection 线程不安全的举例 前言 1.当我们执行下面语句的时候,底层 ...

  8. UltraSoft - Beta - Scrum Meeting 5

    Date: May 21st, 2020. Scrum 情况汇报 进度情况 组员 负责 今日进度 q2l PM.后端 修复了课程通知链接的bug Liuzh 前端 暂无 Kkkk 前端 增加消息中心板 ...

  9. ruby基本图片上传

    图片上传问题 在我们的项目里,需要实现海报的图片上传,便于更好地向外界展示一个社团活动的基本内容,但是在处理中间件相关问题时遇到了一点小小的挫折.不过这并不要紧,OSS对象存储服务固然好,但是本着交完 ...

  10. STM32程序异常——中断处理要谨慎

    问题背景 最近有一个新项目(车载项目),板子上除了原来的ARM + STM32F030K6Tx又多了一个8bit的mcu的单片机,这可真是嵌入式全家福了. 系统的主要核心工作是由arm来完成,但是在开 ...