sum

2020面向对象寒假作业(三)

邮差的信 提交于 2020-02-15 18:45:23
2020面向对象寒假作业(三) 这个作业属于哪里 2020面向对象程序设计 这个作业在哪里 2020面向对象寒假作业三 这个作业目标 1.继续完成编程题 2.发布博客 作业正文 2020面向对象寒假作业(三) 参考文献 - 1.代码优化 (1)num中文转数字计算函数 原函数 int num(char d[]) { if(!strcmp(d,"零")) return 0; else if(!strcmp(d,"一")) return 1; else if(!strcmp(d,"二")) return 2; else if(!strcmp(d,"三")) return 3; else if(!strcmp(d,"四")) return 4; else if(!strcmp(d,"五")) return 5; else if(!strcmp(d,"六")) return 6; else if(!strcmp(d,"七")) return 7; else if(!strcmp(d,"八")) return 8; else if(!strcmp(d,"九")) return 9; else if(!strcmp(d,"十")) return 10; else return -1; } 优化函数 int num(char d[]) { char nums[11][4]={"零","一","二

List.sum on custom class

▼魔方 西西 提交于 2020-02-14 23:32:12
问题 I have the following code that represents GF2 field: trait GF2 { def unary_- = this def + (that: GF2): GF2 def * (that: GF2): GF2 def / (that: GF2) = that match { case Zero => throw new IllegalArgumentException("Div by 0") case _ => this } } object Zero extends GF2 { override def toString = "Zero" def + (that: GF2) = that def * (that: GF2) = this } object One extends GF2 { override def toString = "One" def + (that: GF2) = that match { case One => Zero ; case _ => this } def * (that: GF2) =

List.sum on custom class

会有一股神秘感。 提交于 2020-02-14 23:30:54
问题 I have the following code that represents GF2 field: trait GF2 { def unary_- = this def + (that: GF2): GF2 def * (that: GF2): GF2 def / (that: GF2) = that match { case Zero => throw new IllegalArgumentException("Div by 0") case _ => this } } object Zero extends GF2 { override def toString = "Zero" def + (that: GF2) = that def * (that: GF2) = this } object One extends GF2 { override def toString = "One" def + (that: GF2) = that match { case One => Zero ; case _ => this } def * (that: GF2) =

[ CodeForces 1063 B ] Labyrinth

回眸只為那壹抹淺笑 提交于 2020-02-14 23:21:16
\(\\\) \(Description\) 给出一个四联通的 \(N\times M\) 网格图和起点。图中有一些位置是障碍物。 现在上下移动步数不限,向左至多走 \(a\) 步,向右至多走 \(b\) 步,求从起点出发能到达多少个空地。 \(N,M\le 2000\) \(\\\) \(Solution\) 爷们太神了...... 开始的想法是直接跑最短路, \(dist\) 为横向移动总步数。 后来发现矛盾在于,如果到一个格子向左走的步数较少,向右走的步数较多,和这种情况反过来,无法确定那种更优,进而无法确定用那种状态更新接下来的点。 然后听爷们讲了好久听懂了正确性证明。考虑要从起点 U 到达 V 这个格子,它横向的差值为 \(2\) 是固定的。 也就是说,任何一个合法的方案向左走的步数减掉向右走的步数都应该等于 \(2\) 。 那么这种矛盾不存在了。因为向左向右的步数会同时增长,否则一定不会到达这个目标点。 然后就愉快上最短路,根据 \(Dij\) 的原理,循环次数就是访问的点数。 \(\\\) \(Code\) #include<cmath> #include<queue> #include<cstdio> #include<cctype> #include<cstdlib> #include<cstring> #include<iostream> #include

[HDU4734] F(x)(数位dp+优化)

会有一股神秘感。 提交于 2020-02-14 23:10:13
>传送门< 题意: 对于一个有 n 位(这 n 位从高位到低位分别是 A n , A n-1 , A n-2 ... A 2 , A 1 )的十进制数,我们定义它的权值 F(x)=A n *2 n-1 + A n-1 *2 n-2 + ... + A 2 *2 + A 1 *1. 现在给你两个数 A , B ,请计算 [0,B] 范围内有多少个权值<= F(A) 的数 思路: (这个下面文字是有点多,可能是我太弱了,在刚开始学的时候只有这样我才能理解QAQ~) 其实 F(x) 只是给每一个数位带上一个权值 v = 2^(p-1) , F(x) 最大是值不会超过5000,我们完全可以抛开权值来思考,写代码的时候再加上权值即可,这样思考和写草稿之类的会方便很多,不考虑每一位的权值的话即是数位的前缀和。 很容易想到一个 dp 式是 dp[pos][sum] ;表示当前在第 pos 位,前缀和为 sum 的答案,快速把数位 dp 敲完,交上去,然后会发现 TLE 掉了,这题的时限只有500ms, TLE 的原因是什么呢,就是 记忆化不够彻底 。 在做数位 dp 入门题 不要62 的时候可能有些人会注意到, dp 数组只需要初始化一次即可,这是因为不要62题意中是不包含4和连续的62的数的个数,这里的条件是一个数本身的性质,也就是说,一个数有没有4或者连续的62和你输入的 [l,r]

论文阅读 - Factorization Machines

守給你的承諾、 提交于 2020-02-14 04:32:33
线性模型 线性模型,如 logistics regression 仅学习到输入特征的权重,无法利用组合特征。可以将特征彼此相乘,给线性模型引入非线性特征。如下式所示: \[\hat{y}(x) := \underbrace {w_0 + \sum_{i=1}^{n} w_i x_i }_{\text{线性回归}} + \underbrace {\sum_{i=1}^{n} \sum_{j=i+1}^{n} w_{ij} x_i x_j}_{\text{交叉项(组合特征)}}\] 如果输入特征 \(x\) 的维度 \(\vert x \vert = n\) ,整个模型的参数量为 \(1 + n + n^2\) 。上式中交叉项 \(x_ix_j\) 的系数 \(w_{ij}\) 需要依赖特征 \(x_i\) 和 \(x_j\) 来训练得出。当输入向量 \(x\) 很稀疏的时候。比如 \(x\) 是使用 bag-of-word 表示的文档。当特征 \(x_i\) 和 \(x_j\) 没有同时出现时, \(w_{ij}\) 就得不到训练。因此对于数据稀疏的场景,交叉项的参数矩阵 \(\mathbf{w}\) 得不到充分训练。 FM FM (Factorization Machine) 的思想是将组合特征的参数 \(\mathbf{w}\) 进行矩阵分解,即 \(\mathbf{w} =

【算法】算法的时间复杂度和空间复杂度

怎甘沉沦 提交于 2020-02-13 22:27:10
目录结构: contents structure [-] 时间复杂度的定义 推导大O阶 最优、平均、最差时间复杂度 算法的时间复杂度就是估计一个算法所需的时间,算法的空间复杂度就是估计一个算法所需的内存。算法可以以空间换取时间,也可以以时间换空间。比如,需要求出当前年份是否为闰年,可以写个算法进行计算;也可以预先就把近100年的闰年情况加载到内存中,如果是闰年则为1否则为0,这就是以空间换取时间的栗子。通常情况下“复杂度”都是指的是“时间复杂度”,因此在这篇文章中,笔者也重点介绍时间复杂度。 1.时间复杂度的定义 时间复杂度:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记做T(n)=O(f(n)),它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称为算法的渐进时间复杂度,简称为时间复杂度。可以将算法的时间复杂度理解循环次数。 利用大写O()来体现算法时间复杂度的计法,称为大O计法。 最优算法:一般情况下,随着输入规模n的增大,T(n)增长最慢的算法为最优。 2.推导大O阶 推导的一般步骤: 用常数1取代运算中的所有加法常数 在修改后的运行次数中,只保留最高项 如果最高项阶存在且不为1,则去除与这个项相乘的参数 接下来举几个栗子: #include

《剑指Offer》Java刷题 NO.7 斐波那契数列

主宰稳场 提交于 2020-02-13 15:28:48
《剑指Offer》Java刷题 NO.7 斐波那契数列 传送门:《剑指Offer刷题总目录》 时间:2020-02-11 题目: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 思路: 1.递归。存在反复调用和计算,时间和空间复杂度高 2.非递归。仔细观察要计算f(n)所需要的变量 Java代码: /** * 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项 * (从0开始,第0项为0)。n<=39 */ public class FibonacciArray { /** *1.递归解法 * 代码简单,但是存在重复调用和计算,造成时间和内存的浪费 * 复杂度:O(2^n) */ public int fibonacci_1 ( int n ) { if ( n == 0 ) return 0 ; else if ( n == 1 ) return 1 ; else return fibonacci_1 ( n - 1 ) + fibonacci_1 ( n - 2 ) ; } /** * 2.非递归解法 * 仔细观察其实要求f(n)只需要f(n-1)和f(n-2)两个变量 * 设置三个变量,分别存f(n-1)和f(n-2)以及f(n) * 复杂度O(n) */ public int

二维前缀和

半世苍凉 提交于 2020-02-13 00:28:32
一维前缀和 :   这个优化 , 可以在 O (1) 的时间内计算出一个序列的和 , 二维前缀和 :   对于一个矩阵 , 也可以在 O (1) 的时间内计算出矩阵 (x1~x2)( y1 ~ y2 ) 的和 。   sum[ i ] [ j ] 表示矩阵 1 ~ i , 1 ~ j 的和 , 那么由容斥原理知 sum[ 0 ] [ j ] 和 sum [ i ] [ 0 ] 均为 0 。   则 s[ x1 ~ x2 ] [ y1 ~ y2 ] = sum[ x2 , y2 ] + sum [ x1 - 1 ] [ y1 - 1 ] - sum [ x1 - 1 ][ y2 ] - sum [ x2 ] [ y1-1 ] 。 The Cartesian coordinate system is set in the sky. There you can see n stars, the i -th has coordinates ( x i , y i ), a maximum brightness c , equal for all stars, and an initial brightness s i ( 0 ≤  s i  ≤  c ). Over time the stars twinkle. At moment 0 the i -th star has

业务数仓项目总结

社会主义新天地 提交于 2020-02-12 14:52:30
1 熟悉8张表的业务字段,每张表记住3-5个字段 2 数仓理论 1)表的分类:实体表、维度表、事务型事实表、周期型事实表 2)表的同步策略: 实体表(全量) 维度表(全量) 事务型事实表(增量) 周期型事实表(新增和变化、拉链表) 3)范式理论: 一范式原则:属性不可切割; 二范式原则:不能存在部分函数依赖; 三范式原则:不能存在传递函数依赖; 4)数仓维度建模模型 星型模型,维度一层; 雪花模型,维度多层; 星座模型,多个事实表; 性能优先选择星型模型,灵活优先选择雪花模型。企业中星型模型多一些。 3 Sqoop参数 /opt/module/sqoop/bin/sqoop import \ --connect \ --username \ --password \ --target-dir \ --delete-target-dir \ --num-mappers \ --fields-terminated-by \ --query "$2" ' and $CONDITIONS;' 3.1 Sqoop导入导出Null存储一致性问题 Hive中的Null在底层是以“\N”来存储,而MySQL中的Null在底层就是Null,为了保证数据两端的一致性。在导出数据时采用--input-null-string和--input-null-non-string两个参数。导入数据时采用-