题意:有一个有线电视网络叶子结点是用户,每个用户有一个愿意支付的金额。然后每条边都有话费。问公司在不亏本的情况下最多能满足多少用户。思路:dp[v][j]
= max(dp[v][j], dp[v][j-k]+dp[x][k]-edge(v, x))其实就是背包问题,但是一开始TLE了一次,这里要有...
分类:
其他好文 时间:
2014-05-06 00:04:24
阅读次数:
318
题意:一棵树上问你最少切掉几条边使得能分割出一个结点数正好为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
#include #include int
a[]={10,22,42,51,56,63,78,99,102,118}; int binSearch(int* a, int begin, int end,
int k){ int mid = begin + ( (end - be...
分类:
其他好文 时间:
2014-05-05 23:31:39
阅读次数:
257
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
题目链接:http://poj.org/problem?id=1011
这道题用到了深搜+剪枝。
#include
#include
#include
using namespace std;
int a[65];
int vis[65];
int n;
int cmp(int x,int y)
{
return x>y;
}
int dfs(int len,int need,int ...
分类:
其他好文 时间:
2014-05-05 13:28:57
阅读次数:
290
食物链
Time Limit: 1000MS
Memory Limit: 10000K
Total Submissions: 41805
Accepted: 12160
Description
动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。
现有N个动物,以1-N编号。每个动物都...
分类:
其他好文 时间:
2014-05-04 12:42:36
阅读次数:
330
Poj-3922 A simple stone game
博弈,k倍动态减法详解...
分类:
其他好文 时间:
2014-05-04 00:21:34
阅读次数:
296
此题我用了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
Description
司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示:
如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网...
分类:
其他好文 时间:
2014-05-03 15:44:45
阅读次数:
284