2013 ACM/ICPC Asia Regional Nanjing Online(更新中)

来源:互联网 发布:卖家申请淘宝直播条件 编辑:程序博客网 时间:2024/06/03 09:11

hdu 4749 Parade Show

大家还是去做这题吧http://poj.org/problem?id=3167
这题用kmp匹配做的关键是求好模式串的fail数组
  1 //如果A[0~k-1] B[0~k-1]匹配(按照题目的意思匹配)
  2 //那么A[k] B[k]延长匹配的前提是
  3 //前面的数中A[k]的前驱和后继的位置,在B中也是一样,
  4 //出现A[k]的位置也应该出现B[k](这里实际上只需要比较一个就好了,我是比较了第一个出现的位置);
仔细想想,还是非常巧妙的。

hdu 4750 Count The Pairs

并查集求最小生成树就好了,如果当前的一条边连接了两个联通块,那么这两个联通块的点对都是以这条边为最大值的,记录一下有几对即可,询问的时候二分一发


hdu 4756 Install Air Conditioning

次小生成树的变形
一棵树,删除一条边,求次小的生成树,不过到底删除哪条边不确定,也就是次小生成树也有若干种,要求边权和最大的次小生成树。
显然,有这样朴素的方法,枚举mst中的每条边去掉,然后求剩下两个联通块中所有点对的最小值,连接起来就是最小生成树,但这样显然是不行的,我们需要做一些预处理,处理出删除一条边后的最佳替换边的边权,可以先从每个点出发搜一遍,搜出s[i][j]表示i点到j这颗子树所有点中距离的最小值,那么再搜一遍就能得出所有的被某条边隔开的点对的距离的最小值了。done!

h

hdu 4757 Tree

半年前写过一次,这次重新写,了好久
如果是给你一个序列,让你找跟某个数异或值最大的话,相信大家都会做,建好字典树,然后贪心走下去就没了
这个题的话其实很裸啦,关键就是提取出一条路径,那我们维护每个点到根的字典树,提取路径的时候只需要 u + v - lca (三棵字典树相应的权值相减)就能得到一条路径的字典树的结构了,至于怎么维护每个点到根的字典树,这是很简单的,充分利用空间就好了,改新建的新建。参考http://wenku.baidu.com/view/eb54866e011ca300a6c39068.html

hdu 4758 Walk Through Squares

     水的dp,不过我看错题了,以为要每次接下去一条指令一直到右下角,没想到包含就好了。。。我是傻逼,请鄙视
    然后就是暴力的自动机dp也过了。dp[i][j][k][state]表示长度为i,共有j个R了,停留在k节点,状态是state的方案数
   代码没怎么优化 = =
https://github.com/becauseofyou/Contests/tree/master/2013regional/NanJing_Online


原创粉丝点击