摘要:
思路:首先 先普及一个性质: 循环矩阵*循环矩阵=循环矩阵 由于此题是距离小于d的都加上一个数。 那么 构造矩阵的时候 我们发现 诶呦 这是个循环矩阵 看看数据范围 n^2log(k)可以过。 那就把这个矩阵改一改。 因为这是个循环矩阵, 所以呢 只用保... 阅读全文
摘要:
嗯嗯 就算是水题吧。 (缩完行就15行) 题意:两个n*n的矩阵相乘(n#include #define ff(N) for(int i=1;i<=n;i++){for(int j=1;j<=N;j++)using namespace std;int n,a[801][801],... 阅读全文
摘要:
题意: 给你一个n*n的矩阵 让你求S: 思路: 只知道矩阵快速幂 然后nlogn递推是会TLE的。所以呢 要把那个n换成log那这个怎么搞呢二分!当k为偶数时: 当k为奇数时: 就按照这么搞就能搞出来了 (我是看的题解才A的,,, 中间乱搞的时候犯了一些脑残的错误)... 阅读全文
摘要:
题意: 已知: 当x#include using namespace std;int cases,k,ans,a[10][10],mod;struct matrix{int a[10][10];void init(){memset(a,0,sizeof(a));}}first,cp... 阅读全文
摘要:
题意:中文题 我就不说了吧,。。。 思路:矩阵快速幂// by SiriusRen#include #include using namespace std;int cases,n,k,mod=9973,ans;struct matrix{int a[100][100];matr... 阅读全文
摘要:
题意: 给你一棵树,求树中最长的xor路径。(n#include #include #define N 305000using namespace std;int first[N],next[N],v[N],w[N],W[N],trie[N*10][2];int xx,yy,zz,... 阅读全文
摘要:
题意: 让你从小到大输出给的字符串中既是前缀又是后缀的子串的长度。 思路: 先要了解这个东西: KMP中next数组表示的含义:记录着字符串匹配过程中失配情况下可以向前多跳几个字符,它描述的也是子串的对称程度。那么我们可以用next数组来乱搞怎么个乱搞法呢? 前缀的next[len... 阅读全文
摘要:
题意: 求s到e恰好经过n边的最短路 思路: 这题已经被我放了好长时间了。 原来是不会矩阵乘法,快速幂什么的也一知半解现在终于稍微明白了点了其实就是把矩阵乘法稍微改改 改成能够满足结合律的矩阵“加法”,也就是floyd的步骤。 我就直接把集训队论文放上来吧。。。。(证明它满... 阅读全文
摘要:
题意: 让你用矩阵来找Fibonacci数 思路: 不用矩阵快速幂会TLE,只能学一下啦 (其实也不难)// by SiriusRen#include using namespace std;struct matrix{ int a[2][2]; void init()... 阅读全文
摘要:
题意: 如果给出的单词能够首尾相接,请按字典序输出单词,中间要加’.’ 否则输出三个”*”. 思路: 欧拉回路 记得按字典序排序哦~ 加边的时候要倒着加。(邻接表遍历的时候是反着的)记得清空vis数组(因为这个无脑错误WA了好长时间。。。。。)随便搞搞 就能过了。 数据不是很... 阅读全文