Vjudge专项练习
文章平均质量分 79
Liweiz1999
这个作者很懒,什么都没留下…
展开
-
hdu6567 Cotree(树形dp)
Cotree本题大意:给出两棵树,让两个树随意连在一起,使连在一起的树的每个点到其他点的总和最小。可以通过分析得到,想让每个点到其他点的总和最小,那必须是连接的重心,所以本题分为两个过程,找重心连在一起,在求出,每个点到其他点的总和,每个点到其他点的距离之和其实可以通过加每条边的使用次数来得到,所以就完事了。#include <iostream>#include <cst...原创 2019-08-12 11:04:44 · 340 阅读 · 0 评论 -
hdu2089 不要62(数位dp)
不要62本题大意:不吉利数字为62和4,求给定区间内的不吉利数的个数。最为基础的数位dp入门题,不过本弱鸡水平太低,对着函数死看看不懂,只能当作模版用了,solve(x)表示x以内的不吉利数字的个数,用右区间减去左区间即可。#include <iostream>#include<cstdio>#include <algorithm>#include ...原创 2019-08-12 18:47:59 · 91 阅读 · 0 评论 -
poj3259 Wormholes(最短路)
Wormholes本题大意:在农场中存在时空虫洞,可以让人回到以前的多少秒前,问是否存在某个点,通过虫洞和其他路径能够在当前时间或以前回到现在的起点。本题大意可以看出,这是一个判断图中是否存在环的题,一般情况下,用dfs来找环比较方便,所以将图建好后,把每个点都遍历一边,判断时候能回到起点就行了。#include <iostream>#include <cstdio>...原创 2019-08-12 18:57:06 · 98 阅读 · 0 评论 -
poj3181 Dollar Dayz(背包)
Dollar Dayz本题大意:农夫有n块钱,有k中工具,每种1到k块钱,问农夫有多少种工具买法。本题可以通过背包来解决,f[i]表示i块钱时工具买法,递推至n即可,不过最后的答案超了long long,所以我用Java写的,算是熟悉一下刚学的语言吧。import java.math.BigInteger;import java.util.Scanner;import java.util...原创 2019-08-12 19:22:12 · 123 阅读 · 0 评论 -
poj1276 Cash Machine(多重背包)
Cash Machine本题大意:给出一个最大金额,然后给出k中币的金额和数量,求能正好提供的最大小于等于最大金额的金额。本题是多重背包模板题,直接套上模版就可以解决。#include <iostream>#include <cstdio>#include <algorithm>#include <string>#include <...原创 2019-08-12 19:42:56 · 111 阅读 · 0 评论 -
hdu3639 Hawk-and-Chicken(强联通分量+反建图dfs)
targan算法训练题目大意:给一个有向图,如果u是v的粉丝,v是w的粉丝,那么u是w的粉丝,求最大粉丝的数量和点。可以想到最大粉丝点肯定是存在在出度为零的强联通分量中,因为如果不是这样肯定有另一个他通往的点比他的粉丝多,而求最大粉丝点这里,用到了反建图,因为方便dfs来搜索每个点,搜索过程中,每个点首先有他自己强联通分量内的n-1个点以及他到达的强联通分量的n个点,然后搜索即可。#inc...原创 2019-08-12 20:06:46 · 2557 阅读 · 0 评论 -
poj2446 Chessboard(二分图匹配)
Chessboard本题大意:给出一个nn的图,然后给出m个障碍,求是否能用12的长条把图填满。本题能想到二分图匹配也是不容易,做专项的时候知道是这么个做法才能这样写,1*2,的长条,两个格子是可以相互匹配的,并且只能匹配一起,所以就把一个点与他旁边的四个点连在一起,然后做一次做的二分图匹配,看匹配结果是否与结果相同就可以。#include <iostream>#include...原创 2019-08-12 20:43:41 · 137 阅读 · 0 评论 -
hdu 4027 Can you answer these queries?
刚学线段树,只能做点这些线段树模板题,在区间更新的时候,可以想到,开平方的话不需要太多次就能到1,而这个时候再更新的话会重复计算很多次,所以需要加一个特判,基本上就这一个点了。#include <iostream>#include <cstdio>#include <algorithm>#include <string>#include &...原创 2019-09-11 21:07:08 · 95 阅读 · 0 评论 -
hdu 3974 Assign the task
因为刚学线段树,这个题做的时候费了不少劲,尤其是树的序列化,看了题解才知道:(对于更新一个结点及其子节点的操作,我们在树上没办法直接操作,我们可以考虑利用dfs给所有点编一个开始点号和结束点号,这样在开始和结束点号间的点号都是该结点的子结点,所以只要对这个区间的数操作即可完成对所有子节点的操作,就成功将树给序列化了,然后进行正常线段树操作就行,访问的话访问l或者r查询其标记值即可。)然后找到祖...原创 2019-09-11 21:11:04 · 129 阅读 · 0 评论