NOI2013

Day1:

  矩阵游戏:

    矩阵乘法。

    构造两个转移矩阵,一个从f[i][j]转移到f[i][j+1],一个从f[i][m]转移到f[i+1][1],然后快速幂矩阵乘法就好了。

    注意这题要使用十进制快速幂,免去写高精度的麻烦,也加快了速度。

    十进制快速幂要维护当前位应该乘的对应从0到9的矩阵,所以自带10的常树,数据范围较小的时候不推荐使用。

  书法家:

    长见识了,听说这叫写字型DP。

    根据题目描述,我们发现可以把”NOI“从左到右分成11个部分,于是就可以按列DP了:

      设f[col][up][down][type]代表当前做到col列,第col列上界为up下界为down且属于第type个部分。

    具体转移可以参考我的代码,或者maijing的博客:http://www.cnblogs.com/maijing/p/4686399.html

Day2:

  向量内积:

    这题解法简直杂技。

    一些杂技:

      1.我们将n个d维向量用一个n*d的矩阵A存储,然后第i个向量和第j个向量的点积就是A*AT(即A的转置)的第i行第j列上的值。

      2.判断两个矩阵A,B是否完全相同,假设是两个n*n的矩阵,我们有一种不靠谱但是可以用的写法:随机1*n的矩阵x,看x*A是否等于x*B。

      3.因为矩阵乘法具有结合律,所以我们可以通过结合来减少复杂度。

    详解可以见这个博客:http://www.cnblogs.com/Randolph87/p/3788313.html

  树的计数:

    树的dfs序和bfs序有一些神奇的关联,值得研究。

    可这题我也说不清楚啊...去看ydc的blog吧:http://ydcydcy1.blog.163.com/blog/static/216089040201361564925276/

原文地址:https://www.cnblogs.com/iamCYY/p/5016609.html