上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 48 下一页
  2012年11月2日
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4438简单题代码:#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<vector>#include<set>#include<queue>#include<map>#include<string>#include <iomanip>using 阅读全文
posted @ 2012-11-02 15:31 夜-> 阅读(200) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4432题目很简单 但要注意10进制以上的输出代码:#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<vector>#include<set>#include<queue>#include<map>#include<string>#include <i 阅读全文
posted @ 2012-11-02 15:13 夜-> 阅读(137) 评论(0) 推荐(0) 编辑
  2012年11月1日
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3721题意:一棵树 选择一条边移动边的位置 使移动后任然是一棵树 要求这棵树的直径最小要移动的边一定在原来树的直径上 找到这条直径 枚举所有的边每次枚举一条边时 原来的树就变成了两个树 假设两个树的直径 半径分别为d1,r1 d2,r2 那么重新组成的树的直径应该是 d1,d2,r1+r2+此边长度 中最大的那个关于一颗树怎么找直径 首先从任意一点出发 找到其他点的距离 最远距离的那个点 一定是直径的其中一个端点 以这个端点为起点再搜一遍就找到另一个端点了代码:#include<iostream> 阅读全文
posted @ 2012-11-01 19:18 夜-> 阅读(176) 评论(0) 推荐(0) 编辑
  2012年10月31日
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3723需要用到大整数 终于用java AC了此题为经典 catalan 问题的变形如果问题中的路径只能向上和向下的话就变成了 catalan 了,既然向上和向下的个数相等枚举向上和向下的个数 每次枚举和剩下的向前状态个数进行组合 即可代码:import java.util.*;import java.math.BigInteger;import java.math.BigDecimal;;public class Main { public static void main(String[] args) { 阅读全文
posted @ 2012-10-31 21:10 夜-> 阅读(205) 评论(0) 推荐(0) 编辑
  2012年10月30日
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4433记忆化搜索+DPans[x][f][ff]; 表示到a的第x位时 此位加f ,x-1位 加ff 的情况下的最优解a的x位加f后如果还不到 b[x] 然后分两种情况 一个是a的第x位不断加 直到等于b[x] 或者不断减直到等于b[x]对于两种情况 分别枚举长度为 1 ,2 ,3的个数的情况 对下两层的影响 对下两层的影响 无论是加多少还是减多少 都可以转化为 加上一个10以内的数(因为是循环的)然后不断递归时间复杂度 O(N*10*10*C(12,2)) 大约10^7代码及其注释:#include< 阅读全文
posted @ 2012-10-30 20:15 夜-> 阅读(206) 评论(1) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3720水题代码:#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<vector>#include<set>#include<queue>#include<map>#include<string>#include <iomanip>usin 阅读全文
posted @ 2012-10-30 17:38 夜-> 阅读(106) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3722KM 先求出任意两个字符串前后匹配的值 然后KM求最大匹配越来越发现 图论题的关键在于建图呀代码:#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<vector>#include<set>#include<queue>#include<map>#inclu 阅读全文
posted @ 2012-10-30 16:52 夜-> 阅读(159) 评论(0) 推荐(0) 编辑
  2012年10月29日
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3724简单字典树 只不过数据处理有点麻烦代码:#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<vector>#include<set>#include<queue>#include<map>#include<string>#include < 阅读全文
posted @ 2012-10-29 20:55 夜-> 阅读(136) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3729不看解析 还真不敢用匈牙利算法解 怕超时后来想想 在用人找对应点的时候 对应点的范围宽的话 搜的广度会增加 但深度会减少 对应点的范围窄的话 深度会增加 但广度会减少所以总体来说时间复杂度不高应为要字典序最大的结果 所以要从编号大的人开始搜代码:#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<v 阅读全文
posted @ 2012-10-29 19:57 夜-> 阅读(123) 评论(0) 推荐(0) 编辑
摘要: http://acm.timus.ru/problem.aspx?space=1&num=1463树形DP此题有个陷阱 就是图的本身是一个森林 不是树由于所有 happiness 的值都为非负 所有最优路径一定是从一个叶子节点到另一个叶子节点(当然 两个节点可能一样)思路:包含一个节点 和 两个节点的 树特殊处理对应3个节点以及3个节点以上的树 一定能找到一个初度 大于等于2 的点 以此点为根节点更新对于这个树 dfs 记录每个点向下的第一最优路径选择 和第二最优路径选择然后不断向上更新最后 把所有向下路径至少两条的节点 将此类节点的两个最优路径 连起来的路径进行和最终答案比较 择优而 阅读全文
posted @ 2012-10-29 10:28 夜-> 阅读(172) 评论(0) 推荐(0) 编辑
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 48 下一页