4355: Play with sequence
Time Limit: 10 Sec Memory Limit: 128 MB Submit: 300 Solved: 91 [Submit][Status][Discuss]
Description
维护一个长度为N的序列a,现在有三种操作:
1)给出参数U,V,C,将a[U],a[U+1],...,a[V-1],a[V]都赋值为C。
2)给出参数U,V,C,对于区间[U,V]里的每个数i,将a[i]赋值为max(a[i]+C,0)。
3)给出参数U,V,输出a[U],a[U+1],...,a[V-1],a[V]里值为0的数字个数。
Input
第一行包含两个正整数N,M(1<=N,M<=300000),分别表示序列长度和操作个数。
第二行包含N个整数,其中第i个数表示a[i](0<=a[i]<=10^9),描述序列的初始状态。
接下来M行描述M个操作,保证1<=U<=V<=N,对于操作1,0<=C<=10^9,对于操作2,|C|<=10^9。
Output
输出若干行,每行一个整数,依次回答每个操作3的问题。
Sample Input
5 3 6 4 6 6 4 2 1 5 -5 1 3 4 4 3 1 5
Sample Output
2
HINT
2016.1.1新加数据
Source
鸣谢Claris
[Submit][Status][Discuss]
推荐一篇博客。
大佬的博客!!!点点点!!!
类似题: hdu 5306
代码:
#include
#define lson (i<<1)
#define rson (i<<1|1)
using namespace std;
typedef long long ll;
const ll inf =1e17+5;
const int N =3e5+5;
ll a[N];
struct node
{
ll mn,cmn;
ll cnt;
ll lz;
ll cov;
ll add;
int l,r;
}tr[N<<2];
void solve(int i,ll cov)
{
int l,r; l=tr[i].l; r=tr[i].r;
tr[i].mn=cov;
tr[i].cnt=r-l+1;
tr[i].cmn=inf;
tr[i].lz=-inf;
tr[i].add=0;
tr[i].cov=cov;
return ;
}
void solve1(int i,ll add)
{
int l,r; l=tr[i].l; r=tr[i].r;
tr[i].mn+=add;
if(tr[i].cmn!=inf) tr[i].cmn+=add;
if(tr[i].lz!=-inf ) tr[i].lz+=add;
if(tr[i].cov!=inf ) tr[i].cov+=add;
else tr[i].add+=add;
}
void solve2(int i,ll lz)
{
if(lz>tr[i].mn){ //如果当前的lz大于当前的最小值
//那么要更新当前的最小值为lz 因为是push_down
tr[i].lz=lz;
tr[i].mn=lz;
}
}
void push_up(int i)
{
tr[i].mn=min(tr[lson].mn,tr[rson].mn);
if(tr[lson].mn==tr[rson].mn){
tr[i].cnt=tr[lson].cnt+tr[rson].cnt;
tr[i].cmn=min(tr[lson].cmn,tr[rson].cmn);
}
else if(tr[lson].mn>1;
build(lson,l,mid);
build(rson,mid+1,r);
push_up(i);
}
void add(int i,int l,int r,ll val)
{
//cout<<"i "<<" l "< >1;
push_down(i);
if(r<=mid) add(lson,l,r,val);
else if(l>mid) add(rson,l,r,val);
else{
add(lson,l,mid,val);
add(rson,mid+1,r,val);
}
push_up(i);
return ;
}
void cover(int i,int l,int r,ll val)
{
if(tr[i].l==l&&tr[i].r==r){
solve(i,val);
return ;
}
int mid=(tr[i].l+tr[i].r)>>1;
push_down(i);
if(r<=mid) cover(lson,l,r,val);
else if(l>mid) cover(rson,l,r,val);
else{
cover(lson,l,mid,val);
cover(rson,mid+1,r,val);
}
push_up(i);
}
void upmax(int i,int l,int r,ll val)
{
if(tr[i].l==l&&tr[i].r==r){
if(tr[i].mn>=val) return ;
if(tr[i].cmn>val){
tr[i].mn=val;
tr[i].lz=val;
return ;
}
}
int mid=(tr[i].l+tr[i].r)>>1;
push_down(i);
if(r<=mid) upmax(lson,l,r,val);
else if(l>mid) upmax(rson,l,r,val);
else{
upmax(lson,l,mid,val);
upmax(rson,mid+1,r,val);
}
push_up(i);
}
ll ans;
void query(int i,int l,int r)
{
if(tr[i].l==l&&tr[i].r==r){
if(tr[i].mn==0) ans+=tr[i].cnt;
return ;
}
int mid=(tr[i].l+tr[i].r)>>1;
push_down(i);
if(r<=mid) query(lson,l,r);
else if(l>mid) query(rson,l,r);
else{
query(lson,l,mid);
query(rson,mid+1,r);
}
push_up(i);
}
int n,m;
int main()
{
int op,l,r;
ll val;
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
build(1,1,n);
while(m--)
{
scanf("%d %d %d",&op,&l,&r);
if(op==1){
scanf("%lld",&val);
cover(1,l,r,val);
}
else if(op==2){
scanf("%lld",&val);
//cout<<"*** "<
你可能感兴趣的:(线段树)
【封印宝石——线段树】
Kent_J_Truman
蓝桥杯 算法
题目分析封印宝石题解https://www.acwing.com/solution/content/261922/代码#includeusingnamespacestd;usingpll=pair;#definexfirst#defineysecondconstintN=1e5+10;structnode{intl,r;intv1,v2;inti1,i2;}tr[4*N];intn,k,a[N],
一些关于数据结构的杂谈
超闻逸事
算法 c++ 算法 笔记 数据结构
树链剖分P3384【模板】轻重链剖分/树链剖分作用维护树上路径的相关信息。常与线段树相结合。性质所有节点都属于且仅属于一条重链,重链将树完全剖分。重链与子树内的dfs\texttt{dfs}dfs序连续。【这一个性质非常有用】每一条路径最多被拆分成logn\lognlogn条重链(向下经过一条轻边时,子树大小至少除以222)。一些定义f[x]节点xxx的父亲。sz[x]节点xxx对应的子树大小。
Leetcode3165:不包含相邻元素子序列的最大和
ʚ发什么呆^ɞ
算法 数据结构
代码思路这段代码实现了一个特殊类型的线段树(SegmentTree),用于解决一类特定的动态规划问题,具体来说,是求解一系列更新操作后,一个特定子序列和的最大值问题。这里的子序列和受到一些特定的约束条件影响,这些条件通过线段树的节点(SegNode)中的四个值(v00,v01,v10,v11)来体现。以下是对代码思路的详细解释:数据结构定义SegNode结构体:包含四个longlong类型的成员变
XVIII Open Cup named after E.V. Pankratiev. GP of Urals
weixin_33738578
ui
A.Nutella’sLife斜率优化DP显然,CDQ分治后按$a$排序建线段树,每层维护凸包,查询时不断将队首弹出即可。时间复杂度$O(n\log^2n)$。#include#includeusingnamespacestd;typedeflonglongll;typedefpairP;constintN=100010,M=262150;intn,i,a[N],cb;llf[N],g[N],w[
Nutella’s Life-斜率优化+线段树
bensanhuan
题解 动态规划 数据结构
如有疏漏错误之处,请多指教题意codeforce.com发布了未来一年的比赛列表。未来一年将会有n(1≤n≤105)n(1\leqn\leq10^{5})n(1≤n≤105)场比赛。小红为每场比赛计算了一个快乐值a[i](10−9≤a[i]≤109)a[i](10^{-9}\leqa[i]\leq10^{9})a[i](10−9≤a[i]≤109)。小红参加比赛的规则和快乐值获取规则如下:如果小红
深入解析线段树-构建原理与区间查询优化
一键难忘
算法之翼 算法 线段树 动态规划 宽度优先 深度优先
本文收录于专栏:算法之翼深入解析线段树-构建原理与区间查询优化线段树(SegmentTree)是一种高级数据结构,常用于处理区间查询与动态更新问题。在许多应用中,例如数组的区间和查询,区间最值查询,线段树都能够提供高效的解决方案。本文将深入探讨线段树的构建原理,并结合实际代码示例,讨论如何优化区间查询。1.线段树的基本原理线段树是一棵二叉树,每个节点对应数组的一个区间。叶节点存储数组的单个元素,内
线段树知识点总结和学习心得分享
GA_PK
线段树主要用来维护复杂的区间信息.只要满足区间可加性,线段树基本都可以解决.1.线段树基本操作(单点更新,区间求和等不涉及lazy标记问题)先来讲建树问题,线段树建树有很多种方法,本文介绍的是把一个区间划分成为[l,mid],[mid+1,r]的建树方法.我们会把一个大区间分成若干个小区间,tree[1]是表示整个大区间.把它分成两个小区间.用下标tree[2×father],tree[2×fat
7.3.6 蓝桥杯基础数据结构之线段树维护哈希
夏驰和徐策
蓝桥杯 哈希算法 数据结构 蓝桥杯 线段树
7.3.6蓝桥杯基础数据结构之线段树维护哈希引言在编程竞赛和算法设计中,线段树是处理区间问题的强大工具。结合哈希,线段树可以高效地处理字符串和其他序列数据的复杂查询。本文将探讨如何在蓝桥杯等编程竞赛中使用线段树维护哈希值。基础概念线段树线段树是一种二叉树结构,用于高效处理区间相关的查询和更新操作。它将一个区间分割成更小的子区间,使得对这些子区间的操作更加高效。哈希哈希在处理字符串和序列数据时尤为重
模板分享:线段树(1)
pystraf
数据结构与算法 # 数据结构 算法 数据结构 c++ 线段树
Code先放代码templatestructsegment{private:#definels(u*2+1)#definers(u*2+2)structNode{intl,r;Infoinfo;};vectortr;public:usinginfo_type=Info;segment(){}segment(intn,Infov=Info()){vectora(n,v);init(a);}templ
模板分享:线段树(2)
pystraf
数据结构与算法 # 数据结构 c++ 算法 数据结构 线段树
Code先放代码:#include#includeusingnamespacestd;templatestructlazy_segment{private:#definels(u*2+1)#definers(u*2+2)structNode{intl,r;Infoinfo;Tagtag;};vectortr;public:usinginfo_type=Info;usingtag_type=Tag;
洛谷P3372 【模板】线段树 1
xwztdas
数据结构
洛谷题目传送门题目描述如题,已知一个数列,你需要进行下面两种操作:将某区间每一个数加上k。求出某区间每一个数的和。输入格式第一行包含两个整数,,分别表示该数列数字的个数和操作的总个数。第二行包含个用空格分隔的整数,其中第个数字表示数列第项的初始值。接下来行每行包含3或4个整数,表示一个操作,具体如下:1xyk:将区间[,]内每个数加上k。2xy:输出区间[,]内每个数的和。输出格式输出包含若干行整
「分块」数列分块入门1 – 9 by hzwer 解题记录
GA_PK
出处学习蓝书的时候感觉书上关于分块的题目太少了.而且都是难度较大的一些分块题目,想巩固一下分块方面的知识,就找到了hzwer大佬的分块入门知识介绍.用这篇博客记录一下.从树状数组到线段树再到分块.都是对区间信息的快速处理来达到想要的效果.树状数组效率最优,可是拓展性实在不高.线段树效率稍微差一点但是拓展性较好,可是在信息不满足区间可加性的情况下代码难度会高很多.而分块效率上最差但是可以接受,且拓展
洛谷 P3372:线段树 1 ← 分块算法模板(区间更新、区间查询)
hnjzsyjyj
信息学竞赛 # 分治算法与双指针 分块
【题目来源】https://www.luogu.com.cn/problem/P3372【题目描述】如题,已知一个数列,你需要进行下面两种操作:(1)将某区间每一个数加上k。(2)求出某区间每一个数的和。【输入格式】第一行包含两个整数n,m,分别表示该数列数字的个数和操作的总个数。第二行包含n个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来m行每行包含3或4个整数,表示一个操作,具
分块算法详解
justin666888
C++ 数据结构 C++算法 数据结构 关键字 数据结构 算法
分块算法详解一.啥是分块二.分块的操作1.分组2.区间加法&单点查询3.区间加法&询问区间内小于某个值x的元素个数4.区间求和&区间加法5.区间开方&区间求和6.单点插入&单点询问7.区间加法&区间前驱8.区间乘法&区间加法&单点询问9.区间某值个数&区间赋值10.区间众数三.分块算法时间复杂度分析1.时间复杂度2.万恶的卡常四.分块算法与线段树对比五.例题一.啥是分块分块,顾名思义,就是把一个东
最好的线段树总结
QYitong
数据结构 c语言 ACM 数据结构线段树
线段树详解By岩之痕目录:一:综述二:原理三:递归实现四:非递归原理五:非递归实现六:线段树解题模型七:扫描线八:可持久化(主席树)九:练习题一:综述假设有编号从1到n的n个点,每个点都存了一些信息,用[L,R]表示下标从L到R的这些点。线段树的用处就是,对编号连续的一些点进行修改或者统计操作,修改和统计的复杂度都是O(log2(n)).线段树的原理,就是,将[1,n]分解成若干特定的子区间(数量
[线段树(猫树)] 最大连续和
Jcqsunny
算法 c++ 线段树 猫树
题目描述给出一个含有NNN个结点的环,编号分别为1…N1\ldotsN1…N,环上的点带有权值(可正可负),现要动态的修改某个点的权值,求每次修改后环上的最大连续和,但不能是整个序列的和。输入格式第一行为一个整数NNN。第二行为NNN个用空格分开的整数。第三行为一个整数M(4≤M≤100000)M(4\leM\le100000)M(4≤M≤100000),表示修改的次数(绝对值小于等于100010
归并排序(Ologn)及其应用(求逆序对)+例题(后续仍有补充)
万般算法皆思想
这几天一直在看lrj紫书的归并排序部分,刚开始连递归都看不懂,,现在已经完全理解了,写这个bolg就是为了记录一下板子,方便以后进行记忆唤醒。之后陆续还会学习补充树状数组和线段树,这三者其实都是二分思想的应用,最关键的不是记住这个板子,而是能够理解其中的思想。归并排序又是分治法的一种应用,分为分和治两部分。分即为根据递归,将数组一直划分到只剩两个元素的时候,这个时候问题就很简单了,而治又是从两个元
在 MoonBit 实现线段树(二)
编程语言
引言在上一篇文章当中我们讨论了最基础线段树的实现,但那棵线段树只能做到区间的查询(当然单点的修改与查询也是可以的),但做不到区间的修改(一个经典的应用是区间加法,即整个区间都加上某个值)。在本节当中我们将基于上次的线段树继续加深抽象,引入LazyTag的概念来解决区间修改的问题,完成一棵功能基本完备的线段树。怎么做到区间修改?先设想如果我们在线段树上给一个区间都加上某个数会发生什么?或者换种说法,
编程实践|用 MoonBit 实现线段树(一)
编程语言
引言线段树(SegmentTree)是一种常见的数据结构,用于解决一些线性区间的修改、查询问题,比如对于问题:给出一个长度已知的、有初值的数字数组,接下来要进行许多区间加法操作(将一个区间的数值都加上某个值)和区间求和操作(求该区间数值的和并输出)如果该问题使用正常的数组方式来遍历求解,假设该数组长度为N,每次修改和查询的操作耗时是O(N)的;但线段树经过O(NlogN)的构建之后,可以对上述两个
BZOJ 五月胡乱补题
nike0good
其他 屯题 bzoj 博客补档
旧博客搬运部分格式还没来得及改T_T【BZOJ4806:炮】同BZOJ1801【BZOJ3242:[Noi2013]快餐店】树形dp,要么最远点在同一颗树上(dp),要么在不同树上,此时答案=去掉任何一条边后形成的树的答案的最小值,我们枚举去掉的那条边。由于答案=s[i]-s[j]+dis[i]+dis[j],i,j可以分开考虑,也可以用线段树解决。【BZOJ4878:[Lydsy2017年5月月
线段树(模板)
数学收藏家
线段树
#includeusingnamespacestd;#defineintlonglong#defineendl'\n'#defineIOSios::sync_with_stdio(false);cin.tie(0);cout.tie(0);#definemaxn100005intn,q;inta[maxn];structnode{intval,lazy;}s[maxn*4];voidpush_up
CCF-CSP认证考试(第32次)总结+题解
Romanticroom
算法
总结:这一次我选了时间较近的一次进行练习,结果有点悲,前两题就一个质因数分解还好,第三题我走了弯路,想通过类似线段树的手段处理,结果还差了系数,最后一个点tle了。。。第四题直接放弃了。。(太菜,没脸见人)第五题还抱有幻想,当然也只有幻想。。后两题只能打暴力了,以我现在水平,希望努力一个月能有所改变吧。题解:(这里只给到三题题解,再往后我也不会了。。)题一:仓库规划西西艾弗岛上共有n个仓库,依次编
数据结构入门(5)——树与二叉树的应用
Dusk Cteator
高级语言程序设计 数据结构 笔记 数据结构 算法 霍夫曼树 二叉树 c++
数据结构入门——树与二叉树的应用文章目录数据结构入门——树与二叉树的应用前言一、压缩与哈夫曼树扩充二叉树哈夫曼算法哈夫曼算法基本思想哈夫曼算法哈夫曼编码二、表达式树如何构造表达式二叉树计算表达式二叉树对应的值三、并查集并查集的实现四、初探线段树与树状数组线段树线段树操作树状数组定义操作树状数组和线段树前言本系列文章将简要介绍数据结构课程入门知识,文章将结合我们学校(吉大)数据结构课程内容进行讲述。
线段树
Cheng Yu
线段树 线段树
基础知识1、线段树是二叉树,且必定是平衡二叉树,但不一定是完全二叉树。2、对于区间[L,R],令mid=(L+R)/2,则其左子树为[L,mid],右子树为[mid+1,R],当L==R时,该区间为线段树的叶子,无需继续往下划分。3、线段树虽然不是完全二叉树,但是可以用完全二叉树的方式去构造并存储它,只是最后一层可能存在某些叶子与叶子之间出现“空叶子”,这个无需理会,同样给空叶子按顺序编号,在遍历
【详解】线段树
CH_Vaniteux
详解 数据结构 线段树
线段树详解By岩之痕目录:一:综述二:原理三:递归实现四:非递归原理五:非递归实现六:线段树解题模型七:扫描线八:可持久化(主席树)九:练习题一:综述假设有编号从1到n的n个点,每个点都存了一些信息,用[L,R]表示下标从L到R的这些点。线段树的用处就是,对编号连续的一些点进行修改或者统计操作,修改和统计的复杂度都是O(log2(n)).线段树的原理,就是,将[1,n]分解成若干特定的子区间(数量
CF 967 D. Longest Max Min Subsequence
Jiu-yuan
算法 数据结构
原题链接:Problem-D-Codeforces题意:多测,每次给出长度为n的数组,要求找出没有重复元素的,最长的子序列,如果不止一个最长子序列,那么就选择字典序最小的,比较字典序的时候,如果这个元素的下标是奇数,那么就变成负数比较。思路:线段树+贪心,观察题意可知,最终的子序列肯定是正负相间的,那么对于奇数位置,这个数越大越好,对于偶数位置,这个数越小越好。那么就可以贪心的考虑这个问题,设置二
E. Linear Kingdom Races
Lanthanmum
算法 数据结构 动态规划
https://codeforces.com/problemset/problem/115/E线段树优化dpO(n2)->O(nlogn)分析题意发现可以有暴力dpdp(i)是前i条路最大利润dp(i)=dp(i-1)不选第i条路dp(i)=max(dp(j)+val(j)-cost(j))选这i条路dp(i)=max(dp(i-1),max(dp(j)+val(j)-cost(j))显然右边值可
c语言专属英语单词,C语言 V 编程英语单词.doc
时间还早
c语言专属英语单词
编程词汇英汉对照DataStructures基本数据结构Dictionaries字典PriorityQueues堆GraphDataStructures图SetDataStructures集合Kd-Trees线段树NumericalProblems数值问题SolvingLinearEquations线性方程组BandwidthReduction带宽压缩MatrixMultiplication矩阵乘
牛客竞赛数据结构专题班树状数组、线段树练习题
Landing_on_Mars
# 线段树 数据结构 算法
牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJG智乃酱的平方数列(线段树,等差数列,多项式)题目描述想必你一定会用线段树维护等差数列吧?让我们来看看它的升级版。请你维护一个长度为5×10^5的数组,一开始数组中每个元素都为0,要求支持以下两个操作:1、区间[l,r]加自然数的平方数组,即al+=1,al+1+=4,al+2+=9,al+3+=16...ar+
主席树求区间第K小模板
Stephen_Curry___
算法 c++ 数据结构 主席树
主席树(PresidentTree)是一种用于解决区间查询和修改问题的数据结构,通常用于静态区间问题(即查询和修改操作在构建结构之后不再发生变化)。主席树可以高效地处理诸如区间和、区间最值等问题。主席树的实现原理:基本思想:主席树是一种基于分治思想的数据结构,它将原始序列按照每个位置的取值范围进行离散化,然后构建出一棵持久化线段树(PersistentSegmentTree)。持久化线段树:持久化
LeetCode[Math] - #66 Plus One
Cwind
java LeetCode 题解 Algorithm Math
原题链接:#66 Plus One
要求:
给定一个用数字数组表示的非负整数,如num1 = {1, 2, 3, 9}, num2 = {9, 9}等,给这个数加上1。
注意:
1. 数字的较高位存在数组的头上,即num1表示数字1239
2. 每一位(数组中的每个元素)的取值范围为0~9
难度:简单
分析:
题目比较简单,只须从数组
JQuery中$.ajax()方法参数详解
AILIKES
JavaScript jsonp jquery Ajax json
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。
type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持。
timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局
JConsole & JVisualVM远程监视Webphere服务器JVM
Kai_Ge
JVisualVM JConsole Webphere
JConsole是JDK里自带的一个工具,可以监测Java程序运行时所有对象的申请、释放等动作,将内存管理的所有信息进行统计、分析、可视化。我们可以根据这些信息判断程序是否有内存泄漏问题。
使用JConsole工具来分析WAS的JVM问题,需要进行相关的配置。
首先我们看WAS服务器端的配置.
1、登录was控制台https://10.4.119.18
自定义annotation
120153216
annotation
Java annotation 自定义注释@interface的用法 一、什么是注释
说起注释,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。而J2SE5.0中提供的注释就是java源代码的元数据,也就是说注释是描述java源
CentOS 5/6.X 使用 EPEL YUM源
2002wmj
centos
CentOS 6.X 安装使用EPEL YUM源1. 查看操作系统版本[root@node1 ~]# uname -a Linux node1.test.com 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [root@node1 ~]#
在SQLSERVER中查找缺失和无用的索引SQL
357029540
SQL Server
--缺失的索引
SELECT avg_total_user_cost * avg_user_impact * ( user_scans + user_seeks ) AS PossibleImprovement ,
last_user_seek ,
 
Spring3 MVC 笔记(二) —json+rest优化
7454103
Spring3 MVC
接上次的 spring mvc 注解的一些详细信息!
其实也是一些个人的学习笔记 呵呵!
替换“\”的时候报错Unexpected internal error near index 1 \ ^
adminjun
java “\替换”
发现还是有些东西没有刻子脑子里,,过段时间就没什么概念了,所以贴出来...以免再忘...
在拆分字符串时遇到通过 \ 来拆分,可是用所以想通过转义 \\ 来拆分的时候会报异常
public class Main {
/*
POJ 1035 Spell checker(哈希表)
aijuans
暴力求解--哈希表
/*
题意:输入字典,然后输入单词,判断字典中是否出现过该单词,或者是否进行删除、添加、替换操作,如果是,则输出对应的字典中的单词
要求按照输入时候的排名输出
题解:建立两个哈希表。一个存储字典和输入字典中单词的排名,一个进行最后输出的判重
*/
#include <iostream>
//#define
using namespace std;
const int HASH =
通过原型实现javascript Array的去重、最大值和最小值
ayaoxinchao
JavaScript array prototype
用原型函数(prototype)可以定义一些很方便的自定义函数,实现各种自定义功能。本次主要是实现了Array的去重、获取最大值和最小值。
实现代码如下:
<script type="text/javascript">
Array.prototype.unique = function() {
var a = {};
var le
UIWebView实现https双向认证请求
bewithme
UIWebView https Objective-C
什么是HTTPS双向认证我已在先前的博文 ASIHTTPRequest实现https双向认证请求
中有讲述,不理解的读者可以先复习一下。本文是用UIWebView来实现对需要客户端证书验证的服务请求,网上有些文章中有涉及到此内容,但都只言片语,没有讲完全,更没有完整的代码,让人困扰不已。但是此知
NoSQL数据库之Redis数据库管理(Redis高级应用之事务处理、持久化操作、pub_sub、虚拟内存)
bijian1013
redis 数据库 NoSQL
3.事务处理
Redis对事务的支持目前不比较简单。Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。当一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中
各数据库分页sql备忘
bingyingao
oracle sql 分页
ORACLE
下面这个效率很低
SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_FS_RETURN order by id desc) A ) WHERE RN <20;
下面这个效率很高
SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_
【Scala七】Scala核心一:函数
bit1129
scala
1. 如果函数体只有一行代码,则可以不用写{},比如
def print(x: Int) = println(x)
一行上的多条语句用分号隔开,则只有第一句属于方法体,例如
def printWithValue(x: Int) : String= println(x); "ABC"
上面的代码报错,因为,printWithValue的方法
了解GHC的factorial编译过程
bookjovi
haskell
GHC相对其他主流语言的编译器或解释器还是比较复杂的,一部分原因是haskell本身的设计就不易于实现compiler,如lazy特性,static typed,类型推导等。
关于GHC的内部实现有篇文章说的挺好,这里,文中在RTS一节中详细说了haskell的concurrent实现,里面提到了green thread,如果熟悉Go语言的话就会发现,ghc的concurrent实现和Go有点类
Java-Collections Framework学习与总结-LinkedHashMap
BrokenDreams
LinkedHashMap
前面总结了java.util.HashMap,了解了其内部由散列表实现,每个桶内是一个单向链表。那有没有双向链表的实现呢?双向链表的实现会具备什么特性呢?来看一下HashMap的一个子类——java.util.LinkedHashMap。
读《研磨设计模式》-代码笔记-抽象工厂模式-Abstract Factory
bylijinnan
abstract
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* Abstract Factory Pattern
* 抽象工厂模式的目的是:
* 通过在抽象工厂里面定义一组产品接口,方便地切换“产品簇”
* 这些接口是相关或者相依赖的
压暗面部高光
cherishLC
PS
方法一、压暗高光&重新着色
当皮肤很油又使用闪光灯时,很容易在面部形成高光区域。
下面讲一下我今天处理高光区域的心得:
皮肤可以分为纹理和色彩两个属性。其中纹理主要由亮度通道(Lab模式的L通道)决定,色彩则由a、b通道确定。
处理思路为在保持高光区域纹理的情况下,对高光区域着色。具体步骤为:降低高光区域的整体的亮度,再进行着色。
如果想简化步骤,可以只进行着色(参看下面的步骤1
Java VisualVM监控远程JVM
crabdave
visualvm
Java VisualVM监控远程JVM
JDK1.6开始自带的VisualVM就是不错的监控工具.
这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到界面
通过JMX连接远程机器, 需要经过下面的配置:
1. 修改远程机器JDK配置文件 (我这里远程机器是linux).
 
Saiku去掉登录模块
daizj
saiku 登录 olap BI
1、修改applicationContext-saiku-webapp.xml
<security:intercept-url pattern="/rest/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern=&qu
浅析 Flex中的Focus
dsjt
html Flex Flash
关键字:focus、 setFocus、 IFocusManager、KeyboardEvent
焦点、设置焦点、获得焦点、键盘事件
一、无焦点的困扰——组件监听不到键盘事件
原因:只有获得焦点的组件(确切说是InteractiveObject)才能监听到键盘事件的目标阶段;键盘事件(flash.events.KeyboardEvent)参与冒泡阶段,所以焦点组件的父项(以及它爸
Yii全局函数使用
dcj3sjt126com
yii
由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。例如,Yii::app()->user;Yii::app()->params['name'];等等。我们可以自行设定全局函数,使得代码看起来更加简洁易用。(原文地址)
我们可以保存在globals.php在protected目录下。然后,在入口脚本index.php的,我们包括在
设计模式之单例模式二(解决无序写入的问题)
come_for_dream
单例模式 volatile 乱序执行 双重检验锁
在上篇文章中我们使用了双重检验锁的方式避免懒汉式单例模式下由于多线程造成的实例被多次创建的问题,但是因为由于JVM为了使得处理器内部的运算单元能充分利用,处理器可能会对输入代码进行乱序执行(Out Of Order Execute)优化,处理器会在计算之后将乱序执行的结果进行重组,保证该
程序员从初级到高级的蜕变
gcq511120594
框架 工作 PHP android html5
软件开发是一个奇怪的行业,市场远远供不应求。这是一个已经存在多年的问题,而且随着时间的流逝,愈演愈烈。
我们严重缺乏能够满足需求的人才。这个行业相当年轻。大多数软件项目是失败的。几乎所有的项目都会超出预算。我们解决问题的最佳指导方针可以归结为——“用一些通用方法去解决问题,当然这些方法常常不管用,于是,唯一能做的就是不断地尝试,逐个看看是否奏效”。
现在我们把淫浸代码时间超过3年的开发人员称为
Reverse Linked List
hcx2013
list
Reverse a singly linked list.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
p
Spring4.1新特性——数据库集成测试
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
C# Ajax上传图片同时生成微缩图(附Demo)
liyonghui160com
1.Ajax无刷新上传图片,详情请阅我的这篇文章。(jquery + c# ashx)
2.C#位图处理 System.Drawing。
3.最新demo支持IE7,IE8,Fir
Java list三种遍历方法性能比较
pda158
java
从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,测试代码例如以下:
package com.hisense.tiger.list;
import java.util.ArrayList;
import java.util.Iterator;
300个涵盖IT各方面的免费资源(上)——商业与市场篇
shoothao
seo 商业与市场 IT资源 免费资源
A.网站模板+logo+服务器主机+发票生成
HTML5 UP:响应式的HTML5和CSS3网站模板。
Bootswatch:免费的Bootstrap主题。
Templated:收集了845个免费的CSS和HTML5网站模板。
Wordpress.org|Wordpress.com:可免费创建你的新网站。
Strikingly:关注领域中免费无限的移动优
localStorage、sessionStorage
uule
localStorage
W3School 例子
HTML5 提供了两种在客户端存储数据的新方法:
localStorage - 没有时间限制的数据存储
sessionStorage - 针对一个 session 的数据存储
之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不