Member SRM 474

DIV1

 

250P RouteIntersection

 

一个人在N(1-10^9)维空间里行走, 从(0...0)原点开始,每次选择其中的一维增加1或者减少1,其他维的值不变,现在给出每次行走选择的维数,给出是在该维增加还是减少,问有没有重复走到之前经过的点。

 

这道题很容易从二维和三维推导开来,如果重复走到某一点,那么第二次到该点与第一次到该点之间的行动应该是抵消的,也就是说如果中间在K维增加了1,那么必定又有一次移动使K维减少1,所以中间那段的行动全是可以抵消的。我很暴力地用O(n^2)来枚举重复的区间,O(n)枚举区间中的元素,O(n)统计区间中该元素是否抵消,总共O(n^4)的复杂度,对于n<=50还是能够承受,千万不要怀疑TC的服务器。CHA人的时候看到许多人用到map,set之类的,赛后写了一下map映射离散化+模拟。

 

 

500P TreesCount

 

给定无向图N个点的距离邻接矩阵,求构成最短路径树的方法数。

 

比赛时候思维混乱,YY了各种解法,都证明不了。。后来参考hhanger大牛的方法,求出最短路以后,按从小到大的顺序依次求前面所有点到当前点为最短路的方法数,然后一直连乘下来。大牛从第一个点的方法数,到第二个点的方法数,然后推导到前k个点的方法数。思路非常清晰,这种推导也不难,问题在有压力紧张、遇到不会的题的时候,大牛依旧能冷静地见招拆招。

 

1000P GameWithGraphAndTree

 

留空

 

 

 

DIV2

 

250P PalindromesCount

 

给定两个字符串A, B, 可以将整串B插入到A字符串中的任意的间隔位置(包括A首字母的前面,和A尾字母的后面),问操作后形成的所有的字符串中有多少个是回文字符串。

 

模拟水题,直接枚举A中插入B字符串的位置,然后写个判断,统计一下即可。

 

500P TreesCount

 

同DIV1 250P

 

 

1000P SquaresCovering

 

留空

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值