BZOJ4128 Matrix BZOJ4128 Matrix 1 题外话 调了半天竟是因为比较函数打错 2 sol 矩阵离散对数 令\(x=A\lceil \sqrt{p} \rceil -B\) ,其中\(0\leqslant A,B \leq \lceil \sqrt{p} \rceil\) ...
转载
2021-07-16 19:57:00
117阅读
2评论
【BZOJ4128】Matrix Description 给定矩阵A,B和模数p,求最小的x满足 A^x = B (mod p) Input 第一行两个整数n和p,表示矩阵的阶和模数,接下来一个n * n的矩阵A.接下来一个n * n的矩阵B 第一行两个整数n和p,表示矩阵的阶和模数,接下来一个n
转载
2017-06-20 15:03:00
54阅读
2评论
Description 给定矩阵A,B和模数p,求最小的x满足 A^x = B (mod p) Input 第一行两个整数n和p,表示矩阵的阶和模数,接下来一个n * n的矩阵A.接下来一个n * n的矩阵B 第一行两个整数n和p,表示矩阵的阶和模数,接下来一个n * n的矩阵A.接下来一个n *
原创
2021-06-04 23:44:24
250阅读
http://www.elijahqi.win/archives/3248 Description给定矩阵A,B和模数p,求最小
原创
2022-08-08 13:52:39
26阅读
题解 学习一下矩阵求逆 就是我们考虑这个矩阵 $AA^{ 1} = I$ 我们相当于让$A$乘上一个矩阵,变成$I$ 我们可以利用初等行变换(只能应用初等行变换,或只应用初等列变换) 分三种 1.矩阵的两行互换 2.矩阵的一行加上k倍的另一行 3.矩阵的一行都乘上某个数 其实行变换的本质也可以写成一
转载
2018-12-09 09:57:00
87阅读
2评论
类比整数的做法就行了1A爽哉#include<bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN = 75;const int sed = 137;int n, p;struct Matrix { int v[MAXN][MAXN]; Matrix(){ memset(v, 0, siz
原创
2023-02-21 08:41:49
103阅读
4128: MatrixTime Limit: 10 Sec Memory Limit: 128 MBSubmit: 660 Solved: 363[Submit][Status][Discuss]Description给定矩阵A,B和模数p,求最小的x满足A^x = B (mod p)Input第一行两个整数n和p,表示矩阵的阶和模数,接下来
原创
2023-07-07 13:45:57
36阅读
题意:链接 方法: BSGS+矩阵求逆 解析: 这题就是把Ax=B(modA^x=B(mod C)C)的A和B换成了矩阵。 然而别的地方并没有修改。 所以就涉及到矩阵的逆元这个问题。 矩阵的逆元怎么求呢? 先在原矩阵后接一个单位矩阵,最好还是设右对角线 先把原矩阵进行高斯消元 且消成严格右对角线的单
转载
2017-07-27 09:39:00
79阅读
2评论
题目大意:给定两个n∗nn*n的矩阵AA和BB,求一个最小的非负整数xx满足Ax≡B( mod p)A^x≡B(\ mod\ p) 保证[0,p][0,p]内有解
原创
2023-04-19 00:15:45
66阅读
题目 给定矩阵A, B和模数p,求最小的正整数x满足 A^x = B(mod p). 分析 与整数的离散对数类似,只不过普通乘法换乘了矩阵乘法。 由于矩阵的求逆麻烦,使用 $A^{km-t} = B(mod \ p)$ 形式的BSGS。 然后就是判断矩阵是否相等, 一种方法是对矩阵进行Hash, 这
转载
2019-09-09 11:42:00
45阅读
描述给出两个单词(开始单词和结束单词)以及一个词典。找出从开始单词转换到结束单词,所需要的最短转换序列。转换的规则如下:1、每次只能改变一个字母2、转换过程中出现的单词(除开始单词和结束单词)必须存在于词典中例如:开始单词为:hit结束单词为:cog词典为:[hot,dot,dog,lot,log,mot]
原创
2022-10-26 17:05:48
109阅读
题意:给定一个图,r 根横线, c 根竖线。告诉你起点和终点,然后从起点走,每条边有权值,如果是0,就表示无法通行。走的规则是:如果你在下个路要转弯,会使这段路的时间加倍,但是如果一条路同时是这样,那么也只算两倍。起点和终点他们相连的第一条边也算两倍。问你最短时间。 析:把每个点拆成 8 个点(r,
转载
2017-09-29 12:36:00
34阅读
polya,搜索,圆排列
转载
2018-12-22 10:41:00
192阅读
2评论
线段树合并nlogn.
转载
2017-02-01 16:32:00
88阅读
2评论
分块傻逼题。 memset很慢的。。。而且其实也没有用。。。。
转载
2016-07-18 20:45:00
95阅读
2评论
题意: 给一个由n*m个正方形格子组成的矩形,其中每个格子的边都是可以走的,长度给定,规定:如果在进入该路前需要拐弯,或者走完该路需要拐弯,都是需要付出双倍距离的(每条路最多算2倍)。问从起点到终点的最短路经长。思路: 这个题目超级难搞,思路很简单,就是很麻烦!!!我将1个点4个方向的路长都记录...
转载
2015-08-05 21:15:00
26阅读
2评论
kruskal重构树。
转载
2016-09-18 14:27:00
116阅读
2评论
两题本质是一样,只不过3585要离散化这种不修改,不强制的问题,显然先考虑离线算法这道题的思路和bzoj1878非常像考虑到如果只是求每个前缀的mex,我们是很容易扫一遍就得出来的我们设为这个位置的mex考虑从左往右依次删除当前数会对后面产生什么影响我们设删除数a[i],a[i]下一个相同数的位置为next[a[i]]显然对于[i+1,next[a[i]]-1]这些位置的mex可能有影响(如过没有
转载
2014-12-08 13:14:00
85阅读
2评论
最小割的经典模型,体现出最小割的基本定义,把两个集合划分的最小代价
把一开始同意的人连源点,不同意的连汇点,有关系的人之间连边,流量都为1
不难发现,割两点(人)间的边就相当于朋友之间发生冲突
割到连源汇点的边就相当于与原来意愿不同
所以解决问题的方案等于图中的一个割
则最少冲突数=最小割=最大流
1 type node=record
2 point,flow,next:
转载
2014-04-14 15:51:00
96阅读
2评论
线段树的裸题;
但是操作很奇怪,开方是不能lazy tag的
看来只能暴力修改了
但注意,开放开到1的时候就不用开,立一个flag就可以了
这可以大大的优化;
其实我是来复习线段树的
1 var tree:array[0..400010] of int64;
2 lazy:array[0..400010] of boolean;
3 a:array[0..100010]
转载
2014-05-02 23:43:00
111阅读
2评论