• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






This_poet——Only a poet

为省队而奋斗,为NOI而奋斗!This_poet@126.com
 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

2011年9月1日

POJ2230 Watchcow——欧拉回路——Pku2230
摘要: 复习一下欧拉回路的求法。伪代码如下:Void Eular(int p);{ for 从p出发的每条边 { 如果这条边没有被访问过 { 边的访问标记置为 true Eular(这条边上另外一个点); 将这条边压入栈中; } }}倒序访问栈中每一条边就是答案。CODEProgram POJ2230;//By_PoetshyConst maxn=10000; maxm=50000;Var i,j,k,m,n,p,q :Longint; pre,other,last :Array[1..maxm*2]of Longint; v ... 阅读全文
posted @ 2011-09-01 19:31 This_poet 阅读(409) 评论(0) 推荐(0)
 
POJ2228 Naptime——动态规划+技巧性优化——Pku2228
摘要: 本题是一个显然的动态规划题目。设计状态时,用f[i,j,1]表示第i段时间为止,已睡去j个时间段,且第i段时间睡觉获得的最大效用。反之,f[i,j,0]表示上述状态下[i]第i段时间不睡觉能获得的最大效用值。状态转移方程如下:f[i,j,0]:=Max{f[i-1,j,0],f[i-1,j,1]}f[i,j,1]:=Max{f[i-1,j-1,0],f[i-1,j-1,1]+u[i]}具体就不用多解释了,这题的关键不在方程上,而在于的是环形Dp的处理。上述方程从i=1开始顺推,推出的只能是第一段时间开始睡或者第一段时间没有睡的最大效用值,换句话说,就是无论如何没有把u[1]加入这个最大值中,但 阅读全文
posted @ 2011-09-01 17:53 This_poet 阅读(969) 评论(0) 推荐(0)
 
POJ2226 Muddy Fields——最小点覆盖问题——Pku2226
摘要: 最小点覆盖问题,采用匈牙利算法。证明一下算法的正确性:定义一段无法向左右扩展的连续泥地为行连通块,一段无法向上下扩展的连续泥地为列连通块。我们把行连通块对应X集合,列连通块对应Y集合,如果一个行连通块与一个列连通块有交点且为空地,则对应在二分图中有一条边。显然木板的集合对应二分图的一个匹配,任意两个木板不可能共同存在于一个行/列连通块中,所以最少木板数目=最大匹配数。证毕。Program POJ2226;//by_PoetshyConst maxn=50;Var i,j,k,m,n,sum,sum2,ans :Longint; map :Array[1..maxn,1.... 阅读全文
posted @ 2011-09-01 17:36 This_poet 阅读(284) 评论(0) 推荐(0)
 
POJ1987 Distance Statistics——树的分治——Pku1987
摘要: 这道题是楼教主《男人八题》中的一题,算法:树的分治。看到题目时很容易想到直接Dfs,但那样的话时间复杂度会高达O(n^2)!对于n<=40000的数据来说根本无法承受。所以,必须考虑分治的思想。怎么分治呢?树的重心!至于树的重心,不熟悉的OIer可以做掉POJ1655,或者NOI2011 Day2的第一题来练手,这两道题要求的就是树的重心。至于pascal语言的ACMer可以考虑编译开关,OIer最好不要加编译开关,练一练非递归手写栈也是不错的。基本思路:1、把这棵无根树以1为根节点,使其变成一棵有根树。2、对于每棵现在要处理的树,进行如下处理:(1)遍历这棵树,找到所有一端点为根,路径 阅读全文
posted @ 2011-09-01 14:15 This_poet 阅读(705) 评论(2) 推荐(1)