链接看此题前先看一下matrix67大神写的关于十个矩阵的题目中的一个,如下:经典题目8
给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod
p的值把给定的图转为邻接矩阵,即A(i,j)=1当且仅当存在一条边i->j。令C=A*A,那么C(i,j)=ΣA(i,k)*A(k,j...
分类:
其他好文 时间:
2014-05-20 02:46:43
阅读次数:
249
题意:一张n*m的网格内每个点有话费,还有若干个宝藏,问一个人要走进去拿走所有宝藏在走出来的最小花费。思路:看宝藏只有13个直接想到了状压dp[i][j]拿了哪几个前一个为j的最小花费,先bfs+优先队列预处理出最短路,然后记忆化搜索就可。代码如下:
1 /********************....
分类:
其他好文 时间:
2014-05-19 23:26:38
阅读次数:
352
题目:
链接:点击打开链接
题意:
DFS搜索
算法:
dfs
思路:
简单题
代码:
#include
#include
#include
using namespace std;
int w,h;
char s[30][30];
int vis[30][30];
int cnt;
void dfs(int x,int y)
{
if...
分类:
其他好文 时间:
2014-05-16 00:02:10
阅读次数:
438
题意:n个点,n-1条边构成无向树,每个节点有权,Q次询问,每次或问从a->b的最短路中,权第k大的值,/或者更新节点a的权,
思路:在线LCA,先dfs生成树0,标记出层数和fa[](每个节点的父亲节点)。在对每次询问,走一遍一次公共祖先路上
的权,保持,快排。n*logn*q
#include //187MS
#include
#include
#include
using ...
分类:
其他好文 时间:
2014-05-15 23:36:52
阅读次数:
419
首先今天写的内容将会简短,因为昨天写的好久好久,结果自动保存功能还没有实现。不过现在,时刻都在自动保存着,再也不用担心这个问题了。
首先声明这篇记录不是解题报告,只是一场我的大脑里思路的旅行。
前几天学弟学妹们有一场比赛,学弟邀请我作为技术支持者去帮忙,在那个过程中我看了几道题。
其中有两道题正常比赛没有其他人提交,于是我研究了一下。
研究的第一道就一个暴力dfs就可以过,只是可能正常比赛没人看懂题意,我看了好几个小时才看懂的。
第二道就是 double sort。
什么是 double sort 呢?...
分类:
其他好文 时间:
2014-05-15 22:51:30
阅读次数:
465
题意:给定数字n,生成所有可能的n对括号的组合
思路:dfs暴力枚举
当左括号出现的次数 < n 的时候,可以选择放置新的左括号
当右括号出现的次数 < 左括号的次数的时候,可以选择放置新的右括号
递归函数:
void generateparenthesis(int n, int left, int right, vector& result)
表示将生成的所有可能的n对括号的组合放到result中,
其中,
s表示已生成的部分括号,
left表示当前的左括号数,
right表示当前的右括号...
分类:
其他好文 时间:
2014-05-15 13:21:12
阅读次数:
311
在CTSC和APIO上好像经常听到生成树计数这东西于是就去看了下论文蒟蒻表示看不懂证n明orz
反正懂用就行了。。生成树计数生成树计数就是给出一种n个点的无向图G 求这n个点的生成树个数G的度数矩阵d[i][j] 当i≠j时d[i][j]=0
否则等于i点的度数G的邻接矩阵a[i][j] a[i][...
分类:
其他好文 时间:
2014-05-15 11:43:59
阅读次数:
554
题目:uva519 - Puzzle (II)
题目大意:给出拼图,要求将给出的拼图拼成 n行m列的矩形,可以输出yes,不行输出no。
解题思路:直接dfs,但是需要剪枝。
1、判断 F 的出现个数是否等于 2 * ( n + m) , 还有IO的个数是否匹配。
2、边界问题要处理,例如第一行第N行,第一列第M列,这些地方的拼图是有要求的,这些边界拼图的的外围都要是F。例如第一行...
分类:
其他好文 时间:
2014-05-15 08:00:13
阅读次数:
259
水题。数字一共就9个,去掉1是用来显示标点的,剩下8个。
穷举一下map,然后有几个数字,就输出这几个数字的排列,是一个dfs嘛。
map num;
void allCombinations(string &digits, int start, int len, string &pres, vector &res){
if(len == digits.length()){
...
分类:
其他好文 时间:
2014-05-15 01:42:26
阅读次数:
264
大意:小明喜欢带他的朋友们逛自己的农场。农场有n块地,屋舍位于1号,谷仓位于n号。有m条路连接这些地,路是无向的,每条路长度已知。他想设计一条线路,从1出发,到n,再回到1,且同一条路不走两遍。问最短的行程是多少。
分析:可建模为最小费用最大流。从1出发,到n,再回到1,相当于找到两条从1到n的路径且二者不能有交集。
对于每条路,费用为长度,容量为1,这样就限制了只能走一次。新建一个顶点连向1,费用为0,容量为2.,作为等价源点。同理再建一个等价汇点。
因为重边的存在,图的存储结构为邻接表而非邻接矩阵...
分类:
其他好文 时间:
2014-05-15 01:40:24
阅读次数:
366