A(cj)
水题C(chy)
给出两个n*n的矩阵A,B.判断A*A == B?
构造一个n*1的随机矩阵C。
问题转化为A*A*C == B*C.
即A*(A*C) == B*C。这样复杂度就降低到了n^2。E(cj)
2-sat。
对于字符串中的每个字符,可以分成4个点,xi, x⎯⎯ i,yi, y⎯⎯ i。
xi, x⎯⎯ i,分别表示第i个字符不改变和改变。
yi, y⎯⎯ i,分别表示第i个字符减一和加一。
首先让相邻两个字符不能同时改变, x⎯⎯ i ⋁ x⎯⎯ i+1。
对于每次询问,对称的编号的两个字符应该相同;
如果两个字符相同,则xi等于xj,yi等于yj;
如果两个字符的距离为1,则( x⎯⎯ i ⋀ yj) ⋁ ( x⎯⎯ j ⋀ y⎯⎯ i),注意,这里对y还是 y⎯⎯ 应该分类讨论;
如果两个字符的距离为2,则( y⎯⎯ i ⋀ yj) ⋁ ( y⎯⎯ j ⋀ yi),xi,xj。G(ly)
将边按权值从小到大排序,依次插入一条边,判断是否产生回路;
如果产生回路,则删除回路中最短的一条边。
插入之后,判断已插入边数是否等于n-1,如果等于,计算出结果,保存,然后删除树上最小的一条边。
插入完所有边后,找到最小的结果,输出。
复杂度O(VE);
也可以用LCT做到O(Elog(V));学会再来补H(ly)
DP:
cost(i, i, k) = 0 if the component at position i is of type k.
cost(i, i, k) = ∞ if the component at position i is not of type k.
cost(i, j, k) = MIN{cost(i, m, a) + cost(m + 1, j, b) + Ca,b
| m ∈ [i, j), a, b ∈ types of pieces, Ra,b = k}
注意输出要求!!!I(cj)
模拟。从起点向终点走,如果遇到锁则中断,去拿需要的钥匙,拿到钥匙后回到中断产生的点,打开锁。如果在拿钥匙的过程中又遇到另一把锁,则继续中断。最后如果遇到一把锁,而这把锁的钥匙是之前中断过程中要拿的钥匙,则不可能打开这把锁,所以不可能到达终点。J(chy)
法一:
因为三个面的概率和为1,所以可以用二维向量表示,即判断前三个向量能否合成第四个向量。
以其中某个向量为原点,转化成三角形。
问题变为判断点4是否在前三个点构成的三角形内或线段上。
法二:
可以从解方程组的角度来考虑。
根据全概率公式列出方程组。
判断解集是否满足概率性质即可。
2017湖南多校第三场
最新推荐文章于 2021-03-21 20:02:28 发布