大白书上的393页。
一直在原数组上乱搞。其实要用另外一个数组记录块。
原数组是不能变的。
注意好原数组和块数组的关系,细心一点处理边界。还是不难的。
#include
#include
#include
#include
#define maxn 300005
#define SIZE 600
using namespace std;
int a[maxn];
...
分类:
其他好文 时间:
2014-07-08 21:28:22
阅读次数:
202
题意:著名的魔术师大卫科波菲尔喜欢表演下面的魔术:一个N行N列不同图片的矩阵出现在大屏幕上,我们给所有的图片这样命名:
每一个参与的观众被要求将手指放在左上方的图片上(即编号为1的图片),魔术师开始了:魔术师告诉观众在图片上移动k次(移动是把手指放到上下左右相邻的图片上,如果那儿有图片的话),然后他(魔术师)的手微微一指(指向一些图片)并说:“你不在这里”,然后……是真的!你的手指...
分类:
其他好文 时间:
2014-07-08 21:08:14
阅读次数:
151
题意:简单说就是将第i个簇号放回i,求最少的步数
思路:只处理链形,和环形的情况,其他的可以不管,对于链形来说,只要倒置就行了,环形的找一个空闲的放一个,然后就是链形的情况了
#include
#include
#include
#include
#include
using namespace std;
const int MAXN = 10005;
int culsters[M...
分类:
其他好文 时间:
2014-07-08 20:47:19
阅读次数:
228
题意:首先给你空闲的位置,可以跳过几个来吃掉几个,求最短的吃完所有的,且最后一个回到开始指定的位置
思路:BFS+HASH判重,对于每个位置有六个方向,当然有的是不能走的,加上map的判重就可以了
#include
#include
#include
#include
#include
#include
using namespace std;
const int MAXN =...
分类:
其他好文 时间:
2014-07-08 19:29:38
阅读次数:
246
题目链接:uva 10627 - Infinite Race
题目大意:一段路,两个人在这条路上来回走,求相遇次数
解题思路:相遇有两种,一种是追击,一种是相对
追击:t?(u?v)=(2?k+1)?L
相对:t?(u+v)=(2?k+1)?L
但是有一种特殊情况,就是在边界相遇的时候,会被考虑两次,所以要减掉一次。
那么如何考虑边界相遇的时间:找到一篇详解
...
分类:
其他好文 时间:
2014-07-08 17:34:09
阅读次数:
160
题意:给你正视和侧视图,求最多多少个,最少多少个
思路:贪心的思想,求最少的时候:因为可以想象着移动,所以我们统计每个视图不同高度的个数,然后计算,至于的话,就是每次拿正视图的高度去匹配侧视求最大
#include
#include
#include
#include
using namespace std;
const int MAXN = 1000;
int k;
int vie...
分类:
其他好文 时间:
2014-07-08 17:30:56
阅读次数:
149
本题要求输出全部拓扑排序的序列。
还好本题的数据量不是很大,限制在26个大写英文字母,故此可以使用递归法输出。
这个递归输出全部解在Leetcode很多这样的题目的,不小心的话,还是很难调试的。
总体考了递归和拓扑排序,还有判断是否可以拓扑排序-就是是否图有环。
考了三大知识点,难度还是有的。因为数据量不大,故此判断环可以使用一般递归方法,递归只需要注意细节就好了。
#incl...
分类:
其他好文 时间:
2014-07-08 15:35:30
阅读次数:
141
题目链接:uva 10831 - Gerg's
Cake
题目大意:给定a和p,p为素数,问说是否存在x,使得x2≡a%p
解题思路:勒让德记号,判断ap?12≡1%p
#include
#include
#include
using namespace std;
typedef long long ll;
ll pow_mod (ll a, ll n, ll mod)...
分类:
其他好文 时间:
2014-07-08 13:48:57
阅读次数:
146
题目:有一场婚礼,有n对夫妇参加,他们之间有些人之间有奸情(可能同性),在场的人中有一个公主,
她清楚其他人的人际关系,问能否安排座位使得两边都是n个人,且公主看不见有奸情的人同时在的对面。
分析:2-SAT。直接按照看的流程敲的程序。
1.建图,矛盾的点建立对应的边(与一直关系相反);
2.利用Tarjan算法计算...
分类:
其他好文 时间:
2014-07-08 12:52:46
阅读次数:
420
Topological Sort题解。本题是简单的入门题目。
Topological Sort的思想很简单,就是按没有入度的点,先输出,然后删除这个点的出度。然后输出下一组没有入度的点。
如何实现也是很简单的:
这里使用邻接表,建图的时候反过来建图,建立一个入度邻接表。
然后使用一个vis数组,记录访问过的节点,也可以根据这个信息知道哪些是已经输出的点,这个时候这些点的入度可以不算为当前入...
分类:
其他好文 时间:
2014-07-08 12:46:41
阅读次数:
282