[BZOJ1106] [POI2007]立方体大作战tet
来源:互联网 发布:linux下启动tomcat命令 编辑:程序博客网 时间:2024/05/16 00:55
传送门
http://www.lydsy.com/JudgeOnline/problem.php?id=1106
题目大意
给定一个长度为2n的序列,1~n各出现两次,可以交换相邻两项,两个同样的数放在一起会对消,求把所有数对消的最小交换次数
题解
如果一对在另一对内部,那么先消掉它,所以我们用一个栈存,如果这个数在栈中,那么把他们内部的部分向前移即可
由于ans不超过1000000所以暴力即可
var x,t:array[0..50005]of longint; i,j,k:longint; n,ans:longint;procedure swap(var a,b:longint);var c:longint;begin c:=a; a:=b; b:=c;end;begin readln(n); ans:=0; fillchar(x,sizeof(x),0); t[0]:=0; for i:=1 to 2*n do begin inc(t[0]); readln(t[t[0]]); if x[t[t[0]]]=0 then x[t[t[0]]]:=1 else begin for j:=t[0]-1 downto 1 do if t[j]=t[t[0]] then break; inc(ans,t[0]-j-1); for k:=j to t[0]-1 do t[k]:=t[k+1]; dec(t[0],2); end; end; writeln(ans);end.
0 0
- bzoj1106: [POI2007]立方体大作战tet
- [BZOJ1106] [POI2007]立方体大作战tet
- 【POI2007】【BZOJ1106】立方体大作战tet
- BZOJ1106 [POI2007]立方体大作战tet
- 【bzoj1106】 [POI2007]立方体大作战tet
- BZOJ1106: [POI2007]立方体大作战tet
- [bzoj1106][POI2007]立方体大作战tet
- BZOJ1106 [POI2007]立方体大作战tet
- BZOJ1106 [POI2007]立方体大作战tet 树状数组
- 【BZOJ 1106】 [POI2007]立方体大作战tet
- [BZOJ]1106: [POI2007]立方体大作战tet
- 1106: [POI2007]立方体大作战tet
- 【BZOJ】【P1106】【POI2007】【立方体大作战tet】【题解】【树状数组】
- BZOJ 1106 POI2007 立方体大作战tet 模拟
- 1106: [POI2007]立方体大作战tet 思路题 贪心
- BZOJ 1106 POI2007 立方体大作战tet 模拟
- bzoj 1106: [POI2007]立方体大作战tet(贪心+树状数组)
- [POI2007]立方体大作战 PASCAL
- s232、rs422和rs485通讯接口的区别
- IIS7.5安装后ASP+access数据库连接错误的问题解决办法
- GCD 编程
- mvc 小计
- linux下C编程(一)之 hello world
- [BZOJ1106] [POI2007]立方体大作战tet
- Codeforces 585D Lizard Era: Beginning
- Leetcode Recover Binary Tree
- MyEclipse设置JAVA选中高亮显示
- pcduino里,Qt无法打开摄像头(调用了opencv)
- LeetCode40——Combination Sum II
- Java 正则表达式
- 三目运算符
- Java中HashTable和ConcurrentHashMap的区别