- 博客(9)
- 资源 (1)
- 收藏
- 关注
原创 zoj 1002 dfs / 最大匹配 碉堡
题意:“.”的地方可以放碉堡,“X”的地方是墙壁,要求在图上放碉堡,但是碉堡的上下左右四个方向不能有碉堡,除非有“X”墙壁隔着,求最多可以放的碉堡数。思路:dfs哎。。。DFS能力还是不到位啊。。。有时间要试试用匈牙利写,因为想练练二分图。#include#include#includeusing namespace std;char map[10][10];
2012-05-31 21:04:27 613
原创 hdu 4158 GO
参考于:http://hi.baidu.com/upc_refresh/blog/item/9f08f5bb85adc5aeca130c6a.html题意:求黑白棋子哪一个棋子围住的空白地方多。思路:DFS没有棋子的地方,同时记录边界是黑白棋子的个数,如果黑棋子个数是0,那么白色棋子围住的地方等于搜到的地方,反之相反。#include#includeusing namespace
2012-05-31 11:25:01 587
原创 后缀数组
寒假的时候看过一遍后缀数组,但是没成功。。。这次又鼓起勇气看起,先尽量达到会用它A一些模版题的程度吧!有几个关键的数组:1.后缀数组sa[i],排第i的后缀串是谁,数组值代表下标,以这个下标为首的后缀串。2.rank[i],rank数组跟suff[i]相对应,suff[i]是排第i的在哪,rank[i]表示第i个开始的后缀串排第几,即rank[suff[i]]=i3.height[
2012-05-15 09:49:54 368
原创 poj 3233 矩阵快速幂 + 二分求和
题意:给定n*n的矩阵和一个整数k , 要求计算 S = A + A^2 + A^2 + ... + A^k。思路:A^i 可以通过 矩阵快速幂求得,但是由于k比较大,普通矩阵累加和会TLE,这里学习了一种二分的方法。思路通过群里大牛的提示 + 参考了依然题解。S = A + A^2 + ... + A^k/2 + A^k/2(A + A^2 + ... + A^k/2) 此时要讨论k
2012-05-10 19:05:35 665
原创 int && long && long long && __int64
32位系统下,int、long、long long、__int64所占字节数和取值范围字节数char: 1字节(8位)int: 4字节 (32位,取值范围 -2^31 ~ 2^31-1)unsigned int : 4字节 (32位,取值范围 0 ~ 2^32-1)long: 4字节 (32位,取值范围 -2^31 ~ 2^31-1)unsigned long : 4字节
2012-05-10 18:13:02 749
原创 Codeforces Round #118 (Div. 2) :C (矩阵快速幂)类似与斐波那契+矩阵乘法
参考地址:http://acshiryu.com/archives/1349如图:就是求第n个图形的上三角形的个数。设f[n]为第n个图形的上三角的个数 g[n]为第n个图形的下三角的个数则有:f[n]=3*f[n-1]+g[n-1];g[n]=3*g[n-1]+f[n-1];可以用矩阵快速幂解决。#include#include#define Mod
2012-05-10 18:07:49 1797
原创 poj 3070 Fibonacci + 矩阵乘法(矩阵快速幂)
题意:就是求第n个斐波那契数。思路:因为 F(n) = F(n-1) + F(n-2); F(n-1) = F(n-1) + 0*F(n-2);则有矩阵A [1 1] [F(n-1)] [ F(n) ] [1]
2012-05-10 17:49:44 1070
原创 hdu 4198 杭电系列赛(四) BFS + 优先队列
题意:给出一个矩阵h*w,起始点是"S","#"不能走,且矩阵四周用#围起来,边界不是"#"的地方代表出口,遇到“.”的话时间加一,遇到“@”的话时间加(d+1),求从起点离开这个矩阵的最小时间。思路:普通的BFS不可破,应该用优先队列的BFS,由于出口不唯一吧,所以要写好BFS的出口条件!//bool operator if (tim > a.tim) return
2012-05-08 10:07:21 1372
原创 poj 1995 整数快速幂模m
题意:做codeforces碰到的矩阵快速幂,学的过程中顺便学学这种二分幂的方法。题意就是求ai^bi进行累加和,最后模m。思路:将幂转化成二进制来算。#include#includeusing namespace std;int main() { long long Z , M , H , a , b; scanf("%lld",&Z); while (
2012-05-07 18:12:11 1782
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人