码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 3735 Training little cats

时间:2016-07-23 16:44:14      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:

题目链接: http://poj.org/problem?id=3735

 

    一开始的想法是建立两个(n+1)*(n+1)的矩阵A,对角线均为1,其他元素初始为0,另一个(n+1)*1的矩阵B,对于元素(b i1) ∈ B,1<= i <=n(矩阵元素坐标在讨论中均以1开始),表示第n只猫的花生个数,初始均为0,b(n+1)1=1。

    对于g i 操作,将(a i(n+1)) 加1。((aij) A)

    对于e i 操作,将第 i 行全置为零。

    对于s i j 操作,将第 i 行和第 j 行交换。

    这样,修改后的矩阵A对其求m次幂,再与矩阵B相乘得到一个(n+1)*1的矩阵,第 i 行(1<= i <=n)表示第n只猫最后的花生个数。

 

    对于题目样列,算式如下,

技术分享

 

 

 

    仔细思考,上述矩阵可以简化,重新定义(n+1)*(n+1)的矩阵A,对角线均为1,对于(a i1) ∈ A,1<= i <=n表示第n只猫的花生个数,初始均为0

    对于g i 操作,将(a i 1) 加1。

    对于e i 操作,将第 i 行全置为零。

 

    对于s i j 操作,将第 i 行和第 j 行交换。

    这个方法与前面的是等价的,对A求m次幂,(a i1) ∈ Am,1<= i <=n表示第n只猫的花生个数。

 

   

 

POJ 3735 Training little cats

标签:

原文地址:http://www.cnblogs.com/cumulonimbus/p/5698880.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!