HDU 3555 Bomb(数位DP)
ACM
题目地址:HDU 3555
题意:
问(0, n]里面有几个数有'49'这个子串。
分析:
裸数位DP。
直接用DFS做。
就是输入输出比较坑,杭电貌似都要用__int64。
代码:
/*
* Author: illuz
* File: 3555.cpp
* Cr...
分类:
其他好文 时间:
2014-07-27 11:47:33
阅读次数:
223
知识点:树的重心
定义:以这个点为根,那么所有的子树(不算整个树自身)的大小都不超过整个树大小的一半。
性质:
性质 1 :树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个距离和,他们的距离和一样。
性质 2 :把两棵树通过某一点相连得到一颗新的树,新的树的重心必然在连接原来两棵树重心的路径上。
性质 3 :一棵树添加或者删除一个节点,树的重心最多只移动一...
分类:
其他好文 时间:
2014-07-27 11:44:53
阅读次数:
238
我今天做的这叫什么题……
今天这个题直接跪了,一看十六进制直接懵了。。
然后在csdn上竟然发现了身边直系学长写的解题报告,然后问了一下解题的思路。然后写出来的代码,想要测试数据吗吧哈哈
给一组最基本的~
5 3
fff
f0f
fff
f0f
fff
输出应该是K
AC代码如下:
#include
#include
#include
#include
using name...
分类:
其他好文 时间:
2014-07-27 11:41:10
阅读次数:
313
膜拜了NN个大神的代码,看了一整天,弱菜伤不起啊。求拜师啊
问题分析:求树上每个节点到其它节点的最远距离
每个节点到其它节点的最远距离就是以该节点为根的树所能达到的最大深度,这样子的话,要把每个节点转化为根,总共dfs的次数为节点数,肯定超时
于是~
一个节点的最长路:1.从该节点往下取得最长路(子树部分) 2.从该节点往上取得的最长路(父节点往上的部分)
情况1:自下而上的d...
分类:
其他好文 时间:
2014-07-27 11:27:42
阅读次数:
218
解题报告
题目传送门
题意:
求满足条件的最大集合:集合内任何两个人都没有浪漫关系
思路:
跟POJ2771一样的题,变的简单多了。POJ2771解题报告
#include
#include
#include
#include
using namespace std;
int n,mmap[550][550],pre[550],vis[550];
int dfs(int x)...
分类:
其他好文 时间:
2014-07-27 11:21:32
阅读次数:
212
hdu 2660 Accepted Necklace(01-背包变形 || DFS)...
分类:
其他好文 时间:
2014-07-27 11:10:02
阅读次数:
222
HDU 2089 不要62(数位DP,三种姿势)
ACM
题目地址:HDU 2089
题意:
中文题意,不解释。
分析:
100w的数据,暴力打表能过先初始化dp数组,表示前i位的三种情况,再进行推算直接dfs,一遍搜一变记录,可能有不饥渴的全部算和饥渴的部分算情况,记录只能记录全部算(推荐看∑大的详细题解Orz)
代码:
1. 暴力 (以前写的)
...
分类:
其他好文 时间:
2014-07-26 17:20:32
阅读次数:
283
题目大意:有多片木片需要填涂,可以每次横着涂一行,也可以一次涂一列,当然你涂一行时遇到中间长度不够高的木片,填涂到此中断这题目运用dfs能更容易的解出,虽然还是十分不容易理解 1 #include 2 3 using namespace std; 4 5 #define N 5010 6 in...
分类:
其他好文 时间:
2014-07-26 17:04:21
阅读次数:
250
下面是求割點的模板,還有cut_vertex_num[]數組(array)記錄了哪些是割點
Int cut_vertex_num[];
void dfs(int cur,int pa)
{
int child=0,flag=0,i;
low[cur]=dfn[cur]=++depth;
for(i=0;i<adj[cur].size();i++)
{
i...
分类:
其他好文 时间:
2014-07-26 15:32:23
阅读次数:
289