procedure2012
It's not worth it to know you're not worth it!
摘要: [题目来源]:USACO 4.4.1[关键字]:数学[题目大意]:一个1*2n+1的棋盘,左边有n个白子,中间一个空格,右边n个黑子,求出将其交换的步骤。//==========================================================================================================[分析]:http://www.nocow.cn/index.php/USACO/shuttle[代码]:View Code 1 { 2 ID:x yr; 3 PROB:shuttle 4 LANG:PASCAL 5 } 6 v. 阅读全文
posted @ 2011-10-29 18:13 procedure2012 阅读(303) 评论(0) 推荐(0) 编辑
摘要: [题目来源]:NOIP基础题目集[关键字]:数学[题目大意]:m个人拿50的去买票,n个人拿100的去买票,问有多少种能使钱找开的方案。//============================================================================================================[分析]:祥见《程序设计中的组合数学》P43页。此时若n = m则为Catalan数。[代码]:View Code 1 type 2 rec = record 3 len: longint; 4 dat: arra... 阅读全文
posted @ 2011-10-29 18:02 procedure2012 阅读(160) 评论(0) 推荐(0) 编辑
摘要: [题目来源]:NOIP基础题目集[关键字]:数学[题目大意]:每个瓶盖上有一个球星的名字,有N个不同的球星,平均情况下,要买多少瓶饮料才能集齐所有名字。//===========================================================================================================[分析]:对于要在剩下的 i 种瓶盖中收集到一种,买一瓶饮料收集到的概率为(i/n),所以平均应该买(n/i)瓶,所以平均总共要买 n(1/1+1/2+1/3+….+1/n)瓶。[代码]:View Code 1 program . 阅读全文
posted @ 2011-10-29 17:27 procedure2012 阅读(288) 评论(0) 推荐(0) 编辑
摘要: [题目来源]:NOIP基础题目集[关键字]:数学[题目大意]:求出n个数的出栈序列数目//===========================================================================================================[分析]:n个数的出栈序列数目就是一颗有n个节点的二叉树的数量。因为他的进栈序列就是该二叉树的先序遍历,而它的出栈序列就是该二叉树的中序遍历,所以两者都等于Catalan数公式为:C(2n,n)/(n+1)。因为当n稍微大一点时结果就会很大,所以要用高精度,为了避免高精除法,可以先将把分子和分母 阅读全文
posted @ 2011-10-29 17:05 procedure2012 阅读(363) 评论(0) 推荐(0) 编辑
摘要: [题目来源]:NOIP基础程序题集[关键字]:数学[题目大意]:给定整数N,将其分解为若干个互不相同的整数,是他们的乘积最大//============================================================================================================[分析]:为了使最后分解的数的乘积最大,首先我们应该确定 n 应该分解为几个数(其实就是 n可以分出的最多个数),确定过程就是从 2开始以步差为 1累加,直到恰好小于 n位置(就是找最大数为k,使 2+3+…+k=t<n,划分成的个数应该为 k+1) 阅读全文
posted @ 2011-10-29 16:56 procedure2012 阅读(306) 评论(0) 推荐(0) 编辑
摘要: [题目来源]:Tyvj P1111[关键字]:有向图的连通分量[题目大意]:给出一个图,求它的强连通分量数量//============================================================================================================[分析]:据说此题数据没有按有向图的强连通分量给,并查集就能过,但我还是用trajan做的(水题,练习一下)。tarjan算法和求无向图的割点、桥样子差不多,其本质也是一样的,利用dfs树和时间戳来判断,只不过比那两个算法多了一个栈,求图的连通性的还有floodfill算 阅读全文
posted @ 2011-10-27 11:56 procedure2012 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 求割顶割顶是去掉后让无向图不再连通的点。 求割顶的算法在DFS遍历的算法上形成。什么样的点是割顶?在一棵DFS树中,1.根root是割顶 ------------- 它至少有两个儿子2.其他点v是割顶 ------------- 它有一个儿子u, 从u或者u的后代出发没有指向v祖先(不含v)的B边, 则删除v以后u和v的父亲不连通, 故为割顶。割顶判定算法:引入lowlink数组为 从当前点以及它的后代所能到达的点的开始访问时间的最小值。 Lowlink [u]= Min { pre[u] Pre[v] (u,v)是后向边 Lowlink [v] (u,v)是树边,u在dfs树中是v的父亲 } 阅读全文
posted @ 2011-10-27 11:46 procedure2012 阅读(1766) 评论(1) 推荐(0) 编辑
摘要: [题目来源]:《全国青少年信息学奥林匹克联赛培训教材》(粉书)[关键字]:欧拉路径(回路)[题目大意]:给出一个图G问,是否存在一条欧拉路径(回路),若有则输出字典序最小的解。//============================================================================================================[分析]:1、如果图中奇数度的点只有0或2个则存在,0时从任意点有一条回路,2是从任意奇数度的点有一条以另一个奇数度的点为汇点的路径。2、求欧拉路径时递规求解,倒着记录路径。[代码]:View Code 阅读全文
posted @ 2011-10-27 11:42 procedure2012 阅读(252) 评论(0) 推荐(0) 编辑
摘要: [题目来源]:NOIP2001提高组T4[关键字]:最短路径[题目大意]:给定平面直角若干个矩形,计算(可经过其他矩形)两个矩形任意顶点间的最短路程费用。//============================================================================================================[分析]:其实题目本事没有太大的难点,只需要对每两个点进行连边(其实不用连知道坐标后现求两点间距离)然后求最短路即可。关键是如何知道给定三个顶点的矩形的另一个顶点。公式:(x1,y1)(x2,y2)(x3,y3)为三个顶点坐标 阅读全文
posted @ 2011-10-27 11:35 procedure2012 阅读(1700) 评论(0) 推荐(0) 编辑
摘要: [题目来源]:Greater New York 2006[关键字]:背包[题目大意]:求出使背包不能再放东西的方案数//=================================================================================================[分析]:一开始想求出背包容量为i时的方案数,但后来发现这样无法判断是否还有可以放入背包里的东西。看了题解后才明白要枚举。先将物品按体积升序排序,在从小到大枚举每一个最后剩余的不能装入背包的物品,此时i-1个物品必已装入背包,所以再对i+1件物品,sum-s[i-1](部分和)容量的背 阅读全文
posted @ 2011-10-21 00:48 procedure2012 阅读(294) 评论(0) 推荐(0) 编辑