上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 32 下一页
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4396题意:求 从 一点s 到 e 至少经过k 条边求 最短的值是?(可以走重边);题接:二维最短路 ,d[i][k] 表示 从 s 到 i 点经过 k 条边 的最小值 ,(对于 大于k边数的值 ,并入到 dp[i][k]里 面 )1#include<cstdio>2#include<cstring>3#include<cmath>4#include<iostream>5#include<algorithm>6#include<set>7 阅读全文
posted @ 2012-08-24 09:31 Szz 阅读(419) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4385状态压缩需要好好理解啊; 又是一道 状态压缩的题 ,一开始觉的和 poj 的一道题有点像 ,特地先做了一下那个题 再回来做的这道题,结果还是没做出来 这到,最后看了 解题报告:题意:一个人在搬砖,初始位置在(x0,y0),目的地也是(x0,y0),给你n(n<=20)块砖的位置(xi,yi),规定两点之间时间耗费为欧几里德距离的平方,此人一次可以搬不超过两块砖,问你最少的时间花费并给出方案.官方题解:简单状态DP.需要注意的是,由于耗费的时间是路长的平方,所以一次性取两点的代价并不一定比分两次取小 阅读全文
posted @ 2012-08-22 21:40 Szz 阅读(323) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2817这个题的意思是第一行给出case数N (1 <= N <= 10),然后给出N个单词,每个一行,当输入不是正整数的时候结束。每个单词最多10个字母。 Sample Input 5 abc bcd cde aaa bfcde 0 要求的是,按任意顺序排列这些单词,可以在单词前面加任意个空格,使得相邻的单词上下对应的字母数目最多,并输出最多是多少。 Sample Output 8 比如sample里面的8,是这样得来的: aaa abc bcd cde bfcde 注意只有相邻单词的字母上下对应才算对应。/*由于每两个... 阅读全文
posted @ 2012-08-22 17:44 Szz 阅读(322) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4353 题意: 给你n个点,m个雷 找一个多边形,使得多边形的面积除以这个多边形内雷的个数的比值最小 仔细想想,其实就是找一个比值最小的三角形就OK了,因为其他的三角形的比值都比它大,组合成多边形后势必会将比值变大 所以可以直接暴力O(n^3)枚举三角形,再计算三角形内的雷的个数求比值即可 雷得个数的话预处理一个数组吧,画张图就懂了 cnt= (i k上方的点 )- ( i j上方的点 + j k上方的点) 当然还要取绝对值1#include<cstdio>2#include<cstring 阅读全文
posted @ 2012-08-22 16:01 Szz 阅读(240) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4380题意: 给出 n个房子的位置 。和 m个 金矿的位置 ,从 n 个房子里选出三个(组成三角形),求出有多少种选法 是 三角形 内的金矿数为 奇数?题解:预处理 枚举 从 n 个房子里 选出 2个i,j 记录 在其上方的 金矿数dp[i][j],枚举所有的三角形 那么 三角形 内的点为 fabs(dp[i][k] - dp][i][j] - dp[j][k]);1#include<cstdio>2#include<cstring>3#include<cmath>4#in 阅读全文
posted @ 2012-08-22 15:59 Szz 阅读(411) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=3613 题意:求从一个点s 到 一点 e 经过 n 条边的最短路经是多少(可以有重边):看到很难多解题报告说的是n 个点 ,其实,n 条边 应该是 n - 1 个点 题解:我们知道线性代数中有:在只 含有 01邻接矩阵 A的K次 方C=A^K,C[i][j]表示i点到j点正好经过K条边的路径数。而floyd则是每次使用一个中间点k去更新i,j之间的距离,那么更新成功表示i,j之间恰有一个点k时的最短路,如果做N - 1次floyd那么不就是i,j之间借助N - 1 个点时的最短路了当 c[i][j] > a[i][k] + a[k][ 阅读全文
posted @ 2012-08-21 20:18 Szz 阅读(392) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=3735【题意】:有n只猫咪,开始时每只猫咪有花生0颗,现有一组操作,由下面三个中的k个操作组成:1. g i 给i只猫咪一颗花生米2. e i 让第i只猫咪吃掉它拥有的所有花生米3. s i j 将猫咪i与猫咪j的拥有的花生米交换 现将上述一组操作做m次后,问每只猫咪有多少颗花生?【题解】:m达到10^9,显然不能直接算。因为k个操作给出之后就是固定的,所以想到用矩阵,矩阵快速幂可以把时间复杂度降到O(logm)。问题转化为如何构造转置矩阵?说下我的思路,观察以上三种操作,发现第二,三种操作比较容易处理,重点落在第一种操作上。有一个很好的. 阅读全文
posted @ 2012-08-20 21:05 Szz 阅读(698) 评论(0) 推荐(2)
摘要: 矩阵快速:由于矩阵乘法具有结合律,因此对于矩阵A,有A^4 = A * A * A * A = (A*A) * (A*A) = A^2 * A^2。我们可以得到这样的结论:当n为偶数时,A^n = A^(n/2) * A^(n/2);当n为奇数时,A^n = A^(n/2) * A^(n/2) * A (其中n/2取整)。递归:structmartrix{intm[maxn][maxn];};martrixmtmul(martrixa,martrixb){martrixc;inti,j,k;for(i=0;i<n;i++){for(j=0;j<n;j++){c.m[i][j]=0; 阅读全文
posted @ 2012-08-20 11:10 Szz 阅读(222) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=3070 题意:已知 Fibonacci 数列 可以这样求 ,求 fn 的最后四位.题解: 矩阵的快速幂#include<cstdio>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>#include<set>#include<map>#include<queue>#include<vector>#include<string>#def 阅读全文
posted @ 2012-08-20 10:55 Szz 阅读(199) 评论(0) 推荐(0)
摘要: 转自:http://www.matrix67.com/blog/archives/276/ 好像目前还没有这方面题目的总结。这几天连续看到四个问这类题目的人,今天在这里简单写一下。这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质。不 要以为数学中的矩阵也是黑色屏幕上不断变化的绿色字符。在数学中,一个矩阵说穿了就是一个二维数组。一个n行m列的矩阵可以乘以一个m行p列的矩阵,得到 的结果是一个n行p列的矩阵,其中的第i行第j列位置上的数等于前一个矩阵第i行上的m个数与后一个矩阵第j列上的m个数对应相乘后所有m个乘积的和。比 如,下面的算式表示一个2行2列的矩阵乘以2行3列的矩阵,其结果是 阅读全文
posted @ 2012-08-20 10:00 Szz 阅读(2075) 评论(0) 推荐(0)
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 32 下一页