[bzoj1106] [POI2007]立方体大作战tet
2016-06-19 11:47
411 查看
两对数中间相交应该是可以随便取得。。如果一对数被包含的话,就应该先选这对数。
按顺序读入,凑成一对数就扔掉,树状数组更新对其他位置的影响。
View Code
按顺序读入,凑成一对数就扔掉,树状数组更新对其他位置的影响。
#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> using namespace std; const int maxn=50023; int t[maxn<<1],pre[maxn]; int i,j,k,n,m,ans; inline void del(int x){while(x<=n)t[x]--,x+=x&-x;} inline void add(int x){while(x<=n)t[x]++,x+=x&-x;} inline int get(int x){int sm=0;while(x)sm+=t[x],x-=x&-x;return sm;} int ra;char rx; inline int read(){ rx=getchar(),ra=0; while(rx<'0'||rx>'9')rx=getchar(); while(rx>='0'&&rx<='9')ra*=10,ra+=rx-48,rx=getchar();return ra; } int main(){ n=read()<<1; for(i=1;i<=n;i++){ j=read(); if(!pre[j])pre[j]=i,add(i);else ans+=get(i)-get(pre[j]-1)-1, del(pre[j]); } printf("%d\n",ans); }
View Code
相关文章推荐
- .gitignore文件不起作用
- Ubuntu 安装Redis
- Android触摸屏事件派发机制详解与源码分析一(View篇)
- createjs入门
- Java线程面试题 Top 50
- 想加入一行代码吗?使用<code>标签
- 省赛总结
- Linux 文件系统与设备文件系统 (一)—— udev 设备文件系统
- $(function(){})和$(document).ready(function(){}) 的用法
- 批注:C++设计模式——工厂方法模式:合并
- 太阳的后裔 OST.1 Always
- Timer和TimerTask(转载)
- 暴力枚举算法之谁做的好事
- python中的__doc__,__name__
- <address>标签,为网页加入地址信息
- Linux 文件系统与设备文件系统 (二)—— sysfs 文件系统与Linux设备模型
- gitbook使用
- ubuntu 16.04 安装
- 日向blog开发记录
- SpringMVC i18n国际化资源文件路径配置