mu

2019 年百度之星·程序设计大赛

旧街凉风 提交于 2020-10-29 07:22:39
P.S:关于初赛二,在高铁上打代码真是奇怪的体验!!! 1003,1004的题解很不错,学习了! =========================================== 一开场把所有的题目看了一遍,这题面风格,感觉凉凉。还好,往下做时,题目不是太坑。 1002 floyd转dijkstra+堆优化,感觉是套路题了 1 #include <cstdio> 2 #include <cstdlib> 3 #include <cmath> 4 #include <cstring> 5 #include < string > 6 #include <algorithm> 7 #include <iostream> 8 using namespace std; 9 #define ll long long 10 #include <queue> 11 12 const double eps=1e- 8 ; 13 const ll inf= 1e9; 14 const ll mod= 998244353 ; 15 const int maxn=1e3+ 10 ; 16 17 struct node 18 { 19 int d; 20 ll len; 21 node * to; 22 }* e[maxn]; 23 24 struct rec 25 { 26 int d,maxd;

线性规划习题

为君一笑 提交于 2020-10-28 17:30:50
一、基础训练 <LT>例1</LT>已知$x,y$满足约束条件$\begin{cases}x+y-2\leq 0\x-2y-2\leq 0\2x-y+2\ge 0\end{cases}$,求解: (1)$z=-\cfrac{1}{4}x+y$的最大值和最小值。 分析:将所给的目标函数改写成$l:y=\cfrac{1}{4}x+z$,则可以看到$z$的几何意义是直线$l$的纵截距,则直线$l$沿$y$轴向上平移,则$z$增大;直线$l$沿$y$轴向下平移,则$z$减小;故直线经过点$A(2,0)$时,$z_{max}=-\cfrac{1}{4}\times2+0=-\cfrac{1}{2}$;直线经过点$B(-2,-2)$时,$z_{min}=-\cfrac{1}{4}\times(-2)+(-2)=-\cfrac{3}{2}$; <img src="http://images2017.cnblogs.com/blog/992978/201709/992978-20170907161426210-1851407669.gif" /> (2)求$z=-\cfrac{1}{4}x-y$的最大值和最小值。 分析:将所给的目标函数改写成$l:y=-\cfrac{1}{4}x-z$,则可以看到$-z$的几何意义是直线$l$的纵截距,则直线$l$沿$y$轴向上平移,则$-z$增大,则$z$减小

Golang 实现缓存系统

这一生的挚爱 提交于 2020-10-25 11:27:35
缓存 缓存(Cache)在计算机硬件中普遍存在。比如在 CPU 中就有一级缓存,二级缓存,甚至三级缓存。缓存的工作原理一般是 CPU 需要读取数据时,会首先从缓存中查找需要的数据,如果找到了就直接进行处理,如果没有找到则从内存中读取数据。由于 CPU 中的缓存工作速度比内存还要快,所以缓存的使用能加快 CPU 处理速度。缓存不仅仅存在于硬件中,在各种软件系统中也处处可见。比如在 Web 系统中,缓存存在于服务器端,客户端或者代理服务器中。广泛使用的 CDN 网络,也可以看作一个巨大的缓存系统。缓存在 Web 系统中的使用有很多好处,不仅可以减少网络流量,降低客户访问延迟,还可以减轻服务器负载。 目前已经存在很多高性能的缓存系统,比如 Memcache,Redis 等,尤其是 Redis,现已经广泛用于各种 Web 服务中。既然有了这些功能完善的缓存系统,那为什么我们还需要自己实现一个缓存系统呢?这么做主要有两个原因,第一,通过动手实现我们可以了解缓存系统的工作原理,这也是老掉牙的理由了。第二,Redis 之类的缓存系统都是独立存在的,如果只是开发一个简单的应用还需要单独使用 Redis 服务器,难免会过于复杂。这时候如果有一个功能完善的软件包实现了这些功能,只需要引入这个软件包就能实现缓存功能,而不需要单独使用 Redis 服务器,就最好不过了。 缓存系统的设计 缓存系统中

「集训」2020集训记录

情到浓时终转凉″ 提交于 2020-10-24 20:16:08
  01.02 「数学一」     T1因为不会exlucas只拿了80     T2失智没想到异或FWT,后面的倍增求鬼畜数列前缀和了。     T3是个特别神的期望?的确是枚举最后一个拔掉的位置,然后区间dp      如何让区间dp方便地统计答案同时转移?当然是弄出一个优秀的状态定义了       (也就是只要和出题人想到一块就AC否则暴力滚粗)      定义区间右端点是区间最后一个拔掉的点,枚举倒数第二个      这样对于左右子区间来说,他们的右端点恰好也是他们中最后一个拔掉的,      于是可以直接借用他们的贡献来计算。      01.04 「数学二」     T1杜教筛全场切 而我差点被卡常     T2神仙结论题,由于结论证明不了也理解不了,心情差到不想写代码     T3疯狂化柿子套FFT,太过丧心病狂,于是想打多项式多点求值      然后调不出来。      利用$val^{2ij}=val^{(i+j)^2-i^2-j^2}$      把巨型柿子变成若干次FFT   01.06 「数学三」     T1毒瘤dp,又是构造一堆函数...      其实本应该想到的,毕竟已经做过「最小生成树计数」,应该意识到在这个完全图里      代价最小的一组点要放在一个联通块内考虑/代价最大的边必定只出现一条(来沟通两个代价较小的联通块)     

干货 | 这可能全网最好的BatchNorm详解

☆樱花仙子☆ 提交于 2020-10-23 18:47:47
文章来自:公众号【机器学习炼丹术】。求关注~ 其实关于BN层,我在之前的文章“梯度爆炸”那一篇中已经涉及到了,但是鉴于面试经历中多次问道这个,这里再做一个更加全面的讲解。 Internal Covariate Shift(ICS) Batch Normalization的原论文作者给了Internal Covariate Shift一个较规范的定义: 在深层网络训练的过程中,由于网络中参数变化而引起内部结点数据分布发生变化的这一过程被称作Internal Covariate Shift。 这里做一个简单的数学定义,对于全链接网络而言,第i层的数学表达可以体现为: \(Z^i=W^i\times input^i+b^i\) \(input^{i+1}=g^i(Z^i)\) 第一个公式就是一个简单的线性变换; 第二个公式是表示一个激活函数的过程。 【怎么理解ICS问题】 我们知道,随着梯度下降的进行,每一层的参数 \(W^i,b^i\) 都会不断地更新,这意味着 \(Z^i\) 的分布也不断地改变,从而 \(input^{i+1}\) 的分布发生了改变。 这意味着,除了第一层的输入数据不改变,之后所有层的输入数据的分布都会随着模型参数的更新发生改变,而每一层就要不停的去适应这种数据分布的变化,这个过程就是Internal Covariate Shift。 BN解决的问题

jstat命令详解

心不动则不痛 提交于 2020-10-23 17:38:22
jstat命令使用 jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下: jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数] 注意:使用的jdk版本是jdk8. 类加载统计: C: \Users \Administrator >jstat -class 2060 Loaded Bytes Unloaded Bytes Time 15756 17355.6 0 0.0 11.29 1 2 3 1 2 3 Loaded:加载class的数量 Bytes:所占用空间大小 Unloaded:未加载数量 Bytes:未加载占用空间 Time:时间 编译统计 C:\Users\Administrator>jstat -compiler 2060 Compiled Failed Invalid Time FailedType FailedMethod 9142 1 0 5.01 1 org/apache/felix/resolver/ResolverImpl mergeCandidatePackages 1 2 3 1 2 3 Compiled:编译数量。 Failed:失败数量 Invalid:不可用数量 Time:时间 FailedType:失败类型 FailedMethod:失败的方法 垃圾回收统计 C: \Users

5.docker学习笔记之入门,redis配置优化

一曲冷凌霜 提交于 2020-10-23 08:32:52
内存分配:vm.overcommit_memory Redis是内存操作,需要优先使用内存。设置overcommit 为1。是为了让 fork 操作能够在低内存下也执行成功。Linux 操作系统对大部分申请内存的请求都回复 yes,以便能运行更多的程序。因为申请内存后,并不会马上使用内存,这种技术叫做 overcommit。 vm.overcommit_memory 用来设置内存分配策略,有三个可选值 THP:Redis 在启动时可能会看到如下日志: WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

[数论] HDU 6833 A very easy math problem

自作多情 提交于 2020-10-23 02:47:21
题目大意 给定正整数 \(n,x,k\) ,求 \[\sum_{a_1=1}^{n}\sum_{a_2=1}^n\dotsb\sum_{a_x=1}^n\left(\prod_{j=1}^xa_j^k\right)f\left(gcd\left(a_1,a_2,\dots,a_x\right)\right)\cdot gcd\left(a_1,a_2,\dots,a_x\right) \] 如果存在正整数 \(k(k>1)\) ,并且 \(k^2|x\) ,那么 \(f(x)=0\) ,否则 \(f(x)=1\) 。 \(1\leq k\leq 10^9,1\leq x\leq 10^9,1\leq n\leq 2\times10^5\) 题解 注意到 \(f(x)\) 的定义,显然 \(f(x)=\mu^2(x)\) 。 那么就是要求 \[\sum_{a_1=1}^{n}\sum_{a_2=1}^n\dotsb\sum_{a_x=1}^n\left(\prod_{j=1}^xa_j^k\right)\mu^2\left(gcd\left(a_1,a_2,\dots,a_x\right)\right)\cdot gcd\left(a_1,a_2,\dots,a_x\right) \] 首先枚举gcd \[\sum_{d=1}^n\sum_{a_1=1}^{n}\sum_{a_2=1

狄利克雷生成函数

假装没事ソ 提交于 2020-10-14 20:24:25
本篇讨论的所有函数都是积性函数。 定义 对于一个数论函数,设在 \(i\) 处的点值为 \(f_i\) ,则定义它的狄利克雷生成函数DGF(Dirichlet Generating Function)为 \(f(s)=\sum\limits_{n=1}^{+\infty}\frac{f_n}{n^s}\) 。 若存在两个狄利克雷生成函数 \(f,g\) ,其乘积为 \(fg=\sum\limits_{n=1}^{+\infty}\frac{\sum\limits_{d\vert n}f_dg_{n/d}}{n^s}\) 。 可以发现两个DGF的乘积恰好为它们的狄利克雷卷积的DGF。 黎曼Zeta函数定义为 \(\zeta(s)=\sum\limits_{n=1}^{+\infty}\frac{1}{n^s}\) 一些常见数论函数的DGF 单位元函数 \(e\) 的DGF显然为 \(e=1\) 。 恒等函数 \(I\) 的DGF为 \(I=\sum\limits_{i=1}^{+\infty}\frac{1}{i^s}=\prod\limits_{p\in prime}\sum\limits_{i=0}^{+\infty}\frac{1}{p^{is}}=\prod\limits_{p\in prime}\frac{1}{1-p^{-s}}=\zeta(s)\) 莫比乌斯函数 \(

易经量化交易系统之回测系统2

谁都会走 提交于 2020-10-10 00:29:24
订单类 当回测系统运行时,我们所开发的策略,会根据市场行情数据,生成相应的买入、卖出操作,这时就会产生订单。订单包括时间戳、交易标的代码、买卖操作、数量、价格、头寸等信息,产生订单后,会将订单提交给broker来进行处理,会进一步添加执行时间、交易价格、交易数量信息。我们这里先只处理市场价订单,其他类型订单,如限制、终止订单等,可以在这个基本系统上进行扩展。 class Order ( object ) : # 订单类型定义 OT_MARKET_ORDER = 1001 # 市价类型订单 # 订单状态定义 OS_ISSUED = 2001 OS_FILLED = 2002 def __init__ ( self , timestamp , symbol , quant , is_buy , order_type = OT_MARKET_ORDER , price = 0.0 ) : self . name = 'fas.bktr.Order' self . timestamp = timestamp self . symbol = symbol self . quant = quant self . is_buy = is_buy self . order_type = order_type self . price = price self . order_state =