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
背景 官方提供的注解多数可以解决现实业务场景中基本业务校验,但有些特殊场景因业务的复杂性,也还是需要在入口处对入参进行各种角度的校验,以求简化业务层的处理,降低业务处理复杂性与方法入口的强约束性。 以上背景,下面就举个简单Demo进行自定义注解校验的实现。 注解定义类 1 import javax. ...
分类:
编程语言 时间:
2020-08-27 17:09:08
阅读次数:
81
依赖注入(DI) 1 构造器注入 (前面已经说过了) 2 Set方式注入(重点) 依赖注入:Set注入! 依赖:bean对象的创建依赖于容器; 注入:bean对象的所有属性,由容器来注入; 环境搭建 复杂类型 public class Address { private String address ...
分类:
编程语言 时间:
2020-08-27 17:07:56
阅读次数:
70
一、问题描述 在做LeetCode的时候遇到了都动态规划的问题,在维基百科中动态规划是这样解释的: 通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最佳子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。 二、解决 求解的的方法包括下面的两种: ①自 ...
分类:
其他好文 时间:
2020-08-26 19:01:44
阅读次数:
72
**函数**就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——**强调做什么,而不是以什么形式做**。面向对象的思想:? 做一件事情,找一个能解决这个事情的对象,调用对象的方法,完 ...
分类:
其他好文 时间:
2020-08-26 18:57:19
阅读次数:
63
定期重构 讲真的,定期重构这东西在网上博客蛮少的 hzwer出了数列分块入门1-9,其中数列分块入门6就是定期重构 你需要支持的操作是:单点插入,单点查询a[r]是多少,这道题目虽然数据随机,但是想要拿全分那肯定还是得要写个定期重构的。 定期重构要干嘛? 大佬的说法:将每 n 个操作分为一组,每次每 ...
分类:
其他好文 时间:
2020-08-26 18:34:06
阅读次数:
48
Ant Trip 分析 题意很简单,爆搜的时间复杂度比较高,不考虑。 应该使用欧拉回路的相关知识求解。 intn() 输入时将两个节点的入度都加一(无向),然后将两个节点合并在一个连通图中. for (int i = 1, u, v; i <= m; i++) { scanf ("%d %d", & ...
分类:
其他好文 时间:
2020-08-26 18:31:43
阅读次数:
51
知识点一:数据类型 1、数据类型: (1)、基本数据类型:数字类型(Number)、字符串类型(String)、布尔类型(Boolean)、Undefined、null (2)、复杂数据类型:对象(Object) 2、Number ① 十进制 var num1 = -100.25; ② 十六进制 v ...
分类:
编程语言 时间:
2020-08-26 18:31:13
阅读次数:
54
官方解题给出了四种解法。 第一种,暴力法,时间复杂度O(n*k)。 第二种,额外构建一个等大数组,将额外数组作为中介进行两次全数组的拷贝。时间代价为O(n)。空间代价也为O(n)。 第三种,环状替换,也是我自己实现的方法。时间代价O(n),空间代价O(1)。 如果我们直接把每一个数字放到它最后的位置 ...
分类:
编程语言 时间:
2020-08-26 17:11:58
阅读次数:
51
这里的 Bencher 指的是 C++ 代码性能测试工具。 下面是一点儿碎碎念 真的,C++ 要是有统一的包管理工具就好了。现在不但库的使用比较杂,还没有什么好的教材,真有一种旧时候手艺人的风格,大概得有个师父带着才能高效。如果我在写 Rust 的话,就直接上 Criterion 了,还管什么自己造 ...
分类:
其他好文 时间:
2020-08-25 18:39:52
阅读次数:
49