二分答案,设$s_{i,j}$表示第$i$天对竹子$j$的操作次数,$h_{i,j}$表示第$i$天结束时竹子$j$的高度,则$h_{i,j}=\max(h_{i-1,j}-ps_{i,j},0)+a_{j}$,合法当且仅当$h_{0,i}=h_{i}$且$h_{m,i}\le ans$ 令$h'_ ...
分类:
其他好文 时间:
2020-09-03 17:08:46
阅读次数:
58
观察到这个数据范围,显然不可能真的存这么大的邻接矩阵。 进一步发现,题目要求正方形矩阵的边长为偶数,并且里面的1为奇数 这启发了我们,因为边长为4的一定要用边长为2的拼接起来,这样边长为4的里面一定是偶数个1 因此直接特判掉n>=4的答案 剩下只有n==2,和n==3。 对于n==2,我们发现因为每 ...
分类:
其他好文 时间:
2020-09-03 16:39:40
阅读次数:
36
FFT 1 简述 FFT是专门用来求解多项式乘法的一个高效算法。 总所周知,朴素的多项式乘法的时间复杂度是$O(n^2)$,而FFT利用复数的知识做到了$O(nlogn)$。 2 点值表达式 设$A(x)$是一个n-1次方的多项式,那么把n个不同的x代入,一定可以得到n个y,这n对(x,y)唯一确定 ...
分类:
其他好文 时间:
2020-08-27 17:11:12
阅读次数:
57
Prim算法 复杂度:O(N*N) #include<bits/stdc++.h> using namespace std; const int maxn = 1005; int n; int d[maxn], vis[maxn], mat[maxn][maxn]; int main(){ int ...
分类:
其他好文 时间:
2020-08-08 00:31:58
阅读次数:
61
在一个 n*n 的平面上,在每一行中有一条线段,第 i 行的线段的左端点是(i, L(i)),右端点是(i, R(i)),其中 1 ≤ L(i) ≤ R(i) ≤ n。 你从(1, 1)点出发,要求沿途走过所有的线段,最终到达(n, n)点,且所走的路程长度要尽量短。 更具体一些说,你在任何时候只能 ...
分类:
其他好文 时间:
2020-07-29 09:55:24
阅读次数:
72
题面 #include <bits/stdc++.h> using namespace std; template<typename temp> void read(temp &x){ x = 0; temp f = 1; char ch; while(!isdigit(ch = getchar() ...
分类:
其他好文 时间:
2020-07-28 22:35:46
阅读次数:
61
#include <iostream> #include <map> using namespace std; typedef struct alertInfo { double alertUp; double alertDown; alertInfo(double up, double down) ...
分类:
其他好文 时间:
2020-07-28 22:25:22
阅读次数:
75
我们将需要解决的几何问题的范围限制在二维平面内,这样就用到了二维计算几何。 要用电脑解平面几何题?数学好的同学们笑了。 我们并不是用计算机算数学卷子上的几何题去了,而是解决一些更加复杂的几何相关问题。 为了解决复杂且抽象的问题,我们一定要选择合适的研究方法。对于计算机来说,给它看几何图形…… 我们可 ...
分类:
其他好文 时间:
2020-07-28 13:49:45
阅读次数:
91
class Solution { public int countPairs(TreeNode root, int distance) { dfs(root,0,distance); return res; } private int res = 0; public List<Integer> df ...
分类:
其他好文 时间:
2020-07-27 13:50:30
阅读次数:
114