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






This_poet——Only a poet

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

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

2011年9月16日

POJ3250 Bad Hair Day——单调栈——Pku3250
摘要: 维护一个单调栈,栈中元素单调递减。同时记录一个num数组,表示的是栈中这个点能够看到的牛的数量+1(它本身)插入元素a[i]时,一直dec(stack_size)直到stack[stack_size]>=a[i],同时temp记录扫过的num[i]之和,在ans的值上加上temp值如果stack[stack_size]=a[i],那么就在num[stack_size]上加上temp+1,否则将这个元素压入栈中。最后的ans值就是答案CODEProgram Badhair;//By_ThispoetConst maxn=80000;Var i,n,size,temp :Longint... 阅读全文
posted @ 2011-09-16 23:40 This_poet 阅读(593) 评论(0) 推荐(0)
 
POJ3251 Big Square——搜索+强力剪枝——Pku3251
摘要: O(n^4)+强力剪枝优化无压力,不用二分图匹配的麻烦构图。搜索策略:枚举对角线——因为只有枚举对角线才能保证正方形唯一。剪枝:1、对于每个是'J'的点,枚举出它非严格下方的所有'J'点,不用全部枚举N^4次2、对于每条对角线,计算出其中点tx、ty坐标与两个端点x、y坐标的差值x1,y1,x2,y2,如果tx+y1或ty+x2不是整数就判断下一个。判断条件:对于每条合法对角线,满足((map[tx+y1,ty+x2]='J')and(map[tx+y2,ty+x1]<>'B'))or((map[tx+y2,ty+x1 阅读全文
posted @ 2011-09-16 23:26 This_poet 阅读(1008) 评论(2) 推荐(0)
 
POJ3253 Fence Repair ——贪心(Huffman树的构造)+堆——Pku3253
摘要: 思想与合并果子相同。逆序地来想,显然这些板子必须一共切割n-1次,如何恰当的分配这n-1次切割就是关键所在。这里就用到了构造Huffman树的贪心思想。即每次从待合并序列中取两个最小的值,将它们合并成一个较大的,然后把这个较大的在加入进待合并的序列当中,直到待合并序列中只有一个元素。而不加任何优化时复杂度为O(n^2),难以承受。可以用堆将复杂度优化到O(nlogn),就完全可以接受了。CODEProgram plank;//By_ThispoetConst maxn=20000;Var i,j,k,m,n,heap_size :Longint; ans :Int6... 阅读全文
posted @ 2011-09-16 07:39 This_poet 阅读(893) 评论(0) 推荐(0)