1500: [NOI2005]维修数列
Time Limit: 10 Sec
Memory Limit: 64 MB
Submit: 16199
Solved: 5391
Description
请写一个程序,要求维护一个数列,支持以下 6 种操作:
请注意,格式栏 中的下划线‘ _ ’表示实际输入文件中的空格
输入的第1 行包含两个数N 和M(M ≤20 000),N 表示初始时数列中数的个数,M表示要进行的操作数目。 第2行包含N个数字,描述初始时的数列。 以下M行,每行一条命令,格式参见问题描述中的表格。 任何时刻数列中最多含有500 000个数,数列中任何一个数字均在[-1 000, 1 000]内。 插入的数字总数不超过4 000 000个,输入文件大小不超过20MBytes。
Output
对于输入数据中的GET-SUM和MAX-SUM操作,向输出文件依次打印结果,每个答案(数字)占一行。
9 8 2 -6 3 5 1 -5 -3 6 3 GET-SUM 5 4 MAX-SUM INSERT 8 3 -5 7 2 DELETE 12 1 MAKE-SAME 3 3 2 REVERSE 3 6 GET-SUM 5 4 MAX-SUM
Sample Output
-1 10 1 10
思路&&分析
这道题很显然也是一个平衡树题,我依旧是用无旋Treap做的,不过要注意这题内存限制只有64M,所以我们不能直接开400W个节点。又因为题目说过任何时刻数列中不会有超过50W个数,所以我们可以开50W个节点,然后进行节点回收。还需要注意的是Pushdown和修改的时候要注意一下小细节的部分,比如在Pushup时要判断他是否有两个孩子,否则就会默认把节点0认为孩子,这样是会挂的……(我就是因为这样在luogu上WA90了好几发)。
Code
#pragma GCC optimize(3)
#include
using namespace std ;
typedef long long ll;
bool Finish_read;
template <class T>inline void read(T &x){Finish_read=0 ;x=0 ;int f=1 ;char ch=getchar();while (!isdigit (ch)){if (ch=='-' )f=-1 ;if (ch==EOF)return ;ch=getchar();}while (isdigit (ch))x=x*10 +ch-'0' ,ch=getchar();x*=f;Finish_read=1 ;}
template <class T>inline void print(T x){if (x/10 !=0 )print(x/10 );putchar (x%10 +'0' );}
template <class T>inline void writeln(T x){if (x<0 )putchar ('-' );x=abs (x);print(x);putchar ('\n' );}
template <class T>inline void write(T x){if (x<0 )putchar ('-' );x=abs (x);print(x);}
const int base=48271 ,maxn=500010 ;
int seed=233 ,cnt,rec[maxn],tp,stk[maxn],rtp,a[maxn],rt;
inline int Rand() {
return seed=(int )(1l l*seed*base%INT_MAX);
}
inline void Recycle(int x) {
rec[++rtp]=x;
}
struct Treap {
int sz,ls,rs,val,sum,lmx,rmx,rev,cov,fix,mx;
Treap(int _val=0 ):val(_val){ls=rs=sz=rev=0 ;sum=lmx=rmx=mx=val;cov=-2333 ;fix=Rand();}
}tr[maxn];
inline void Clear(int o) {
if (!o)
return ;
Clear(tr[o].ls);
Clear(tr[o].rs);
Recycle(o);
}
inline int Newnode(int val) {
int tmp=rtp?rec[rtp--]:++cnt;
tr[tmp]=Treap(val);
tr[tmp].sz=1 ;
return tmp;
}
inline void Cover(int o,int x) {
tr[o].sum=x*tr[o].sz;
tr[o].val=x;
tr[o].lmx=tr[o].rmx=tr[o].mx=max(tr[o].sum,x);
tr[o].cov=x;
}
inline void Revnode(int o) {
swap(tr[o].ls,tr[o].rs);
swap(tr[o].lmx,tr[o].rmx);
tr[o].rev^=1 ;
}
inline int Sum(int o) {
return !o?0 :tr[o].sum;
}
inline int Sz(int o) {
return !o?0 :tr[o].sz;
}
inline int Lmx(int o) {
return !o?-2333 :tr[o].lmx;
}
inline int Rmx(int o) {
return !o?-2333 :tr[o].rmx;
}
inline int Mx(int o) {
return !o?-2333 :tr[o].mx;
}
inline void Pushup(int o) {
if (!o)
return ;
tr[o].sz=Sz(tr[o].ls)+1 +Sz(tr[o].rs);
tr[o].sum=Sum(tr[o].ls)+tr[o].val+Sum(tr[o].rs);
tr[o].lmx=max(Lmx(tr[o].ls),Sum(tr[o].ls)+tr[o].val+max(Lmx(tr[o].rs),0 ));
tr[o].rmx=max(Rmx(tr[o].rs),Sum(tr[o].rs)+tr[o].val+max(Rmx(tr[o].ls),0 ));
tr[o].mx=max(max(0 ,Rmx(tr[o].ls))+tr[o].val+max(0 ,Lmx(tr[o].rs)),max(Mx(tr[o].ls),Mx(tr[o].rs)));
}
inline void Pushdown(int o) {
if (!o)
return ;
if (tr[o].rev) {
if (tr[o].ls)
Revnode(tr[o].ls);
if (tr[o].rs)
Revnode(tr[o].rs);
tr[o].rev=0 ;
}
if (tr[o].cov!=-2333 ) {
if (tr[o].ls)
Cover(tr[o].ls,tr[o].cov);
if (tr[o].rs)
Cover(tr[o].rs,tr[o].cov);
tr[o].cov=-2333 ;
}
}
inline int Merge(int a,int b) {
if (!a||!b)
return a|b;
Pushdown(a);
Pushdown(b);
if (tr[a].fixreturn a;
}
else {
tr[b].ls=Merge(a,tr[b].ls);
Pushup(b);
return b;
}
}
inline pair<int ,int > Split(int o,int k) {
if (!o)
return make_pair(0 ,0 );
Pushdown(o);
if (Sz(tr[o].ls)==k) {
int pre=tr[o].ls;
tr[o].ls=0 ;
Pushup(o);
return make_pair(pre,o);
}
if (Sz(tr[o].ls)+1 ==k) {
int pre=tr[o].rs;
tr[o].rs=0 ;
Pushup(o);
return make_pair(o,pre);
}
if (Sz(tr[o].ls)>k) {
pair<int ,int >tmp=Split(tr[o].ls,k);
tr[o].ls=tmp.second;
Pushup(o);
return make_pair(tmp.first,o);
}
pair<int ,int >tmp=Split(tr[o].rs,k-Sz(tr[o].ls)-1 );
tr[o].rs=tmp.first;
Pushup(o);
return make_pair(o,tmp.second);
}
inline int Getsum(int o,int l,int r) {
Pushdown(o);
pair<int ,int >tmp1=Split(o,r),tmp2=Split(tmp1.first,l-1 );
int res=tr[tmp2.second].sum;
rt=Merge(Merge(tmp2.first,tmp2.second),tmp1.second);
return res;
}
inline int Maxsum(int o) {
return tr[o].mx;
}
inline int Build(int *v,int len) {
tp=0 ;
for (int i=1 ;i<=len;i++) {
int now=Newnode(v[i]),lst=0 ;
while (tp&&tr[stk[tp]].fix>tr[now].fix) {
Pushup(stk[tp]);
lst=stk[tp];
stk[tp--]=0 ;
}
if (tp)
tr[stk[tp]].rs=now;
tr[now].ls=lst;
stk[++tp]=now;
}
while (tp)
Pushup(stk[tp--]);
return stk[1 ];
}
inline void Insert(int o,int pos,int k) {
Pushdown(o);
for (int i=1 ;i<=k;i++)
read(a[i]);
int now=Build(a,k);
pair<int ,int >tmp=Split(o,pos);
rt=Merge(Merge(tmp.first,now),tmp.second);
}
inline void Delete(int o,int l,int r) {
Pushdown(o);
pair<int ,int >tmp1=Split(o,r),tmp2=Split(tmp1.first,l-1 );
Clear(tmp2.second);
rt=Merge(tmp2.first,tmp1.second);
}
inline void Makesame(int o,int l,int r,int k) {
Pushdown(o);
pair<int ,int >tmp1=Split(o,r),tmp2=Split(tmp1.first,l-1 );
Cover(tmp2.second,k);
rt=Merge(Merge(tmp2.first,tmp2.second),tmp1.second);
}
inline void Reverse(int o,int l,int r) {
Pushdown(o);
pair<int ,int >tmp1=Split(o,r),tmp2=Split(tmp1.first,l-1 );
Revnode(tmp2.second);
rt=Merge(Merge(tmp2.first,tmp2.second),tmp1.second);
}
inline void Print(int o) {
if (!o)
return ;
Print(tr[o].ls);
printf ("%d " ,tr[o].val);
Print(tr[o].rs);
}
int main() {
int n,m;
read(n);read(m);
Insert(rt,0 ,n);
while (m--) {
char op[100 ];
scanf ("%s" ,op);
if (op[0 ]=='G' ) {
int l,r;
read(l),read(r);
printf ("%d\n" ,Getsum(rt,l,l+r-1 ));
}
if (op[0 ]=='I' ) {
int pos,tot;
read(pos),read(tot);
Insert(rt,pos,tot);
}
if (op[0 ]=='M' ) {
if (op[2 ]=='X' )
printf ("%d\n" ,Maxsum(rt));
if (op[2 ]=='K' ) {
int pos,tot,c;
read(pos),read(tot),read(c);
Makesame(rt,pos,pos+tot-1 ,c);
}
}
if (op[0 ]=='D' ) {
int pos,tot;
read(pos),read(tot);
Delete(rt,pos,pos+tot-1 );
}
if (op[0 ]=='R' ) {
int pos,tot;
read(pos),read(tot);
Reverse(rt,pos,pos+tot-1 );
}
}
}
你可能感兴趣的:(无旋Treap)
程序代码篇---Python指明函数参数类型
文章目录前言简介一、函数参数的类型指定1.基本类型提示2.默认参数3.可变参数4.联合类型(Union)5.可选类型(Optional)6.复杂类型二、返回值的类型指定1.基本返回类型2.无返回值(None)3.返回多个值(Tuple)4.生成器(Generator)三、高级类型提示用法1.类型别名(TypeAliases)2.泛型(Generics)3.可调用对象(Callable)4.NewT
AD7780BRUZ-REEL ADI 24位低功耗ADC转换器 高精度传感器信号链一站式解决方案
AD7780BRUZ-REEL(ADI)产品解析与推广文案一、产品定位AD7780BRUZ-REEL是AnalogDevices(ADI)推出的低功耗、24位Σ-Δ型ADC(模数转换器),专为高精度传感器信号采集设计,集成PGA(可编程增益放大器)和基准电压源,适用于工业、医疗、便携设备等对功耗和精度要求严苛的场景。二、核心功能与参数特性参数/性能分辨率24位无失码,支持高精度测量采样率16.6H
iOS 出海 App 安全加固指南:无源码环境下的 IPA 加固与防破解方法
随着越来越多国内开发团队将iOSApp推向海外市场,如何在交付和分发环节保护应用安全成为出海过程中的重要议题。尤其是App进入多个海外应用商店或通过第三方渠道发行时,容易被当地黑产或竞争对手进行逆向分析,从而暴露内部API、核心业务流程等敏感信息。然而,很多出海App项目采用外包或快速孵化模式,交付阶段常常只拿到ipa成品文件而非完整源码。此时,如何在不改动源码的情况下对成品ipa完成安全加固,成
分布式ID设计方案详解:从理论到实践
一、为什么需要分布式ID?在分布式系统中,唯一ID的生成面临两大核心挑战:全局唯一性:避免跨节点、跨数据中心的ID冲突。有序性:确保ID按时间或业务规则递增,提升数据库写入性能(如InnoDB的B+树索引)。传统单机自增ID(如MySQLAUTO_INCREMENT)无法满足分库分表、高并发等场景需求,因此需引入分布式ID方案。二、主流分布式ID方案对比方案优点缺点适用场景UUID简单、无中心化依
Python函数
python知识
1文档字符串函数定义下的第一个字符串是文档字符串,用于解释函数。可以通过help(function_name)或function_name.__doc__来查看。2函数返回单个返回值:return一个值无返回值:函数执行完毕没有return语句,或者return后面没有值,会隐式地返回None返回多个值:实际上是返回一个包含所有值的元组(tuple)3参数函数声明:使用def关键字来创建函数默认参
【机器学习笔记Ⅰ】6 多类特征
巴伦是只猫
机器学习 机器学习 笔记 人工智能
多类特征(Multi-classFeatures)详解多类特征是指一个特征(变量)可以取多个离散的类别值,且这些类别之间没有内在的顺序关系。这类特征是机器学习中常见的数据类型,尤其在分类和回归问题中需要特殊处理。1.核心概念(1)什么是多类特征?定义:特征是离散的、有限的类别,且类别之间无大小或顺序关系。示例:颜色:红、绿、蓝(无顺序)。城市:北京、上海、广州(无数学意义的大小关系)。动物类别:猫
ShaderGraph节点解析(136):矩形节点(Rectangle Node)详解
小李也疯狂
# Unity ShaderGraph Rectangle
目录一、节点功能概述二、端口详解三、控制选项四、技术原理解析4.1数学原理(距离场计算)4.2生成代码解析4.3视觉特性五、应用场景与实战案例5.1UI元素(矩形按钮/面板)场景:在UI中生成无纹理的矩形按钮或面板,支持动态调整大小和圆角(配合其他节点)5.2材质纹理(网格/条纹)场景:为材质添加矩形网格或条纹纹理(如布料格子、屏幕像素感)5.3粒子形状(矩形粒子/条纹)场景:控制粒子的形状为矩形
大语言模型应用指南:ReAct 框架
AI大模型应用实战
java python javascript kotlin golang 架构 人工智能
大语言模型应用指南:ReAct框架关键词:大语言模型,ReAct框架,自然语言处理(NLP),模型融合,多模态学习,深度学习,深度学习框架1.背景介绍1.1问题由来近年来,深度学习技术在自然语言处理(NLP)领域取得了显著进展。尤其是大语言模型(LargeLanguageModels,LLMs),如BERT、GPT系列等,通过在大规模无标签数据上进行预训练,获得了强大的语言理解和生成能力。然而,预
马尔可夫链:随机过程的记忆法则与演化密码
大千AI助手
人工智能 Python # OTHER python 人工智能 马尔科夫链 MC 算法 随机过程
本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术!一、核心定义:无记忆的随机演化马尔可夫链(MarkovChain)是一种具有马尔可夫性质的离散随机过程,其核心特征是:未来状态仅取决于当前状态,与历史路径无关数学表述:[P(Xt+1=xt+1∣Xt=xt,Xt−1=xt−1,…,X0=x0)=P(Xt
利用 SoC 架构信息 (SAI) 创建自动网表的解析
weixin_45371279
innovus
基于SAI(SoCArchitectureInformation)创建网表是在无完整电路网表时启动物理设计的关键技术,通过解析架构描述并生成等效网表,使Innovus能够执行布局规划与分析。以下是核心功能与实现逻辑的详细说明:一、SAI自动网表生成的技术背景与目标当设计早期缺乏RTL或门级网表时,SAI自动网表生成通过抽象模型具体化的方式,将架构描述转换为物理设计工具可识别的网表结构,实现:提前启
Linux与Windows切换使用Obsidian,出现 unexplained changes 问题的解决
CS-Polaris
业务能力技术栈 git
如果你的Obsidian文档在Linux与Windows间来回切换,可能会涉及到文件的保存换行符问题,但这样的话就容易导致一个问题,那就是内容无差异,Obsidian却提示unexplainedchanges,Windows系统下的解决方法如下,找到.git/config文件,配置[core]bare=falseautocrlf=falsetrustctime=false一、参考文章或视频链接[1
动手实践OpenHands系列学习笔记15:无头模式架构
JeffWoodNo.1
笔记 架构
笔记15:无头模式架构一、引言无头模式(HeadlessMode)是现代软件系统中的重要架构模式,允许应用程序在没有图形界面的情况下运行,特别适用于自动化场景、CI/CD流水线和系统集成。OpenHands作为先进的AI驱动开发代理平台,提供了强大的无头模式支持。本笔记将探讨无头架构设计原则,分析OpenHands的无头模式实现,并通过实践构建一个使用无头模式API的自动化工作流。二、无头架构设计
简述:link与@import区别
区别:link属于html标签。@import在css中使用表示导入外部样式表;页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;import只在IE5以上才能识别,而link是HTML标签,无兼容问题;link方式的样式的权重高于@import的权重;link支持使用javascript改变样式(document.styleSheets),后者不可使用场
深度学习相关指标工作笔记
Victor Zhong
AI 框架 深度学习 笔记 人工智能
这里写目录标题检测指标iou/Gou/Diou/CiouMSE(MeanSquaredError)(均方误差)(回归问题)交叉熵损失函数(CrossEntropyErrorFunction)(分类问题)检测指标iou/Gou/Diou/CiouIntersectionoverUnion(IoU)是目标检测里一种重要的评价值交并比令人遗憾的是IoU无法优化无重叠的bboxes如果用IoU作为loss
给无公网访问的NAS设备带来的福音(内网穿透,异地组网)
会飞的鱼儿~
NAS docker 网络
目录一、节点小宝简介二、接入步骤及图解1.下载与安装2.配置节点小宝3.绑定设备4.远程访问与管理三、节点小宝的优势四、总结飞牛NAS安装节点小宝的详细指南飞牛NAS中,我们不断追求更高效、更便捷的数据管理和远程访问方式。今天,我将为大家详细介绍一款功能强大的网络工具——节点小宝,它不仅能够极大地提升我们对飞牛NAS的远程访问和管理能力,还能带来前所未有的灵活性和安全性。以下是详细的安装步骤。一、
MMORPG无loading条大世界技术揭秘
你一身傲骨怎能输
游戏开发技术专栏 mmorpg
文章摘要现代MMORPG游戏实现无loading条大世界的核心技术包括:分区流式加载、异步多线程处理、LOD渐进式资源加载、智能内存管理等。主流方案将地图划分为可独立加载的区块,通过异步IO和优先级队列动态管理资源,结合预取机制和资源降级确保流畅体验。典型案例如《原神》《魔兽世界》等采用混合加载模式,核心场景预加载,外围区域动态加载。这些技术虽提升了游戏体验,但也对资源组织和内存管理提出了更高要求
为什么Linux系统安全没有病毒?原因是“它”
老男孩IT教育
linux 系统安全 网络
提到Linux系统,我们都会想到安全、自由度高、开源等特点,在Linux中病毒是很少甚至没有的,那么为什么Linux系统下病毒这么少呢?下面看老男孩教育小编给大家详细说明下,以下是详细的内容:Linux账号限制对一个二进制的Linux病毒,要感染可执行文件,这些可执行文件对启动这个病毒的用户一定要是可写的。而实际情况通常并不是这样的。实际情况通常是,程序被root拥有,用户通过无特权的帐号运行。而
表观遗传风暴:深圳AI-BioFab终极防御战全纪实
前言前些天发现了一个巨牛的人工智能免费学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站⚡《表观遗传风暴:深圳AI-BioFab终极防御战全纪实》副标题:抗癌疫苗灌装倒计时90秒惊现组蛋白叛乱,中国启动虫洞计算化解文明级生物危机2025年7月2日14:26光明科学城急电当第184支抗癌疫苗注入冷链罐的瞬间,B3层突爆刺眼蓝光!培养舱内数千细胞染色体疯狂解旋,量子钟在14:26:03
有符号位的数据表示法以及位运算
有符号位的数据表示法与位运算无套路、关注即可领。持续更新中关注公众号:搜【架构研究站】回复:资料领取,即可获取全部面试题以及1000+份学习资料前言:在计算机底层,数据的运算主要通过“补码”来进行。每个数据都有原码、反码和补码三种表示形式。一、有符号位的数据表示法(一)正数在计算机中,通常以固定的位数来表示整数,例如8位、16位或32位等。以8位二进制表示为例,正数的原码、反码和补码都相同。例如数
docker-compose编排saleor
obboda
运维 docker 容器 运维
一、saleor简介Saleor是一个开源Headless电商系统Saleor,它被用于电子商务等场景。Saleor是现代堆栈上以客户为中心的电子商务。是一个无头的GraphQL商务平台,提供超快速、动态、个性化的购物体验。美观的在线商店,任何地方,任何设备。二、saleor的默认启动流程1、拉取存储库gitclonehttps://github.com/saleor/saleor-platfor
GitHub Actions × AWS 集成终极指南:从零构建安全高效的CI/CD流水线
ivwdcwso
运维与云原生 github aws 安全 GitHub Actions DevOps CI/CD
引言:云原生时代的自动化革命在DevOps实践中,GitHubActions与AWS的深度集成已成为现代应用交付的黄金标准。这种组合让开发者能够:✅实现端到端自动化:从代码提交到生产部署的全流程自动化内置企业级安全:通过OIDC消除密钥泄露风险优化资源成本:按执行分钟计费,无闲置资源浪费加速迭代速度:将部署时间从小时级缩短至分钟级本文将全面解析最佳实践、安全策略和高级技巧,助您构建工业级CI/CD
ubuntu 18.04系统的镜像源
weixin_45081353
ubunt 日常操作 ubuntu linux 运维
1国内可用的镜像源Ubuntu官方下载地址阿里云开源镜像站清华大学开源镜像站中国科技大学开源镜像站华为云开源镜像站2ubuntu18.04镜像说明Ubuntu18.04是一个广泛使用的Linux发行版,它有多个版本的镜像可供下载。在物理机上安装的镜像如带desktop字样的镜像,含桌面环境,适合办公如带server字样的镜像,无桌面环境,适合部署服务器在虚拟机中安装的镜像仅用于制作启动介质的镜像在
【第七节】ESP32-S3 霍尔传感器应用实战:磁场检测与蜂鸣器控制
ESP32-S3霍尔传感器应用实战:磁场检测与蜂鸣器控制本文介绍了如何基于ESP32-S3实现霍尔传感器的磁场检测,并在检测到磁场变化时控制蜂鸣器发声及GPIO信号输出控制的应用。一、硬件连接说明元件连接引脚(GPIO)说明霍尔传感器GPIO21检测磁场变化(HIGH表示磁场存在)无源蜂鸣器GPIO42响应磁场检测发出提示音控制输出引脚GPIO4可外接继电器、LED等控制设备二、功能说明当霍尔传感
meilisearch-轻量级搜索引擎
Leon.ENV
大数据 搜索引擎
meilisearch是一款开源的轻量级搜索引擎,相比于elasticsearch等重量级搜索引擎,meilisearch注重数据搜索,从而而省去了其它不必要的功能(如支持聚合分析、分布式搜索等特性),以便于快速上手开发和构建应用。meilisearch有以下优点1)非常轻量级,只需500MB内存就可以运行2)支持多种接入方式:http、多种语言SDK3)无其它依赖环境,下载启动即可使用4)非常适
解决 Windows 系统无法创建新文本文档 (.txt) 的全面排查方案
yly2025
windows 无法新建txt
在使用Windows系统时,偶尔会遇到无法创建新文本文档的问题,右键菜单中"新建→文本文档"选项消失或点击后无反应。这种情况通常由系统文件损坏、注册表关联异常或权限设置错误导致。本文将提供一套系统性的排查方案,帮助用户逐步定位并解决问题。一、基础排查与系统修复1.检查记事本应用状态确认程序存在通过任务栏搜索框输入"记事本",若搜索结果中无记事本应用,说明程序可能已被误删解决方法:打开微软应用商店,
基于KANO模型的调研问卷设计避坑
Alex艾力的IT数字空间
产品经理 原型模式 产品运营 交互 设计规范 腾讯会议 蓝湖
KANO模型调研中,设计无引导性偏差的问卷需遵循中立表述、选项平衡、逻辑验证原则。一、避免引导性偏差的核心策略1.问题中性化设计禁用倾向性词汇:避免“优化”“提升”等暗示性词语,改用中性描述。❌引导性:“增加扫码支付功能会让体验更好吗?”✅中性化:“扫码支付功能的存在对您来说如何?”对称性表述:正向/反向问题结构完全对仗,仅改变核心条件。正向:“提供XX功能时,您的满意度如何?”反向:“不提供XX
JavaScript 函数
晚夜微雨问海棠呀
JavaScript 教程 javascript 开发语言 ecmascript
JavaScript函数是代码执行的基本单元,具有灵活的定义方式和强大的功能特性。以下是核心要点:一、定义方式类型语法特性函数声明functionfn(){...}存在变量提升,可在定义前调用函数表达式constfn=function(){...}无变量提升,需先定义后调用箭头函数constfn=()=>{...}无this、arguments,不能作为构造函数构造函数newFunction('a
【无线通信】面向多天线用户的网络辅助全双工无蜂窝大规模MIMO研究
hans汉斯
论文荐读 网络 机器人 大数据 学习方法 人工智能 数据挖掘 github
导读:基于网络辅助全双工技术无蜂窝大规模多输入多输出(multipleinputmultipleoutput,MIMO)系统是目前无线通信领域的关键技术之一。然而,现有的研究都假设采用完美硬件配置的单天线用户设备发送和接收信号,这种架构限制了系统整体性能的进一步提升。鉴于此,本文针对网络辅助全双工无蜂窝大规模MIMO环境中的多天线用户通信展开研究。利用现有的加性量化噪声模型,推导了低精度模数转换器
MySQL EXPLAIN 关键字详解
烟沙九洲
数据库 mysql 数据库
EXPLAIN是用于分析SQL查询的执行计划。它能揭示MySQL如何执行查询(如是否使用索引、表连接顺序等),帮助我们定位性能瓶颈。基本用法EXPLAINSELECT*FROMusersWHEREage>25;输出列列名说明关键值示例id查询标识符(相同id表示同组查询,执行顺序从上到下;不同id值越大优先级越高)1(主查询)、2(子查询)select_type查询类型SIMPLE(无子查询)、P
Python 爬虫实战:高效存储与数据清洗技巧,助你轻松处理抓取数据
程序员威哥
python 爬虫 开发语言
在进行大规模数据抓取时,数据的存储与清洗是爬虫项目中不可或缺的环节。抓取到的数据往往是杂乱无章的,包含了许多无关的内容,需要经过处理才能用于分析和应用。如何高效地存储数据,并对其进行清洗、去重、格式化等操作,是每个爬虫开发者必须掌握的重要技能。本文将介绍如何使用Python实现数据存储与清洗的常见技巧,帮助你提升数据处理效率,为后续的数据分析和应用打下坚实的基础。一、为什么数据存储与清洗如此重要?
桌面上有多个球在同时运动,怎么实现球之间不交叉,即碰撞?
换个号韩国红果果
html 小球碰撞
稍微想了一下,然后解决了很多bug,最后终于把它实现了。其实原理很简单。在每改变一个小球的x y坐标后,遍历整个在dom树中的其他小球,看一下它们与当前小球的距离是否小于球半径的两倍?若小于说明下一次绘制该小球(设为a)前要把他的方向变为原来相反方向(与a要碰撞的小球设为b),即假如当前小球的距离小于球半径的两倍的话,马上改变当前小球方向。那么下一次绘制也是先绘制b,再绘制a,由于a的方向已经改变
《高性能HTML5》读后整理的Web性能优化内容
白糖_
html5
读后感
先说说《高性能HTML5》这本书的读后感吧,个人觉得这本书前两章跟书的标题完全搭不上关系,或者说只能算是讲解了“高性能”这三个字,HTML5完全不见踪影。个人觉得作者应该首先把HTML5的大菜拿出来讲一讲,再去分析性能优化的内容,这样才会有吸引力。因为只是在线试读,没有机会看后面的内容,所以不胡乱评价了。
[JShop]Spring MVC的RequestContextHolder使用误区
dinguangx
jeeshop 商城系统 jshop 电商系统
在spring mvc中,为了随时都能取到当前请求的request对象,可以通过RequestContextHolder的静态方法getRequestAttributes()获取Request相关的变量,如request, response等。 在jshop中,对RequestContextHolder的
算法之时间复杂度
周凡杨
java 算法 时间复杂度 效率
在
计算机科学 中,
算法 的时间复杂度是一个
函数 ,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的
字符串 的长度的函数。时间复杂度常用
大O符号 表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是
渐近 的,它考察当输入值大小趋近无穷时的情况。
这样用大写O()来体现算法时间复杂度的记法,
Java事务处理
g21121
java
一、什么是Java事务 通常的观念认为,事务仅与数据库相关。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状
Linux awk命令详解
510888780
linux
一. AWK 说明
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。
awk的处理文本和数据的方式:它逐行扫描文件,从第一行到
android permission
布衣凌宇
Permission
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" ></uses-permission>允许读写访问"properties"表在checkin数据库中,改值可以修改上传
<uses-permission android:na
Oracle和谷歌Java Android官司将推迟
aijuans
java oracle
北京时间 10 月 7 日,据国外媒体报道,Oracle 和谷歌之间一场等待已久的官司可能会推迟至 10 月 17 日以后进行,这场官司的内容是 Android 操作系统所谓的 Java 专利权之争。本案法官 William Alsup 称根据专利权专家 Florian Mueller 的预测,谷歌 Oracle 案很可能会被推迟。 该案中的第二波辩护被安排在 10 月 17 日出庭,从目前看来
linux shell 常用命令
antlove
linux shell command
grep [options] [regex] [files]
/var/root # grep -n "o" *
hello.c:1:/* This C source can be compiled with:
Java解析XML配置数据库连接(DOM技术连接 SAX技术连接)
百合不是茶
sax技术 Java解析xml文档 dom技术 XML配置数据库连接
XML配置数据库文件的连接其实是个很简单的问题,为什么到现在才写出来主要是昨天在网上看了别人写的,然后一直陷入其中,最后发现不能自拔 所以今天决定自己完成 ,,,,现将代码与思路贴出来供大家一起学习
XML配置数据库的连接主要技术点的博客;
JDBC编程 : JDBC连接数据库
DOM解析XML: DOM解析XML文件
SA
underscore.js 学习(二)
bijian1013
JavaScript underscore
Array Functions 所有数组函数对参数对象一样适用。1.first _.first(array, [n]) 别名: head, take 返回array的第一个元素,设置了参数n,就
plSql介绍
bijian1013
oracle 数据库 plsql
/*
* PL/SQL 程序设计学习笔记
* 学习plSql介绍.pdf
* 时间:2010-10-05
*/
--创建DEPT表
create table DEPT
(
DEPTNO NUMBER(10),
DNAME NVARCHAR2(255),
LOC NVARCHAR2(255)
)
delete dept;
select
【Nginx一】Nginx安装与总体介绍
bit1129
nginx
启动、停止、重新加载Nginx
nginx 启动Nginx服务器,不需要任何参数u
nginx -s stop 快速(强制)关系Nginx服务器
nginx -s quit 优雅的关闭Nginx服务器
nginx -s reload 重新加载Nginx服务器的配置文件
nginx -s reopen 重新打开Nginx日志文件
spring mvc开发中浏览器兼容的奇怪问题
bitray
jquery Ajax springMVC 浏览器 上传文件
最近个人开发一个小的OA项目,属于复习阶段.使用的技术主要是spring mvc作为前端框架,mybatis作为数据库持久化技术.前台使用jquery和一些jquery的插件.
在开发到中间阶段时候发现自己好像忽略了一个小问题,整个项目一直在firefox下测试,没有在IE下测试,不确定是否会出现兼容问题.由于jquer
Lua的io库函数列表
ronin47
lua io
1、io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述
io表同样提供三种预定义的文件描述io.stdin,io.stdout,io.stderr
2、文件句柄直接调用方式,即使用file:XXX()函数方式进行操作,其中file为io.open()返回的文件句柄
多数I/O函数调用失败时返回nil加错误信息,有些函数成功时返回nil
java-26-左旋转字符串
bylijinnan
java
public class LeftRotateString {
/**
* Q 26 左旋转字符串
* 题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。
* 如把字符串abcdef左旋转2位得到字符串cdefab。
* 请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。
*/
pu
《vi中的替换艺术》-linux命令五分钟系列之十一
cfyme
linux命令
vi方面的内容不知道分类到哪里好,就放到《Linux命令五分钟系列》里吧!
今天编程,关于栈的一个小例子,其间我需要把”S.”替换为”S->”(替换不包括双引号)。
其实这个不难,不过我觉得应该总结一下vi里的替换技术了,以备以后查阅。
1
所有替换方案都要在冒号“:”状态下书写。
2
如果想将abc替换为xyz,那么就这样
:s/abc/xyz/
不过要特别
[轨道与计算]新的并行计算架构
comsci
并行计算
我在进行流程引擎循环反馈试验的过程中,发现一个有趣的事情。。。如果我们在流程图的每个节点中嵌入一个双向循环代码段,而整个流程中又充满着很多并行路由,每个并行路由中又包含着一些并行节点,那么当整个流程图开始循环反馈过程的时候,这个流程图的运行过程是否变成一个并行计算的架构呢?
重复执行某段代码
dai_lm
android
用handler就可以了
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
public void run() {
update();
handler.postDelayed(this, 5000);
}
};
开始计时
h
Java实现堆栈(list实现)
datageek
数据结构——堆栈
public interface IStack<T> {
//元素出栈,并返回出栈元素
public T pop();
//元素入栈
public void push(T element);
//获取栈顶元素
public T peek();
//判断栈是否为空
public boolean isEmpty
四大备份MySql数据库方法及可能遇到的问题
dcj3sjt126com
DB backup
一:通过备份王等软件进行备份前台进不去?
用备份王等软件进行备份是大多老站长的选择,这种方法方便快捷,只要上传备份软件到空间一步步操作就可以,但是许多刚接触备份王软件的客用户来说还原后会出现一个问题:因为新老空间数据库用户名和密码不统一,网站文件打包过来后因没有修改连接文件,还原数据库是好了,可是前台会提示数据库连接错误,网站从而出现打不开的情况。
解决方法:学会修改网站配置文件,大多是由co
github做webhooks:[1]钩子触发是否成功测试
dcj3sjt126com
github git webhook
转自: http://jingyan.baidu.com/article/5d6edee228c88899ebdeec47.html
github和svn一样有钩子的功能,而且更加强大。例如我做的是最常见的push操作触发的钩子操作,则每次更新之后的钩子操作记录都会在github的控制板可以看到!
工具/原料
github
方法/步骤
">的作用" target="_blank">JSP中 的作用
蕃薯耀
JSP中<base href="<%=basePath%>">的作用
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
linux下SAMBA服务安装与配置
hanqunfeng
linux
局域网使用的文件共享服务。
一.安装包:
rpm -qa | grep samba
samba-3.6.9-151.el6.x86_64
samba-common-3.6.9-151.el6.x86_64
samba-winbind-3.6.9-151.el6.x86_64
samba-client-3.6.9-151.el6.x86_64
samba-winbind-clients
guava cache
IXHONG
cache
缓存,在我们日常开发中是必不可少的一种解决性能问题的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。
缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。在日常开发的很多场合,由于受限于硬盘IO的性能或者我们自身业务系统的数据处理和获取可能非常费时,当我们发现我们的系统这个数据请求量很大的时候,频繁的IO和频繁的逻辑处理会导致硬盘和CPU资源的
Query的开始--全局变量,noconflict和兼容各种js的初始化方法
kvhur
JavaScript jquery css
这个是整个jQuery代码的开始,里面包含了对不同环境的js进行的处理,例如普通环境,Nodejs,和requiredJs的处理方法。 还有jQuery生成$, jQuery全局变量的代码和noConflict代码详解 完整资源:
http://www.gbtags.com/gb/share/5640.htm jQuery 源码:
(
美国人的福利和中国人的储蓄
nannan408
今天看了篇文章,震动很大,说的是美国的福利。
美国医院的无偿入院真的是个好措施。小小的改善,对于社会是大大的信心。小孩,税费等,政府不收反补,真的体现了人文主义。
美国这么高的社会保障会不会使人变懒?答案是否定的。正因为政府解决了后顾之忧,人们才得以倾尽精力去做一些有创造力,更造福社会的事情,这竟成了美国社会思想、人
N阶行列式计算(JAVA)
qiuwanchi
N阶行列式计算
package gaodai;
import java.util.List;
/**
* N阶行列式计算
* @author 邱万迟
*
*/
public class DeterminantCalculation {
public DeterminantCalculation(List<List<Double>> determina
C语言算法之打渔晒网问题
qiufeihu
c 算法
如果一个渔夫从2011年1月1日开始每三天打一次渔,两天晒一次网,编程实现当输入2011年1月1日以后任意一天,输出该渔夫是在打渔还是在晒网。
代码如下:
#include <stdio.h>
int leap(int a) /*自定义函数leap()用来指定输入的年份是否为闰年*/
{
if((a%4 == 0 && a%100 != 0
XML中DOCTYPE字段的解析
wyzuomumu
xml
DTD声明始终以!DOCTYPE开头,空一格后跟着文档根元素的名称,如果是内部DTD,则再空一格出现[],在中括号中是文档类型定义的内容. 而对于外部DTD,则又分为私有DTD与公共DTD,私有DTD使用SYSTEM表示,接着是外部DTD的URL. 而公共DTD则使用PUBLIC,接着是DTD公共名称,接着是DTD的URL.
私有DTD
<!DOCTYPErootSYST