2015 UESTC Winter Training #8【The 2011 Rocky Mountain Regional Contest】

2015 UESTC Winter Training #8

The 2011 Rocky Mountain Regional Contest

Regionals 2011 >> North America - Rocky Mountain

 

开始时貌似是UVAlive挂了,无论交什么都WA,后来转战HDU

这次水题比较多,其中B题据说有更加高级的方法。

G题WA了两发,才发现竟然没有输出Case!!!

未完成:D F H I J

 

A - Iterated Difference

水题,模拟迭代即可。

在UVALIVE用的bits/stdc++.h头文件,粘到HDU上,结果直接CE了一发。

 

B - Shape Number

给出一串数描述一个封闭的图形,比如上边的22234446466001207560(最长300,000位),因为同一个图形旋转或者变换 起始位置会得到不同的数串,所以要进行标准化,标准化后第i位为原数串中第i+1位与第i位的差。最后一位是原串第一位与最后一位的差。然后求最小字典序环。

 

比赛时是用简单的模拟水过去的(能水过去也太水了),据说有模板或者可以用后缀数组,一会儿去学习一下。

 

C - Stock Prices

水题,多关键字排序后再对结果排下序即可。

 

E - Pills

看到1、2、5、14、42这个序列就应该想到是卡特兰数

 

F - Robot Navigation

给一个机器人,一个只有火山和通路的地图n*m(均小于等于1000),火山不可以走,还给了起点,终点,和起始的朝向,现在机器人1s只能前进一步或者向左向右转90度,问到达目的地有几种路径,并且时间均最小。

 

比赛时调了1个多小时最后还是TLE,之后再调试一下。

 

G - User Names

相当水的模拟

 

I - Wealthy Family

给一棵n个结点构成的树(n<=150,000),给出每个节点的父亲节点,以及权值。现在要从中取K个结点(1<=k<=300)。使得K个结点中任意两个结点都不是父子关系,问K个结点权值和最大是多少。

 

这道题还没有写,但是有思路。

能想到的就是树形DP,设dp[i][j][k]为以节点i为根的子树中取出j个结点,且取出的结点不存在父子关系。k=0表示取出根结点,k=1表示不取出根结点。

dp[i][j][0]=∑max{ dp[child][j][0] , dp[child][j][1] }

dp[i][j][1]=∑dp[child][j-1][0]

但是显然数组无法开到dp[150000][300][2],可能会用到记忆化搜索。

 

你可能感兴趣的:(mountain)