【总览】 通过将数拆分成一位位的进行dp(记忆化搜索),状态最基本的有:位置($pos$),最高位限制($limit$),前导零($lead$),前一位($pre$)等等,通常需要的状态视题目而定。 记忆化搜索的数组$dp$由多维构成,每一位都是一种状态的因素。 【bzoj】不要62 数位$dp$入 ...
分类:
其他好文 时间:
2017-07-24 23:45:57
阅读次数:
145
我们知道,树都有一条直径,那么, ①如果我们的起始点在直径上,那么很显然的,两辆车分别朝两个方向走,遇到直径上的分叉,就要花费分叉的总长*2的路程来遍历这些分叉,而直径上的边都只需要走一遍即可 ②而如果我们的起始点不在直径上,那么他们两辆车只需要先把这个分叉遍历一遍,最后回到直径上,那么又可以按①的 ...
分类:
其他好文 时间:
2017-07-24 23:44:27
阅读次数:
175
栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量。在这些植物采集能量后, 栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起。 栋栋的植物种得非常整齐,一共有n列,每列 有m棵,植物的横竖间距都一样,因此对于每一棵植物,栋栋可以用一个坐标(x, y)来表示,其中x ...
分类:
其他好文 时间:
2017-07-24 21:35:06
阅读次数:
187
UESTC 1594 题意:中文题 思路:和poj食物链的题几乎一样,拆点或者带权并查集做,这种分类不多的比较倾向与拆点做 AC代码: ...
分类:
其他好文 时间:
2017-07-24 21:27:31
阅读次数:
176
题面 思路: 一开始以为和为了博多一样,两边连一样的,后来发现中间连负边的话根本不会割,即割断两块收益为负,所以WA的起飞…… 正解是先黑白染色,每个点和它周围的点连边方式不同。对于黑点A,S-->A表示商业区的价值,A-->T表示工业区的价值,白点相反,对于相邻的情况,边权表示相邻的价值和,这样割 ...
分类:
其他好文 时间:
2017-07-24 17:41:33
阅读次数:
193
1 #include 2 #include 3 #include 4 #define cl(a,b) memset(a,b,sizeof(a)) 5 using namespace std; 6 7 const int maxn=10; 8 9 int T; 10 int cnt[maxn]; 11... ...
分类:
编程语言 时间:
2017-07-24 13:22:06
阅读次数:
206
我只是一个存模板的,详细的请看这里 http://blog.csdn.net/whai362/article/details/47298133 ...
分类:
其他好文 时间:
2017-07-24 11:23:15
阅读次数:
150
1 #include 2 #include 3 using namespace std; 4 int G[300][300]; 5 int Prev[300]; //路径上每个节点的前驱节点 6 bool Visited[300]; 7 int n,m; //m是顶点数目,顶点编号从1开始 1是源,... ...
分类:
其他好文 时间:
2017-07-23 18:27:52
阅读次数:
195
问题 C: 迷宫问题 时间限制: 1 Sec 内存限制: 32 MB[提交][状态][讨论版] 题目描述 小明置身于一个迷宫,请你帮小明找出从起点到终点的最短路程。小明只能向上下左右四个方向移动。 输入 输入包含多组测试数据。输入的第一行是一个整数T,表示有T组测试数据。每组输入的第一行是两个整数N ...
分类:
其他好文 时间:
2017-07-23 18:08:39
阅读次数:
164
题意如上,含有重边(重边的话,俩个点就能够构成了边双连通)。 先缩点成树,在求数的直径,最远的连起来,剩下边(桥)的自然最少。这里学习了树的直径求法:第一次选随意起点U,进行bfs,到达最远的一个点v(level最深)该点必定是树的直径的一个端点,,再从该点出发,bfs,到最深的一点。该点深度就是直 ...
分类:
其他好文 时间:
2017-07-23 16:30:52
阅读次数:
252