2010 ACM-ICPC Multi-University Training Contest(12)——Host by WHU 部分题目解题报告

Source:

http://acm.hdu.edu.cn/search.php?field=problem&key=2010%20ACM-ICPC%20Multi-University%20Training%20Contest%A3%A812%A3%A9%A1%AA%A1%AAHost%20by%20WHU&source=1&searchmode=source

最近训练赛太多,来不及补题了。。

HDOJ 3554 Another Contest

题意:水题。。分析:想清楚写就行了。。

 

HDOJ 3555 Bomb

题意:问从1到n,看成字符串,含有49的substring的有多少。

分析:数位dp。貌似是入门题,交了2000+ac。训练赛的时候被其他队各种秒,我们三个都木有做过。。拖到快结束才A。。待补。。

 

HDOJ 3560 Graph’s Cycle Component

题意:一个无向图,问你有多少个联通块,又有多少个联通块是环。

分析:因为是无向图,所以用并查集就可以做。看最后有多少个集合,是环的集合,集合内所有点的度都必须是2。脑子不好使,开始上来写了Tarjan,Tle。。然后Dfs。。StackOverflow。。最后偷偷开栈=。=

 

HDOJ 3561 How many times

题意:平面上给你很多圆,问被圆覆盖最多次的点被覆盖了多少次。

分析:可以想到被覆盖最多的点一定属于圆的交点和圆心的集合。所以求两圆交点和圆心,然后每个点和每个圆判断,应该是o(n^3)的。队友敲了不补了=。=

 

HDOJ 3562 Interesting Tour

题意:无向图,n个点。开始3个点,任意两点有边,接下来每个点会和之前的一对点连边,且这一对点是直接相连的。任选起点,除了起点每个点最多走一次,每条边最多走一次,要走回起点,问最多能走多少点。

分析:因为图的特点,每加上一个点,原来那对点之间的路我们肯定不走了。有一点图是生长出来的意思。挣扎半天,写了个递归的dp,f(x,y)表示x和y这条边最多能扩展出多少点,则f(x, y) = max(f(x, z) + f(y, z) + 1),z是由x和y扩展的某个点,答案是f(1,2) + f(2, 3) + f(1, 3) + 3。然后举出反例发现答案是可以不包括开始三个点的,就坑爹了= =。。接着看,题目保证每给出的一对点是已经直接连通的(其实题面有小小的歧义,我一直以为是在图上连通,然后顺序是随便给的,要自己找拓扑序)所以我们倒着做,随着更新ans就可以。对于当前点对ans = max(ans, dp[x][y] + dp[y][z] + dp[x][z] + 3),然后更新dp[x][y] = max(dp[x][y], dp[x][z] + dp[y][z] + 1)

 

posted @ 2014-08-22 22:00  james47  阅读(277)  评论(0编辑  收藏  举报