题意:一棵树上问你最少切掉几条边使得能分割出一个结点数正好为k的子树。思路:dp[i][j]表示以i为根切掉j个结点最少要几条边。dp[v][j]
= min(dp[v][j], dp[v][j-k] + dp[x][k]);代码如下: 1 dp[v]...
分类:
其他好文 时间:
2014-05-05 23:47:19
阅读次数:
370
题目链接再水一发,构造啊,初始化啊。。。wa很多次啊。。#include #include
#include #include #include #include #include using namespace std;#define MOD
1000000007#define LL long l...
分类:
其他好文 时间:
2014-05-05 23:04:05
阅读次数:
375
1 /* 2
题意:八数码问题,给出3*3的矩阵含1~8以及x,给出一个符合的解使得移动后的矩阵的顺序为1~8,最后为x 3 4 题解:BFS 5
需要用到康托展开来表示状态,不然数组无法完全表示所有状态,这样BFS就无法判断找不到解的情况(status 6 的0ms,0KB究竟是怎...
分类:
其他好文 时间:
2014-05-05 22:34:16
阅读次数:
403
代码:
#include
#include
#include
#include
using namespace std;
const int maxn=10003;
const int inf=0x7fffffff;
int num[maxn];
int n;
int main()
{
while(scanf("%d",&n)!=EOF&&n)...
分类:
其他好文 时间:
2014-05-04 12:39:16
阅读次数:
331
本文出自:http://blog.csdn.net/svitter
原题:http://acm.hdu.edu.cn/showproblem.php?pid=2191
题意:多重背包问题。转换成为01背包解。多重背包转化为01背包的关键在于把件数从整体中孤立出来作为一个新的个体,也就是说不管分类,有多少件就有多少种。
AC代码:
//======================...
分类:
其他好文 时间:
2014-05-04 00:33:10
阅读次数:
356
此题我用了2种方法去做,bfs和双向 bfs 现在还在学A*,准备学会了再用A*去试试,单向bfs只过了poj,双向bfs全部都过了,具体思想就是搜索加判重,有用hash,有用康托展开,不过康托展开比较方便,因为毕竟可以一一对应,就不用判重的时候还要比较9个数了,康托展开的计算方法是:从最高位开始,在它位数前面比它小的所有数的数量再乘以它(位数-1)的阶乘,再把每一位的这个值给加起来,就是要求的。...
分类:
其他好文 时间:
2014-05-03 17:25:28
阅读次数:
321
poj 2249 Binomial Showdown 组合数公式优化...
分类:
其他好文 时间:
2014-05-03 17:24:41
阅读次数:
329
(为什么觉得越来越不行了,唉~果然脑子不够使啊~)
http://acm.hdu.edu.cn/showproblem.php?pid=1408
分析:
简单的模拟,不过学习了使用了ceil(double x) 函数 (math.h)
double ceil(double x) (天花板函数)
返回大于或者等...
分类:
其他好文 时间:
2014-05-03 16:20:05
阅读次数:
259
A + B
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 11543 Accepted Submission(s): 6699
Problem Description
读入两个小于100的正整数A和B,计...
分类:
其他好文 时间:
2014-05-03 16:00:57
阅读次数:
270
hdu 1165 Eddy's research II (数学题,递推)...
分类:
其他好文 时间:
2014-05-03 15:34:41
阅读次数:
215