博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【BZOJ1106】【POI2007】立方体大作战tet(树状数组+贪心)
阅读量:4987 次
发布时间:2019-06-12

本文共 714 字,大约阅读时间需要 2 分钟。

贪心策略:每加入一个数,如果之前已经存在它了,就直接交换

因此我们需要维护距离 就用树状数组好了

注意是2n

#include
#define N 100005using namespace std;int n,tree[N],pre[N],ans;inline int lowbit(int x){ return x&(-x);}inline void update(int x,int del){ for(int i=x;i<=2*n;i+=lowbit(i)) tree[i]+=del;} inline int query(int x){ int ans=0; for(int i=x;i;i-=lowbit(i)) ans+=tree[i]; return ans;}int main(){ scanf("%d",&n); for(int i=1,x;i<=2*n;i++) { scanf("%d",&x); if(!pre[x]) { pre[x]=i; update(i,1); } else { ans+=query(i)-query(pre[x]); update(pre[x],-1); } } cout<

转载于:https://www.cnblogs.com/Patrickpwq/articles/9853312.html

你可能感兴趣的文章
.NET程序开发中必须收藏的七个类型的经典工具
查看>>
Springboot重构-云笔记(2)
查看>>
数据库语句备份
查看>>
在对象之间搬移特性(读书摘要——重构改善既有代码的设计)
查看>>
OperService.class.php
查看>>
收藏:Windows消息机制
查看>>
《InsideUE4》UObject(四)类型系统代码生成
查看>>
jQuery对表格进行类样式
查看>>
严重: Exception starting filter struts2 Unable to load configuration. - action -
查看>>
[吃药深度学习随笔] 损失函数
查看>>
java框架--spring+stutrs2+mybatis整合
查看>>
Sliverlight调用Rest服务的一点思考和实践
查看>>
javac后命令行出现乱码
查看>>
使用bat文件打开和关闭本地exe
查看>>
步步为营-85-注册信息验证
查看>>
redis——django使用管道实现事务操作
查看>>
git在terminal中自动补全
查看>>
ASP.NET 后台页面无法识别服务器控件ID
查看>>
js关于变量作为if条件的真假问题
查看>>
WPF/Silverlight为什么要使用Canvas.SetLeft()这样的方法?
查看>>