摘要:
免费陷阱 "HDOJ 1176" 一开始正向推的时候,一直wa,后来采用逆向推得到正确结果。 初始化的时候dp数组都初始化为0。 include using namespace std; const int INF=0X3F3F3F3F; const int maxn=100005; const i 阅读全文
摘要:
Piggy Bank "HDOJ 1114" 本题就是完全背包的模板题,注意复习一下关于背包九讲中的问什么这里使用的是顺序遍历。 还需要注意的一个问题就是初始化的问题,dp[0]初始化为0,其他的初始化为无穷大。因为最后的状态是背包一定是满的。(具体看背包九讲的ppt的解释) //完全背包的问题 i 阅读全文
摘要:
成绩排序 "成绩排序" 这里需要注意的就是超内存的问题。 解决方法就是通过指针的方式,每次动态开n大小的内存,而不是一开始就分配。 include using namespace std; int n; const int maxn=1e6+6; struct node{ string name; 阅读全文
摘要:
引水入城 "201703 5" 这从题目分析来看很像最大流的问题,只需要增加一个超级源点和一个超级汇点就可以按照题意连边再跑最大流算法。 因为数据量太大了,肯定会超时。但是没有想到可行的解决方法。 include using namespace std; const long long INF=0X 阅读全文
摘要:
Jungle Roads "HDOJ 1301" 这是最小生成树的水题,唯一要注意的就是那个n,其实输入只有n 1行。 include include include include include include include using namespace std; const int INF 阅读全文
摘要:
frogger "POJ 2253" 这题的代码特别像prim求解最小生成树的代码,其实两者本来也很像。 这里的d数组不再维护的起点到该点的最短距离了,而是路径中的最长距离。 include include include include include include include using 阅读全文
摘要:
Marriage Match IV "HDOJ 3416" 这题的题意就是要找两点之间最短路的路径个数,而且边不能重复。 最大流和最短路的结合。首先正向和反向建图,再跑两遍dijikstra。到这里就求出来起点到某一点的最短路以及某一点到终点的最短路。 还有一个关键的公式就是如何判断一条边是否在最短 阅读全文
摘要:
The Shortest Path in Nya Graph "HDOJ 4725" 这题是关于最短路的问题,但是和常规的最短路有点不同的就是这里多了层次这一结构。 为了解决这一问题可以把每一层抽象或者划分为两个点:入点和出点。 对于每个点,将所在层的入点和该点相连,再将该点和所在层的出点相连,权值 阅读全文