1106: [POI2007]立方体大作战tet 思路题 贪心
2016-01-12 15:09
239 查看
这道题我不会做QAQ,于是看了题解。
难道做联赛广告题做多了看到这种题就觉得是暴搜?
遇到这种题还是应该耐心分析一下:
如果有两个相同的数,那么无论如何他俩要想相遇,至少要经过n次交换。所以晚交换不如早交换,所以每次碰到一个相同的就暴力交换。。才50000为何要用树状数组维护暴力妥妥过啊。。
有时候一些贪心的性质只要仔细考虑还是可以想到的,不要盲目限制思路。
难道做联赛广告题做多了看到这种题就觉得是暴搜?
遇到这种题还是应该耐心分析一下:
如果有两个相同的数,那么无论如何他俩要想相遇,至少要经过n次交换。所以晚交换不如早交换,所以每次碰到一个相同的就暴力交换。。才50000为何要用树状数组维护暴力妥妥过啊。。
有时候一些贪心的性质只要仔细考虑还是可以想到的,不要盲目限制思路。
[code]#include<bits/stdc++.h> using namespace std; int n,top,ans; int s[50005],last[50005]; inline int read() { int a=0,f=1; char c=getchar(); while (c<'0'||c>'9') {if (c=='-') f=-1; c=getchar();} while (c>='0'&&c<='9') {a=a*10+c-'0'; c=getchar();} return a*f; } int main() { n=read(); for (int i=1;i<=(n<<1);i++) { int x=read(); if (last[x]) { for (int j=last[x];j<top;j++) swap(s[j],s[j+1]),last[s[j]]=j,ans++; top--; } else s[last[x]=++top]=x; } cout << ans; return 0; }
相关文章推荐
- linux 编程初学
- Lua 命名规范
- 异常
- 如何成为一个好的IT培训老师
- 4个小故事,分分钟看懂人民币汇率
- 去掉首尾空格的正则表达式
- autoconf 和 automake 生成 Makefile
- IOS代理模式(监听器模式)
- 一般app首页 模型缓冲
- Mac OS X 下升级 PHP 版本的简单方法
- Arduino官方视频教程(共十集)
- ios 替换从网络获取的JSON数据中的Null
- C#设计模式02-抽象工厂模式(附源码)
- 纯真IP数据库QQWry.dat格式详解
- Spring事务配置的五种方式
- Activity的启动模式与flag详解及Task
- @Component、@Repository @Service、@Controller
- mysql主从同步出错解决办法(工作笔记)
- ios视图frame与bounds的区别
- 开源爬虫框架各有什么优缺点?