随笔 - 87  文章 - 279  trackbacks - 0
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

潜心看书研究!

常用链接

留言簿(19)

随笔分类(81)

文章分类(89)

相册

ACM OJ

My friends

搜索

  •  

积分与排名

  • 积分 - 214423
  • 排名 - 116

最新评论

阅读排行榜

评论排行榜

闻说还能用在负权,和有环图...继续研究

const   int  MAXN  =   101 ;
const   int  INF  =   1000000 ;
int  g[MAXN][MAXN];
int  d[MAXN][MAXN];
int  floyd( int  n)
{
    
int   i, j, k;
    
for  (i = 1 ; i <= n; i ++ )
        
for  (j = 1 ; j <= n; j ++ )
            d[i][j] 
=  g[i][j];
    
for  (k = 1 ; k <= n; k ++ )
    
{
        
for  (i = 1 ; i <= n; i ++ )
            
for  (j = 1 ; j <= n; j ++ )
            
{
                
if  (d[i][k]  <  INF  &&  d[k][j]  <  INF
                
&&  d[i][k]  +  d[k][j]  <  d[i][j])
                    d[i][j] 
=  d[i][k]  +  d[k][j];
            }

    }

    
return   0 ;
}
posted @ 2006-08-29 15:27 豪 阅读(1017) | 评论 (1)编辑 收藏
//------------------------------
给我一年时间,  把你们都搞
定, 呵呵, 做个好梦先!~
------------------------------//

图论 
       路径问题 
              最短路径 
                     
0/1 边权最短路径 
BFS 
 
                     非负边权最短路径 
Dijkstra 
u       可以用Dijkstra解决的问题的特征 
 
                     负边权最短路径 
Bellman
-Ford 
u       Bellman
-Ford的Yen-氏优化 
u       差分约束系统 
 
                            Floyd 
u       广义路径问题 
u       传递闭包 
u       极小极大距离 
/ 极大极小距离 
 
Euler Path 
/ Tour 
       圈套圈算法 
       混合图的 Euler Path 
/ Tour 
 
Hamilton Path 
/ Tour 
       特殊图的Hamilton Path 
/ Tour 构造 
 
生成树问题 
              最小生成树 
                     第k小生成树 
 
              最优比率生成树 
u       
0/1分数规划 
 
              度限制生成树 
 
       连通性问题 
u       强大的DFS算法 
 
              无向图连通性 
                     割点 
割边 
二连通分支 
 
              有向图连通性 
                     强连通分支 
u       
2-SAT 
u       最小点基 
 
有向无环图 
       拓扑排序 
u       有向无环图与动态规划的关系 
 
二分图匹配问题 
u       一般图问题与二分图问题的转换思路 
 
最大匹配 
u       有向图的最小路径覆盖 
u       
0 / 1矩阵的最小覆盖 
 
       完备匹配 
 
       最优匹配 
 
网络流问题 
u       网络流模型的简单特征和与线性规划的关系 
 
       最大流最小割定理 
 
       最大流问题 
有上下界的最大流问题 
u       循环流 
 
最小费用最大流 
/ 最大费用最大流 
 
弦图的性质和判定 
 
组合数学 
u       解决组合数学问题时常用的思想 
u       逼近 
u       递推 
/ 动态规划 
 
       概率问题 
 
       Polya 定理 
       
 
计算几何 
/ 解析几何 
u       计算几何的核心:叉积 
/ 面积 
u       解析几何的主力:复数 
 
基本形 
       点 
       直线,线段 
       多边形 
凸多边形 
/ 凸包 
u       凸包算法的引进,卷包裹法 
       Graham 扫描法 
u       水平序的引进,共线凸包的补丁 
完美凸包算法 
 
       相关判定 
              两直线相交 
              两线段相交 
              点在任意多边形内的判定 
              点在凸多边形内的判定 
       
       经典问题 
              最小外接圆 
                     近似O(n)的最小外接圆算法 
 
              点集直径 
                     旋转卡壳,对踵点 
       
       多边形的三角剖分 
 
数学 
/ 数论 
       最大公约数 
              Euclid 算法 
                     扩展的Euclid算法 
                            同余方程 
/ 二元一次不定方程 
                            同余方程组 
 
       线性方程组 
              高斯消元法 
u       解mod 2域上的线性方程组 
u       整系数方程组的精确解法 
 
矩阵 
       行列式的计算 
u       利用矩阵乘法快速计算递推关系 
 
       分数 
              分数树 
              连分数逼近 
 
       数论计算 
              求N的约数个数 
              求phi(N) 
              求约数和 
              …… 
       
       素数问题 
              概率判素算法 
              概率因子分解 
 
数据结构: 
       组织结构 
              二叉堆 
                     左偏树 
              胜者树 
              Treap 
 
统计结构 
树状数组 
虚二叉树 
线段树 
u       矩形面积并 
u       圆形面积并 
 
       关系结构 
              Hash 表 
并查集 
u       路径压缩思想的应用 
 
       STL 中的数据结构 
              vector 
              deque 
set / map 
              
动态规划 
/ 记忆化搜索 
u       动态规划和记忆化搜索在思考方式上的区别 
 
       最长子序列系列问题 
              最长不下降子序列 
 
       最长公共子序列 
 
       一类NP问题的动态规划解法 
 
       树型动态规划 
 
       背包问题 
 
       动态规划的优化 
u       四边形不等式 
u       状态设计 
u       规划方向(?) 
       
常用思想 
       二分 
 
       最小表示法 
posted @ 2006-08-17 23:44 豪 阅读(1037) | 评论 (3)编辑 收藏
#include  < iostream >
using   namespace  std;

const   int  MAXN  =   100 ;

class  UFset
{
public :
    
int  parent[MAXN];
    UFset();
    
int  Find( int );
    
void  Union( int int );
}
;

UFset::UFset()
{
    memset(parent, 
- 1 sizeof (parent));
}


int  UFset::Find( int  x)
{
    
if  (parent[x]  <   0 )
        
return  x;
    
else
    
{
        parent[x] 
=  Find(parent[x]);
        
return  parent[x];
    }
//  压缩路径
}


void  UFset::Union( int  x,  int  y)
{
    
int  pX  =  Find(x);
    
int  pY  =  Find(y);
    
int  tmp;
    
if  (pX  !=  pY)
    
{
        tmp 
=  parent[pX]  +  parent[pY];  //  加权合并
         if  (parent[pX]  >  parent[pY])
        
{
            parent[pX] 
=  pY;
            parent[pY] 
=  tmp;
        }

        
else
        
{
            parent[pY] 
=  pX;
            parent[pX] 
=  tmp;
        }

    }

}


int  main()
{
    
return   0 ;
}
有bug请指正:)
posted @ 2006-08-16 20:22 豪 阅读(887) | 评论 (5)编辑 收藏
先是晚上睡不着, 一直在想那道DP题, 倒是让我AC掉了, 算是安慰。

然后下午pku e10, 看到别人都7题6题那样, 而我还是一题都做不出来, 那种情景, 真是... 最终只能做出《算法艺术》上讲过的那道加括号的DP,  再而确定了,书上的代码是错的, 那时候,在真的是不知道应该开心, 还是不开心好了。

到了晚上,我写了一个小时得6K的高精度, 结果换来了TLE, 真是欲哭无泪。 

就是这样, 又做了一天的题目, 每天都是这样做了, 什么时候能看看书呢? 嗯, 就明天, 看Floyd和DP!
posted @ 2006-08-11 02:08 豪 阅读(569) | 评论 (9)编辑 收藏
放假回去了一个星期,见一下apple, 爸爸妈妈,老同学,又跑回学校了。

没办法,现在连DP都写不出来的我, 再不花时间努力, 老师要求的400题是完成不了的。还好, 宿舍还有我的战友们, 所以也不会觉得寂寞, 至少还可以一起喝糖水啊^_^!

回来这两个星期, 都泡在了acm的题目上面, 本来说要学点英语的(还好期末英语没挂), 但是也无暇兼顾了, 可是我还是觉得进度有点慢, 或者我自己又开始浮躁了, 对于acm, 接触了半年了, 虽然参加了校赛和省赛, 拿了点小奖, 但是对比起那些有OI基础的牛牛和那些数学特强的牛牛门(比如一个月可以330题的ghost_wei), 我真的是菜到不能再菜了, 最郁闷的是, 到现在连DP都写不出来, 我到底什么时候才能达到一看到题目, 就能构造出DP状态的境界呢?

嗯, 要继续努力了,不能浮躁, 加油, 争取这个月把DP搞定!
posted @ 2006-08-10 02:27 豪 阅读(365) | 评论 (1)编辑 收藏
仅列出标题
共18页: First 6 7 8 9 10 11 12 13 14 Last