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)
C++:vector容器(上篇)
李白同学
C++ c++ 开发语言
1.vector的介绍及使用1.1vector的介绍vector文档说明链接:vector-C++Reference(cplusplus.com)1.2vector的使用1.2.1vector的定义(constructor)构造函数声明接口说明vector()(重点)无参构造vector(size_typen,constvalue_type&val=value_type())构造并初始化n个val
Python爬虫技术实战:高效市场趋势分析与数据采集
Python爬虫项目
2025年爬虫实战项目 python 爬虫 开发语言 easyui 汽车
摘要本文将深入探讨如何利用最新的Python爬虫技术进行市场趋势分析,涵盖异步IO、无头浏览器、智能解析等前沿技术,并提供完整可运行的代码示例。文章将系统介绍从基础爬虫到高级反反爬策略的全套解决方案,帮助读者掌握市场数据采集的核心技能。1.市场趋势分析与爬虫技术概述市场趋势分析已成为现代商业决策的核心环节,而数据采集则是分析的基石。根据2024年最新统计,全球83%的企业已将网络爬虫技术纳入其数据
【安全漏洞】深入剖析CVE-2021-40444-Cabless利用链
IT老涵
安全 网络 漏洞 安全 安全漏洞 网络安全
背景CVE-2021-40444为微软MHTML远程命令执行漏洞,攻击者可通过传播MicrosoftOffice文档,诱导目标点击文档从而在目标机器上执行任意代码。该漏洞最初的利用思路是使用下载cab并释放、加载inf文件的形式执行恶意代码。独立安全研究员EduardoB.在github公开了一种新的“无CAB”的漏洞利用方法及其POC。公众号之前发布的研判文章中已对在野利用中出现的新的Cable
DAY 1 变量与格式化字符串
文章目录题目1:变量的认识小结:多重赋值题目2:格式化字符串小结:格式化字符串题目3:变量的基础运算题目1:变量的认识题目:定义三个变量a,b,c,并分别将整数1,2,3赋值给它们。然后,使用print()函数将每个变量的值单独打印出来,每个值占一行。输入:无输出:123a=1b=2c=3print(a)print(b)print(c)小结:多重赋值多重赋值:多重赋值允许你在一行代码里给多个变量同
39. 组合总和
题目:给你一个无重复元素的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的所有不同组合,并以列表形式返回。你可以按任意顺序返回这些组合。candidates中的同一个数字可以无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为target的不同组合数少于150个。解题思路:总体上这道题采用
el-table合并行+数据按照相同名称排序+相同名称内的数据在排序
Web·强
elementui 遇到的问题 前端 java javascript
项目场景:项目需求:后端给我返回的数据:原因分析:后端数据所有的内容排列是无顺序的相同名称的不一定靠在一起图片只是巧合,如果按照后端返回的格式直接赋给表格的tabledata那么顺序就不是我们想要的,所以我们首先要把数据处理成我们想要的数据格式。①根据需求首先把数据里的相同名称进行排序然后在将相同名称里的版本从高到低排序②将名称相同的合并成一行并将序号也进行合并解决方案:需求①:this.tabl
基于STM32与ZigBee的智能指引车库系统设计
科创工作室li
毕业设计1 stm32 嵌入式硬件 单片机
⭐资料具有原理图流程图PCB器件清单STM32与ZigBee的智能指引车库系统设计摘要:本文设计了一种基于STM32与ZigBee的智能指引车库系统。系统包含1台主机和3台从机,从机实时检测车位状况并发送给主机,主机显示3个车位的停车情况(满、无),并能简易引导车辆驶向空位,同时主机通过WiFi模块将数据上传至阿里云。该系统实现了车库车位的智能监测与引导,提高了车库管理的效率和便捷性。关键词:ST
医学图像增强的层级化模糊与虚拟仪器无参考质量评价研究【附代码】
拉勾科研工作室
计算机视觉 图像处理 人工智能
算法与建模领域的探索者|专注数据分析与智能模型设计✨擅长算法、建模、数据分析matlab、python、仿真✅具体问题可以私信或查看文章底部二维码✅感恩科研路上每一位志同道合的伙伴!(1)层级模糊隶属度的X光医学图像增强算法针对X光医学图像普遍存在的对比度差、细节模糊等问题,本算法提出了一种基于层级模糊隶属度的增强方法。该方法的核心思想在于利用拉普拉斯金字塔分解图像,并在多尺度下分层计算模糊隶属度
手机控制载货汽车一键启动无钥匙进入广泛应用
移动管家载货汽车一键启动无钥匙进入手机控车系统,该系统广泛应用于物流运输、工程作业等货车场景,为车主提供了高效、便捷的启动和熄火解决方案,体现了科技进步对物流行业的积极影响核心功能:简化启动流程,提高便捷性与安全性。无钥匙进入:车主携带智能钥匙靠近车辆,车门自动解锁并解除防盗;离开时自动上锁防盗。一键启动:踩下刹车,按下一键启动按钮即可启动或熄火车辆,替代传统钥匙。智能控制:
电动汽车一键启动手机撑控无钥匙进入
移动管家汽车手机智能控制系统具有汽车远程启动、汽车远程熄火、远程开关车门锁、远程断油、远程供油、远程监听车内动态、入侵报警提示、GPS定位、车辆状态信息实时定位等各种智能化实用功能,安装时不改动任何原车线路,适用于所有车型。将手机的控制功能整合到汽车模块,实现手机与汽车之间的智能对接,手机控制汽车,新增APP远程启动熄火,微信云钥匙等多项功能集成一体,用手机控制汽车,实现汽车智能钥匙的成功开启,为
.NET C# async/定时任务的异步线程池调度方案最大线程数 = 处理器核心数 × 250
专注VB编程开发20年
.net c# 开发语言
关于.NET中Threading.Timer的线程机制,结合线程池特性和异步协作原理分析如下:一、线程复用机制共享进程级线程池Threading.Timer的回调任务不会每次新建线程,而是提交到.NET进程全局线程池统一调度,该线程池与async/await任务共享同一资源池。线程池维护可复用工作线程队列,避免频繁创建/销毁开销任务优先由空闲线程执行,无空闲线程则进入全局队列等待线程池扩
ZYNQ无DMA的四路HP总线极限性能探索
芯作者
D1:ZYNQ设计 fpga开发 硬件工程 智能硬件
深入挖掘AXIHP总线的直接传输潜力,突破传统DMA的性能瓶颈一、HP总线:ZYNQ系统的"高速公路"在XilinxZYNQ架构中,HP(HighPerformance)总线是连接PS(处理器系统)和PL(可编程逻辑)的关键通道。传统方案依赖DMA控制器进行数据传输,但当我们需要超低延迟或确定性响应时,无DMA的直接CPU控制成为更优选择。本文将揭示如何通过四路HP总线实现惊人的24GB/s理论带
HarmonyOS Next常用组件 TextInput
harmonyos
InputType枚举说明Normal基本输入模式,无特殊限制Password密码输入模式。密码显示小眼睛图标,默认输入文字短暂显示后变成圆点Email邮箱地址输入模式。支持数字、字母、下划线、小数点、!、#、$、%、&、'、"、*、+、-、/、=、?、^、`、{、\、}、~,以及@字符(只能存在一个@字符)Number纯数字输入模式PhoneNumber电话号码输入模式。支持输入数字、空格、+、
实例化Bean对象的三种方式
越来越无动于衷
java sql 开发语言
默认是无参数的构造方法(默认方式,基本上使用)静态工厂实例化特点:工厂方法属于静态方法,可直接通过类名调用,无需先创建工厂类的对象。优势:调用起来更为简便,性能方面也稍占优势。Spring配置:class属性指向静态工厂类,factory-method属性指向静态方法。示例代码:publicclassStaticFactory{publicstaticUserServicecreateUs(){r
ios15及以上webview、Safari使用Websocket断连,1006无清晰错误码
文章目录问题表现:定位疑似原因:解决方式:定位问题思路过程记录:1、对比前端代码运行环境问题2、写纯请求前端代码连接,确认是否接口部署服务问题;3、IOS连接是否有对TSL安全协议版本有要求(使用的wss协议)4、验证iOS网络是否稳定&查阅信息是否iOS会出现频繁断连又迅速重连情况5、自己搞个nodedemo验证纯连接问题:6、IOS自身多运行环境对比:QQ频道应用、QQ聊天框、safari、c
并查集(Disjoint-Set Union)详解
追逐此刻
算法方法 python 开发语言
并查集是一种处理不相交集合的合并与查询问题的数据结构,主要支持两种操作:Find:查询元素所属集合Union:合并两个集合基本概念数据结构表示通常用树形结构表示集合,每个集合用一棵树表示,树的根节点作为该集合的代表元素。核心操作初始化:每个元素自成一个集合,父节点指向自己查找(Find):找到元素的根节点(代表元素)合并(Union):将两个集合合并为一个实现方式基础实现(无优化)classDSU
Python+Playwright(0)
黑米粥✎
python 开发语言 自动化
简介Playwright是一个强大的自动化库,由微软开发,主要用于web端UI自动化测试,支持python、java、JavaScript、C#等多种编程语言。Playwright仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作,不仅支持无头模式和有头模式,还提供了代码录制的功能,极大提高了脚本编写的效率,并支持移动端自动化测试。Playwright相
【超详细】S905L3B机顶盒固件刷机包已root-adb-带影视桌面-
yantaohk
嵌入式硬件 云计算 边缘计算
本线刷包为S905L3B的通用版本,桌面友好,无流氓软件,纯净系统(自带一个应用管家,非系统应用,可以删除),系统已root,开adb,安卓9,遥控器正常使用,可以看电视电影,看是S905L3B的芯片,都可以刷既然机顶盒芯片为S905L3B的,,闲鱼10多20块一个,刷了到处卖,接通宽带就行。卖给用户看电视电影香得很!此文所有用到的软件,和底包、刷机工具,均在以下网盘内,可自行选择下载使用:通过网
Unity热更新 之 Lua
哈基咩咩
Unity 热更新 unity lua 游戏引擎
本文内容整合包括但不限于Unity唐老狮,菜鸟教程,Ai与其他网络资源本文仅作学习笔记交流,不做任何商业用途,侵权删gitee:https://gitee.com/hakiSheep/lua.git一.基础知识包含了如下内容--注释还算详细二.XLuaXLua是腾讯开源的框架,为Unity、.Net等C#环境赋予Lua脚本编程能力,支持C#与Lua高效互调核心特性含热补丁(热更新)、GC优化(无额
企业华为TaurusDB数据库国产替代要点全记录
OnlyLowG
华为 数据库
背景国产化浪潮方兴未艾,为了避免被卡脖子。我们内部的SQLserver数据库也要下线。因为运维能力有限,优先选云厂商的产品,于是做了以下对比。数据库对比我们从成本、无运维化、sql兼容性、性能、索引依赖性、查询优化器、数据存储引擎、表关联性能、字段类型、索引、亿级数据查询能力、事务全方位对比下来看。再考虑到我们的服务器也在华为云,因而敲定了TaurusDB(原GaussDBForMysql)数据库
7、使用Sonic Pi进行音乐编程
轩辕姐姐
树莓派冒险:从零开始的编程之旅 Sonic Pi 音乐编程 树莓派
使用SonicPi进行音乐编程1.引言树莓派不仅仅是一个小型计算机或游戏机,它还可以成为一个强大的音乐合成器。通过使用SonicPi这款应用程序,我们可以将计算思维与音乐创作结合起来,创造出独一无二的音乐作品。本文将详细介绍如何使用SonicPi进行音乐编程,帮助你将树莓派变成一个多功能的音乐创作平台。2.SonicPi简介SonicPi是一款专门为树莓派设计的音乐编程应用程序,由音乐现场编码员S
亚马逊广告曝光量高却无点击量的深层逻辑思考
观察猿
python 人工智能
在亚马逊这个全球最大的电商竞技场中,广告投放早已成为卖家突围的必争之地。然而,当无数卖家反复纠结"亚马逊广告竞价设置多少合适"这一问题时,背后折射出的其实是整个行业面临的系统性难题。作为从业多年的广告优化师,我见证过太多卖家在手动调价、关键词管理和预算分配中疲于奔命,最终陷入"高投入低回报"的恶性循环。核心痛点往往集中在三个维度:竞价策略缺乏动态响应能力,关键词管理跟不上市场变化节奏,预算分配与库
【C++】内联函数(inline)与宏定义(#define)使用说明及区别
OpenC++
C++ 编程概念 c++ 开发语言
目录一、内联函数inline二、宏定义#define1.无参宏定义2.有参宏定义3.多行宏定义函数4.宏中的#和##5.常用预定义宏三、内联函数与宏定义的区别如果这篇文章对你有所帮助,渴望获得你的一个点赞!一、内联函数inline在函数名前添加关键字inline,该函数就被声明为内联函数。每当程序中出现对该函数的调用时,C++编译器会将函数体中的代码插入到调用该函数的代码处,同时使用实参代替形参,
OpenCV中创建Mat对象
Ethan@LM
opencv 人工智能 计算机视觉
第1章创建Mat对象1.1.创建空的Mat对象cv::Matmat;1.2.创建灰度图像//创建一个3行4列、8位无符号单通道矩阵(相当于灰度图)cv::Matmat(3,4,CV_8UC1);1.3.创建彩色图像//创建三通道矩阵(相当于彩色图像)cv::Matmat_color(480,640,CV_8UC3);CV_8UC1:8位无符号,单通道(灰度图)CV_8UC3:8位无符号,三通道(彩
OpenCV CUDA模块设备层-----逐通道的正弦运算函数sin()
村北头的码农
OpenCV opencv 人工智能 计算机视觉
操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:VisualStudioCode编程语言:C++11算法描述OpenCV的CUDA模块(cv::cudev)中的一个设备端数学函数,用于在CUDA核函数中对uchar4类型(即4通道无符号字符类型)进行逐通道的正弦运算,并将结果转换为float4类型输出。将一个uchar4类型像素值(每个通道取值范围[0,255])逐通道
C++智能指针概念理解的面试题
xgbing
[C/C++] c++ 机器学习 人工智能 自动驾驶
C++智能指针概念理解的面试题第一部分:基础概念解释std::unique_ptr和std::shared_ptr在以下方面的区别:所有权语义性能开销自定义删除器的存储方式是否支持数组类型答案:所有权语义:unique_ptr:独占所有权,不能复制,只能移动shared_ptr:共享所有权,通过引用计数管理,可以复制性能开销:unique_ptr:几乎无额外开销(等同于原始指针)shared_pt
[CVPR 2025] 高效无监督Prompt与偏好对齐驱动的半监督医学分割
alfred_torres
prompt 医学图像分割
CVPR2025|优化SAM:高效无监督Prompt与偏好对齐驱动的半监督医学分割论文信息标题:EnhancingSAMwithEfficientPromptingandPreferenceOptimizationforSemi-supervisedMedicalImageSegmentation作者:AishikKonwer,ZhijianYang,ErhanBas,CaoXiao,Pratee
函数式编程
Brilliant Nemo
JavaSE进阶 java
一.道之伊始宇宙初开之际,混沌之气笼罩着整个宇宙,一切模糊不清。然后,盘古开天,女娲造人:日月乃出、星辰乃现,山川蜿蜒、江河奔流、生灵万物,欣欣向荣。此日月、星辰、山川、江河、生灵万物,谓之【对象】,皆随时间而化。然而:日月之行、星汉灿烂、山川起伏、湖海汇聚,冥冥中有至理藏其中。名曰【道】,乃万物遵循之规律,亦谓之【函数】,它无问东西,亘古不变作为设计宇宙洪荒的程序员造日月、筑山川、划江河、开湖海
【面试宝典】【大模型入门】【模型微调】
曾小文
人工智能 深度学习 机器学习
面试热点科普:监督微调vs无监督微调,有啥不一样?在大模型时代(比如BERT、GPT)里,我们经常听到“预训练+微调”的范式。但你可能会疑惑——监督微调、无监督微调,到底有啥区别?用的场景一样吗?今天这篇,带你5分钟搞懂这对“孪生兄弟”的异同✅1.术语定义名称定义说明预训练(Pretraining)在大规模通用数据上训练模型,学习“通用知识”,比如语言规律、语义表示。微调(Fine-tuning)
从TCP到MQTT再到HTTP:一文读懂网络协议的核心差异与关系
豆豆(前端开发+ui设计)
网络协议 tcp/ip http
TCP、MQTT、HTTP是网络通信中不同层次的协议,它们在功能和应用场景上有显著区别,同时也存在一定的关联。以下是它们的详细对比和关系说明:1.TCP(传输控制协议)定位:传输层协议(OSI第4层)。作用:提供可靠的、面向连接的数据传输,确保数据按序到达、不丢失、不重复。特点:三次握手建立连接,四次挥手断开连接。流量控制、拥塞控制机制。无应用层语义(仅传输字节流,不关心内容)。典型应用:作为底层
桌面上有多个球在同时运动,怎么实现球之间不交叉,即碰撞?
换个号韩国红果果
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