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)
记录一次进程被操作系统强制终止(OOM Killer)
别告诉我有BUG
jvm java
问题背景场景:在一次系统迁移中,团队将原本运行在16G内存物理机的Java服务迁移到8G内存虚拟机,直接复用了原有的JVM参数(如-Xmx12g)。服务启动后运行正常,但几小时后突然宕机,日志中无明确错误,仅显示进程终止。影响:服务不可用持续30分钟部分业务数据丢失,用户投诉激增分析过程1.初步排查现象确认:进程消失,无Java堆栈或异常日志。系统日志/var/log/messages中发现OOM
JVM篇:内存分区及作用及各部分可能发生的异常
ashane1314
jvm
一、运行时数据区总览二、JVM内存分区及异常1.程序计数器(ProgramCounterRegister)作用:记录当前线程执行字节码的地址(行号),保证线程切换后能恢复到正确位置。特点:线程私有,唯一无内存溢出的区域。异常:无。由JVM规范严格管理,不会发生内存溢出。2.虚拟机栈(JavaVirtualMachineStack)作用:存储方法调用的栈帧(局部变量表、操作数栈、动态链接、方法出口等
985大四科班生没有项目和实习,错过秋招,该准备如何春招?
程序员yt
c++
今天给大家分享的是一位粉丝的提问,985大四科班生没有项目和实习,错过秋招,该准备如何春招?接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。同学提问:yt哥你好,我是985大四计科学生,无项目无实习,想努力冲刺春招(清楚准备这么晚是找不到啥好工作了,已经面试了老家那边的银行业务岗,想着后续边工作边自学再跳槽也OK)秋招末班车才醒悟,知道自己没有准备,开发岗
腿足机器人之五- 粒子滤波
shichaog
腿足机器人 机器人
腿足机器人之五粒子滤波直方图滤波粒子滤波上一篇博客使用的是高斯分布结合贝叶斯准则来估计机器人状态,本篇是基于直方图和粒子滤波器这两种无参滤波器估计机器人状态。直方图方法将状态空间分解成有限多个区域,并用直方图表示后验概率。直方图为每个区域分配一个单独的累积概率;可以将其视为对连续密度函数的逐段常数近似。第二种技术通过有限多个样本来表示后验概率。由此产生的滤波器被称为粒子滤波器,在某些机器人问题中获
从C语言的角度重构数据结构系列(十三)-位运算
文宇肃然
数据结构常见算法原理讲解 C语言 数据结构
位运算简介位运算位运算就是基于整数的二进制表示进行的运算。由于计算机内部就是以二进制来存储数据,位运算是相当快的。基本的位运算共6种,分别为按位与、按位或、按位异或、按位取反、左移和右移。运算运算符数学符号表示解释与&&、and只有两个对应位都为1时才为1或||、or只要两个对应位中有一个1时就为1异或^、xor只有两个对应位不同时才为1左移假设要将一个无符号整数乘以2。可以简单地将所有位向左边移
【鸿蒙系统APP开发实践案例】--第1课时:新闻阅读类行业实践
青少年编程作品集
HarmonyOS Next应用开发案例 harmonyos 华为 json javascript html5 前端 html
简介本设计为新闻日报类应用APP的鸿蒙化架构设计实践,应用设备形态只有手机端,提供新闻日报类应用常见的新闻资讯展示,新闻视频播放,用户评论互动等应用功能。Stage开发模型+声明式UI开发方式。按照应用设备形态,规划一个手机设备Entry类型HAP包。本实践性能优先,应用程序包大小可控,且无单独加载模块场景,业务模块包类型采用HAR包。应用布局说明实践应用框架代码运行图,开发者可以基于框架代码替换
【AI面板识别】
嵌入式学习菌
敲代码系列 华为OD刷题 华为od
题目描述AI识别到面板上有N(1≤N≤100)个指示灯,灯大小一样,任意两个之间无重叠。由于AI识别误差,每次别到的指示灯位置可能有差异,以4个坐标值描述AI识别的指示灯的大小和位置(左上角x1,y1,右下角x2,y2),请输出先行后列排序的指示灯的编号,排序规则:每次在尚未排序的灯中挑选最高的灯作为的基准灯,找出和基准灯属于同一行所有的灯进行排序。两个灯高低偏差不超过灯半径算同一行(即两个灯坐标
国密算法SM1 SM2 SM3 SM4 SM9
象话
算法 国密算法 SM2 SM3 SM4
一、概述SM1-无具体实现SM1作为一种对称加密算法,由于其算法细节并未公开,且主要在中国国内使用,因此在国际通用的加密库(如BouncyCastle)中并不直接支持SM1算法。SM1算法的具体实现涉及国家密码管理局的规范,通常需要使用国家指定的安全模块(如SSF33、SC1/SC2卡)或通过国家认证的加密硬件/软件产品来实现。不过,如果你有合法授权并且在合规的环境下需要使用SM1算法,可能需要依
chatgpt赋能Python-python_dag
yakuchrisfor
ChatGpt python chatgpt matplotlib
PythonDAG学习指南在数据处理和机器学习领域,处理复杂问题通常需要执行多个任务,并按特定顺序执行这些任务。DAG(有向无环图)被用于逻辑顺序的表示,这是标准的处理方式,以及一些技术,如Airflow。这篇文章将为你介绍PythonDAG,并为你提供一个学习指南。什么是PythonDAG?PythonDAG是用Python编程语言创建和处理DAG的框架。由于Python的灵活性、易于学习和使用
python dag调度系统开发_DAG(有向无环图)动态作业调度程序
weixin_39913628
python dag调度系统开发
IneedtomanagealargeworkflowofETLtasks,whichexecutiondependsontime,dataavailabilityoranexternalevent.Somejobsmayfailduringexecutionoftheworkflowandthesystemshouldhavetheabilitytorestartafailedworkflowb
python实现有向无环图(DAG)
少年白char
python
摘自dagobah项目dagfromcollectionsimportOrderedDict,defaultdictfromcopyimportcopy,deepcopyclassDAG(object):"""Directedacyclicgraphimplementation."""def__init__(self):"""ConstructanewDAGwithnonodesoredges."
Python生成依赖性应用的DAG(有向无环图)拓扑
Sawakita1122
算法
因为研究方向设计到依赖性的应用,做实验需要用到一些随机的DAG(有向无环图)拓扑来作为应用的表示,找了找网上没有符合的代码,于是决定自己写个小脚本来生成大量随机的DAG拓扑。我实验中要用到的依赖性应用拓扑类似于下面这种模式:观察到,DAG包括一个入口节点和一个出口节点,其余的节点都是具有依赖关系的中继节点图中入口节点的入度和出口节点的出度都为0,其余任意节点都至少有一条入边和一条出边。根据有向无环
从零开始设计和实现一个 Python 下的 DAG(有向无环图)
Java八股文面试
python 开发语言
我们一起来从零开始设计和实现一个Python下的DAG(有向无环图),并结合GitHub上常见的代码模式进行优化。第一步:理解DAG的基本概念和需求首先,我们需要明确DAG的核心概念:节点(Node):代表任务或者操作。有向边(DirectedEdge):表示节点之间的依赖关系,从一个节点指向另一个节点,意味着前者必须在后者之前完成。无环(Acyclic):图中不存在从某个节点出发,经过一系列边最
基于自动化发布流程,运用多个工具实现高效运维实战
罗伯特之技术屋
运维 自动化
【摘要】生产部署曾经是一件令运维极为头痛的事,充满着大量沟通和手动操作,自动化发布完全解决了过去发布的痛点。而在经济大环境的影响下,很多企业都需要降本增效,Serverless正在被越来越多的引入到生产环境上来。目前在对于云上的发布的流程基本上是,Terraform部署基础架构->Jenkins类的CICD工具发布应用->无服务化部署定时和事件触发的作业。本文将从如何建设自动化发布流程的原理入手,
联想拯救者R720重装Win10系统的正确姿势
chuigankeng6995
操作系统
2017年最火爆的笔记本子当属联想拯救者R720,很多人用它玩吃鸡游戏,这款机型购买时,有的选的是无固态版本,也有的自行加装固态,也有的买来时就是固态+机械双硬盘。问题一:加装固态的话,必须选择M.2接口NVMe协议的SSD,注意不是所有M.2接口的固态都支持,比如M.2接口走SATA协议的不支持。问题二:加装完固态,装系统或是进U盘PE找不到固态(检测不到固态),这是什么问题?上面说了,如果M2
《Operating System Concepts》阅读笔记:p1-p1
codists
读书笔记 system
《OperatingSystemConcepts》学习第1天,p1-p1总结,总计1页。一、技术总结无。二、英语总结(生词:1)1.intermediary(1)intermediary:inter-(“between,among”)+medius(“middle”)c.intermediaryoriginallyreferredtosomethingorsomeonethatis“inthemi
最新技术趋势:2025年的无服务器架构发展方向
zxzy_org
serverless 架构 云原生 算法
2025年,无服务器架构正迎来新的技术变革与应用浪潮。随着云计算和边缘计算的深入融合,无服务器架构的发展方向也更加明确。理解这些趋势可以帮助开发者和企业在技术演进中抢占先机。首先是边缘无服务器计算的兴起。传统的无服务器架构主要运行在集中化的云数据中心,而边缘无服务器计算将计算资源分布到用户附近的边缘节点。这种模式显著降低了延迟,特别适合实时应用场景,如物联网、增强现实(AR)和智能家居设备。AWS
用DevEco Studio模拟器这些能力 没真机也能高效调测鸿蒙原生应用
harmonyos
随着鸿蒙生态的快速发展,越来越多的开发者投身于鸿蒙原生应用的开发中。然而,在实际开发中,真机设备短缺、调测场景复杂等问题常困扰着开发者。为解决这些问题,华为在DevEcoStudio上为开发者提供了模拟器(Emulator)功能,帮助开发者在真机匮乏或无真机时,高效且低成本地完成应用开发与调试。该模拟器不仅能模拟鸿蒙手机、折叠屏、平板等真实设备的基本功能,更具备丰富的场景化模拟能力,与真机调试相比
java 代码走查_java代码走查计划书
沙鸥123
java 代码走查
《java代码走查计划书》由会员分享,可在线阅读,更多相关《java代码走查计划书(8页珍藏版)》请在人人文库网上搜索。1、WATERCorporation代码走查计划书Version2.0XXX2012/3/20文档修改记录版本号主要作者修改记录完成日期1.0无2010-03-181.1待评审物2010-03-181.2评审流程2010-03-192.0人员分工、评审流程2010-03-20目录
Arthas使用使用方法
小秋蜀黍
大容量性能问题分析 性能优化
一、Arthas简介可以用来快速定位java程序使用中的问题,查看程序运行过程中的各种信息。相对于之前jvm命令方式的定位方式,主要有以下特性:1)对源程序无侵入性,不需要重启或修改源码2)交互式命令行操作方式,方便使用3)功能丰富,对jvm各种性能,class信息等都能做到分析二、安装启动1、将下载的软件传入需要分析的服务容器中解压,然后执行java-jararthas-boot.jar命令运行
Boss直聘-AI行业岗位与薪资水平调研
姚瑞南
AI行业资讯 AI行业产品调研 人工智能 自然语言处理 AIGC 经验分享 笔记
2022年6月更渠道公司职位名称职位类型薪资水平是否要求PMP证书JDboss直聘字节跳动智能服务运营专家运营25-50K*15薪无智能IM机器人转人工、解决率指标提升boss直聘唯品会AI产品经理PM35-65K*14薪无智能产品规划与设计、数据分析、行业调研、推动项目、协同作业boss直聘京东智能机器人产品运营运营20-40K*15薪无智能客服机器人运营boss直聘字节跳动AI训练技术项目经理
轻松上手:2025年无服务器架构教程
zxzy_org
serverless 架构 云原生 算法
无服务器架构(ServerlessArchitecture)已经成为2025年云计算领域的重要趋势之一。与传统服务器架构不同,无服务器架构让开发者专注于代码本身,而无需管理底层的服务器硬件或操作系统。这种架构的核心理念是按需计算,用户仅需为实际使用的资源付费。对于初学者来说,无服务器架构的主要优势在于它的易用性和高效性。首先,开发者无需担心服务器的部署和运维工作,这大大减少了学习曲线。以AWSLa
Playwright——爬取潘茄小说
花花 Show Python
python Playwright 网络爬虫
fromplaywright.sync_apiimportsync_playwright#导入Playwright同步API,用于浏览器自动化#使用上下文管理器启动Playwright,并确保资源正确释放withsync_playwright()asp:#创建一个Chromium浏览器实例,默认以无头模式运行(没有图形界面)browser=p.chromium.launch()#在当前浏览器上下文
哈希表(C语言版)
coding_rui
数据结构与算法 C语言 散列表 c语言 数据结构
文章目录哈希表原理实现(无自动扩容功能)代码运行结果分析应用哈希表如何统计一段文本中,小写字母出现的次数?显然,我们可以用数组inttable[26]来存储每个小写字母出现的次数,而且这样处理,效率奇高。假如我们想知道字母’k’出现的次数,直接访问元素table['k'-'a']即可,时间复杂度为O(1)。在现实生活中,我们经常需要存储键值对(key-value)数据,比如上面的‘a’:10,‘b
云贝餐饮最新v3全开源独立版源码
kaui52066
php python java 开源 开源软件
云贝餐饮v3连锁独立版本全新UI后台运营独立版无bug最新适配头像昵称接口有视频安装教程安装环境:PHP8.0MySQL5.6-5.7
Java每日精进·45天挑战·Day14
云朵大王
开发语言 算法
第一部分:逆波兰表达式求值在编程中,逆波兰表达式(ReversePolishNotation,RPN)是一种后缀表达式,它的特点是将运算符写在操作数的后面。这种表达式形式在处理算术运算时具有许多优点,尤其是它非常适合使用栈数据结构来进行求值。今天,我们将通过Java代码来实现一个逆波兰表达式的求值器。逆波兰表达式的优点无括号表达式无歧义:在逆波兰表达式中,由于运算符始终写在操作数的后面,因此即使去
C语言【基础篇】之函数——开启模块化开发的钥匙
EnigmaCoder
c c语言 开发语言 学习
目录前言函数基础什么是函数?函数的语法结构函数的声明与定义头文件(.h)与源文件(.c)的分工为什么需要函数原型?️参数传递机制值传递vs.指针传递修改外部变量的方法返回值与void类型如何返回多个值无返回值函数的应用场景函数进阶⚙️递归函数递归原理与终止条件递归的优缺点✍️函数指针定义与赋值应用场景函数的作用域与生命周期变量的作用域规则static关键字的作用头文件与多文件编程#ifndef方
为一位经验丰富的程序员量身定制Python学习路线 人工智能首选语言:python Python新技术
小黄人软件
chatGPT python 学习 人工智能
人工智能首选语言:python必学。解释型语言(无编译这个环节),直接执行代码,面向对象,脚本语言没基础在这里学为一位经验丰富的程序员量身定制Python学习路线,主要应关注于深化已有的编程知识和技能,并探索Python特有的高级特性。以下是推荐的学习路线:基础复习:如果对Python基础不熟悉,先从Python的基础语法、数据类型、控制流程等开始复习。高级语言特性:深入理解装饰器、上下文管理器、
从 size_t 到面试官的微笑:我的 C++ 面试历险记
Vitalia
C/C++ # 面试经验 c++ 面试 C
面试复盘之前面试遇到一些很好玩的事情,也学到了很多知识,积累了很多经验。某中厂面试的虚拟表演的第三轮:有一道题我用了经典for循环,大概这样:vectorarr={0,1,2);for(inti=0;i=0;i--){//xxxxxxxx}然后就搞笑了,超时,循环退不出来了。我一拍脑门,size_t是无符号类型诶,赶紧改成int,然后美滋滋。面试官一脸冷漠看完全程,说:我不会C++,也不知道你说的
C语言-note004
CSDNy666999
c语言 开发语言
1.内存函数1-1memcpy内存拷贝memcpy(参数1【目的】,参数2【源】,参数3【无符号整型】)memcpy函数不能用来处理重叠的内存空间的数据拷贝使用memmove实现重叠内存空间的数据拷贝void*memcpy(void*dest,constvoid*src,size_tnum){}void*:通用类型指针1-2memmove内存拷贝分两种情况拷贝:(1)从前向后拷贝destsrc示例
桌面上有多个球在同时运动,怎么实现球之间不交叉,即碰撞?
换个号韩国红果果
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