题目大意:你有一行盒子,从左到右编号为1~n,现在有4种操作。
1 X Y 表示把X盒子移到Y盒子的左边
2 X Y 表示把X盒子移到Y盒子的右边
3 X Y 表示交换X盒子和Y盒子的位置
4 将盒子顺序全部翻转过来
最后问进行m次操作后,奇数位置的盒子编号和为多少
思路:最好的方法使用双向链表。这里用数组的方法模拟,用Left[i]和Right[i]
分别表示编号为i的盒子左边和右边的盒子编号(为0表示没有盒子)。通过模拟
链表连接的方法改变连接顺序。...
分类:
编程语言 时间:
2014-12-11 10:30:15
阅读次数:
235
唉 谷歌出的神题,差点爆零了。。。三小时终于A掉 B题题目大概是说从左上角的点出发,经过某路线最后回到原点,求每个格子被路线包含的圈数的平方和。首先可以知道,对于某个格子来说,从该格子的任意一个方向划一条射线,路径穿过该射线的次数就等于该格子被包含的圈数(正穿和反穿抵消)。然后开一个100w的数组保...
分类:
其他好文 时间:
2014-12-10 00:20:25
阅读次数:
240
题目大意:你在输入文章的时候,键盘上的Home键和End键出了问题,会不定时的按下。
给你一段按键的文本,其中'['表示Home键,']'表示End键,输出这段悲剧的文本。
思路:使用链表来模拟,遇到Home键,就将后边的文本插入到这段文本的最前边,遇到
End键,就插入到这段文本的最后边。但是用链表会用到指针,过程比较繁琐。这里用一个
Next数组模拟指向,Next[i]表示当前显示屏中s[i]右边的字符下标。再用一个cur表示当前
光标的位置,last表示最后一个字符的记录位置,这样遇到End键,就能直...
分类:
编程语言 时间:
2014-12-09 23:09:36
阅读次数:
413
1 ////////////////////////////////////////////////////////// 2 // String.cpp 3 // 4 // author:Leetao 5 //////////////////////////////////////////////....
分类:
编程语言 时间:
2014-11-26 01:26:37
阅读次数:
158
bfs题,用数组模拟水杯的状态,尝试每一种可能的状态,如果找到就返回,详解见代码注释: 1 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 const int MAX = 1...
分类:
其他好文 时间:
2014-11-19 21:53:08
阅读次数:
211
火车进站,模拟一个栈的操作,额外的栈操作,查看能否依照规定顺序出栈。数据量非常少,故此题目非常easyAC。直接使用数组模拟就好。#include const int MAX_N = 10;char inOrder[MAX_N], outOrder[MAX_N], stk[MAX_N];bool r...
分类:
其他好文 时间:
2014-11-10 13:33:59
阅读次数:
256
题意:给出了两个瓶子的容量A,B, 以及一个目标水量C,对A,B可以进行如下操作:
FILL(i) 将瓶i装满水
DROP(i) 将瓶i倒空
POUR(i,j) 将瓶i中的水倒入瓶j,此操作后要么瓶j装满水,要么瓶i为空
求至少要几次操作能使A或者B装的水为C,并输出具体操作
分析:可以从6个方面bfs,因为要输出具体操作,可以用数组模拟队列,
并记录前一次操作的状态,最后再回溯路径...
分类:
其他好文 时间:
2014-11-07 13:10:47
阅读次数:
213
数据结构实验之栈四:括号匹配Time Limit: 1000MS Memory limit: 65536K题目描述给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。输入输入数据有多组,处理到文件结束。输出如果匹配就...
分类:
编程语言 时间:
2014-11-06 21:47:09
阅读次数:
208
题目:hdoj 2874 Connections between cities
题意:战争过后,一些城市毁坏了。意思图不连通,让你求任意两点的距离、
分析:很明显求LCA
但是图不连通,所以我们Tarjan的时候要对每个点进行。然后标记即可。
另外,这个题目卡vector,看来以后要学着用数组模拟邻接表了。
AC代码:
#include
#include
#...
分类:
其他好文 时间:
2014-11-06 17:30:51
阅读次数:
189