摘要: Squares题意:给定n个相异整数点,求能构成多少个正方形。其实这题挺简单的,经过思考可以发现,我们可以通过枚举两个点(或者说一条边),然后求出可能构成正方形的另外两个点,然后判断是不是在给你的点集中就行了。求点问题是一个数学问题,判断要用到hash表。本来很简单的问题,由于对数学的菜,所以是2Y,第一次WA了,主要原因是在构造四边形的时候出问题了。我对这个问题做了分析,在本题后面的disuss里面。希望有帮助。代码参考: 阅读全文
posted @ 2010-12-07 11:59 ylfdrib 阅读(672) 评论(1) 推荐(0) 编辑
摘要: Eqs题意:给出a1, a2, a3, a4, a5求满足表达式 a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 的解(x1, x2, x3, x4, x5)的个数,其中xi范围是[-50, 50], xi != 0(i = 1, 2, 3, 4, 5)分析:这题挺简单的,将解分成两组(x1, x2, x3) 和 (x4, x5),先三重循环求出a1x13+ a2x23+ a3x33他们的解,用开散列法对应到数组中,再用两重循环求出a4x43+ a5x53求得结果在hash表中查找然后判断就行了。代码 阅读全文
posted @ 2010-12-04 20:37 ylfdrib 阅读(396) 评论(0) 推荐(0) 编辑
摘要: Check the difficulty of problems题意:有T个人参加比赛,共有M道题,第 i 个人通过第j 题的概率为 p[i][j]求:所有人都至少做出一道题,而且第一名至少做出N道,求这个结果的概率分析:可以知道,每个人自己是互不影响的 对于一个选手 i 前j 道题,做出k 道题的概率F[i][j][k] =F[i][j - 1][k - 1] * p[i][j] + F[i][... 阅读全文
posted @ 2010-12-03 20:42 ylfdrib 阅读(1245) 评论(0) 推荐(0) 编辑
摘要: 看到题时确实不知道怎么做,看了discuss 和 网上的讲解,也是不明白。。 有时候,可能也是自己的心理原因,遇到问题,第一反应就是放弃,所以才让本不简单的题变得更难,不过后来我想了,越是难题,越需要我们去做,只有将不会的变成会的,才能真正进步,幸好我又坚持了下, 发现也不是太难了,呵呵。。Gold Balanced Lineup题意:对于每头奶牛都有一个"feature ID",用一个整数表示,... 阅读全文
posted @ 2010-12-03 09:52 ylfdrib 阅读(1219) 评论(0) 推荐(1) 编辑
摘要: 初学哈希表哈希表(也叫散列表 Hash Table)的思路是根据关键码值直接访问。任何一种数据结构都有它的优势,哈希表提供这么一种其他数据结构并不擅长的操作:在理想情况下,能用常量时间查找到指定值的数据。Snowflake Snow Snowflakes题意:有n片雪花,问是否有两片完全相同呢?雪花都是六棱的,如果六棱的长度对应完全相等,则认为两片雪花相同。思路:如果两两比较的话,就是n^2算法,... 阅读全文
posted @ 2010-11-30 17:51 ylfdrib 阅读(1689) 评论(0) 推荐(1) 编辑
摘要: 题意很简单,求QuickSort最坏情况下的交换次数。理解以后知道应该是一个求序列的逆序对问题。发现归并排序nlog(n)的排序速度很不错,而求在排序的过程中,有个归并过程merge(),这里是将两个有序数列归并为一个有序数列,在归并的过程中,很容易就能够计算逆序对个数,所以可以很快解决这个问题。即:对于数列[l, mid] [mid + 1, r]的合并,i 从l开始循环,j从mid + 1开始... 阅读全文
posted @ 2010-11-29 16:19 ylfdrib 阅读(1902) 评论(0) 推荐(0) 编辑
摘要: 最近公共祖先LCA:Tarjan 算法这篇博客写的非常不错,我就是看这个学会的。第一次写最近公共祖先问题,用的邻接表指针。对于一棵有根树,就会有父亲结点,祖先结点,当然最近公共祖先就是这两个点所有的祖先结点中深度最大的一个结点。 0 | 1 / \ 2 3比如说在这里,如果0为根的话,那么1是2和3的父亲结点,0是1的父亲结点,0和1都是2和3的公共祖先结点,但是1才是最近的公共祖先结点,或者说1... 阅读全文
posted @ 2010-11-03 11:57 ylfdrib 阅读(33259) 评论(4) 推荐(8) 编辑
摘要: Network又调试了好久,终于搞定了,又学习了一点点。。呵呵。题意很简单:给定一个连通的无向图,有Q组操作,每组add一条边(u, v),问图中现有多少条割边。思路:首先是一个tarjan,求的强连通分支和桥边,然后缩图,这样就得到一棵树,缩图的时候注意一下,将点分层,而且是个有根树,这样对于每增加一条边,就会形成一个环,那么环上的所有边都不是割边了,求的时候,用LCA的方法,分别将bel[u]... 阅读全文
posted @ 2010-11-01 11:07 ylfdrib 阅读(1134) 评论(0) 推荐(0) 编辑
摘要: Code忙了好久,终于搞定了,每次将不会的题琢磨完了,都感觉是一次小小的进步,庆祝一下下。。呵呵首先是建图,题意要求所有的n位数编码成一个数字串,每个n位数只出现一次,可以把n位数看成边,那么可以把它的前n-1位看成点A,后n-1一位看成点B,那么它就是A->B的一条边了,这样我们就可以对10^(n - 1)个点建图,每个节点对另外10个点有边,找一次欧拉回路就行了。这题有一难点,要求按最小... 阅读全文
posted @ 2010-10-31 16:09 ylfdrib 阅读(1268) 评论(1) 推荐(0) 编辑
摘要: Heavy Transportation题意:Hugo Heavy要从城市1到城市N运送货物,有M条道路,每条道路都有它的最大载重量,问从城市1到城市N运送最多的重量是多少。其实题意很简单,就是找一条1-->N的路径,在不超过每条路径的最大载重量的情况下,使得运送的货物最多。分析:其实就是找一条带权路径,使得路径上最小的权值最大化,只要求一次最大生成树即可,本也没啥复杂的算法,不过这题的解题... 阅读全文
posted @ 2010-10-27 15:54 ylfdrib 阅读(3447) 评论(0) 推荐(0) 编辑