上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 48 下一页
  2012年7月25日
摘要: http://poj.org/problem?id=1286polya burnside难了不会 会了不难#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<map>#include<cmath>#define LL long longusing namespace std;int gcd(int a,int b){ if(a%b==0) return b; return gcd(b,a%b);}LL ploya(in 阅读全文
posted @ 2012-07-25 09:38 夜-> 阅读(134) 评论(0) 推荐(0) 编辑
  2012年7月24日
摘要: http://poj.org/problem?id=2201基础笛卡尔树#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int N=50005;struct node{ int key; int value; int l,r,f; int I;}mem[N];int bhead,ri;bool cmp(node a,node b){ return a.key<b.key;}int f[N];int 阅读全文
posted @ 2012-07-24 16:21 夜-> 阅读(230) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3022http://acm.timus.ru/problem.aspx?space=1&num=1658给你 n 和 m 问能不能找到一个一百位以内的数使得每位的和为 n 每位平方的和为 m又是看了别人的思路呀 伤不起呀 自己的能力还是不够呀digits[i][j] 表示 n 为i m为j 时最少位数num[i][j] 表示最少位数时 最靠前一位是几让后以位数最小优先 在以考前位越小越好优先 dp代码:#include<iostream>#include<stdio.h>#in 阅读全文
posted @ 2012-07-24 09:33 夜-> 阅读(459) 评论(0) 推荐(0) 编辑
  2012年7月23日
摘要: http://poj.org/problem?id=3140一遍DFS 枚举任一条边被切断的情况就可以代码:#include<iostream>#include<stdio.h>#include<string.h>#include<queue>#include<cmath>#include<stack>#include<algorithm>#define LL long longusing namespace std;const int N=100005;struct node{ LL sum; struct 阅读全文
posted @ 2012-07-23 20:24 夜-> 阅读(154) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2486树形DP 我一般都是先用邻接表保存树 然后用的都是子树和所有兄弟树的dp方法自己感觉理解也行呀 但是没见有多少人用呢,也许自己有点另类老是出错 思维能力还是不够 越来越感觉acm是在练一个人的思维了题目大意:给一个树 节点有一定数目的苹果人在1(根点)最多走K步 问最多可以得到多少苹果思路:ans[i][j][0] 表示包括i在内所以其子节点和右边兄弟树 可以走j步 可以存在不回来的情况 的最佳答案ans[i][j]][1] 这个必须都回来代码及其注释:#include<iostream>#include<stdio 阅读全文
posted @ 2012-07-23 19:52 夜-> 阅读(218) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1947给你一棵n个节点的树 问你保存p个节点的子树最少需要切断多少条边我用邻接表保存树ans[i][j] 代表了包含i在内的它所要子节点和兄弟子树在内 保存j个点需要最少切断多少边代码及其注释:#include<iostream>#include<stdio.h>#include<string.h>#include<queue>#include<cmath>#include<stack>#include<algorithm>#define LL long l 阅读全文
posted @ 2012-07-23 10:20 夜-> 阅读(158) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2057题意比较简单是典型的树 DP思路:先建树 然后一遍DFS求的每个节点的 访问一遍失败回来的总步数 和每个子树的叶子节点树再对每个节点后面的子节点按照优先级排序 就是确定先访问谁代码及其注释:#include<iostream>#include<stdio.h>#include<string.h>#include<queue>#include<cmath>#include<stack>#include<algorithm>#define LL long 阅读全文
posted @ 2012-07-23 07:31 夜-> 阅读(203) 评论(0) 推荐(0) 编辑
  2012年7月21日
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4303算法有时候不是关键 关键在于思维能力这个题 一遍DFS就可以 不需要多复杂的算法但是需要较好的思维能力 才能在一遍DFS的情况下搞定左右情况的值自己是思维就是不行呀 看了提示才过的但是 不知道是因为 64位整型 和int型 相乘相加时会出问题 还是题目的一些数据大小的范围出问题啦纠结了n久 最后把一些int 都改成64位 就过了 是不是其他问题我也不知道这个题我是没法说思路啦 因为我已经挂了 呜呜呜呜呜~~~~~~~~~代码:#include<iostream>#include<std 阅读全文
posted @ 2012-07-21 21:16 夜-> 阅读(473) 评论(2) 推荐(0) 编辑
摘要: 给一个2*n 的chocolate分成一定的块数 问有多少种情况DP 递推link[][]表示 到第 i 排 第i排相连 分成 j 块有多少种情况nolink[][]表示 到第 i 排 第i排不相连 分成j块有多少种情况代码:#include<iostream>#include<stdio.h>#include<string.h>#include<queue>#include<cmath>#include<stack>#include<algorithm>using namespace std;const in 阅读全文
posted @ 2012-07-21 14:21 夜-> 阅读(181) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4302给一个一维的线段L 小动物最初最0点两种操作0 x 在x位置添加一个吃的1 小动物去吃一个距离它最近的一个吃的 左右距离相等的话选择上一个选择方向这个题既可以用线段树 也可以用优先队列用优先队列 代码短 好理解 效率高但这题确实是一个练习线段树的好题线段树代码及其注释:#include<iostream>#include<stdio.h>#include<string.h>#include<queue>#include<cmath>#inclu 阅读全文
posted @ 2012-07-21 09:15 夜-> 阅读(379) 评论(0) 推荐(0) 编辑
上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 48 下一页