跨境建站平台,php外贸网站模板,网站建设及模板使用教程,网站cn和com有什么区别这个题应该算是比较简单的线段树问题吧#xff0c;还可以用RMQ做#xff0c;不过现在还不太熟悉就用线段树做了#xff0c;直接附代码了#xff01; #include stdio.h#define M 50000#define OX 0x7fffffffstruct node{int r,l;int Max,Min;};node elem[4*M50];int… 这个题应该算是比较简单的线段树问题吧还可以用RMQ做不过现在还不太熟悉就用线段树做了直接附代码了 #include stdio.h#define M 50000#define OX 0x7fffffffstruct node{int r,l;int Max,Min;};node elem[4*M50];int num[4*M50],m_max,m_min;int max(int a,int b){if (ab) return a;elsereturn b;}int min(int a,int b){if (ab) return b;elsereturn a;}void creat(int l,int r,int id){ elem[id].ll; elem[id].rr;if (lr){ elem[id].Maxelem[id].Minnum[l];return ; } int mid(lr)1; creat(l,mid,id1); creat(mid1,r,(id1)1); elem[id].Maxmax(elem[id1].Max,elem[(id1)1].Max); elem[id].Minmin(elem[id1].Min,elem[(id1)1].Min);}void sre(int l,int r,int id){if (elem[id].ll elem[id].rr){ m_maxmax(m_max,elem[id].Max); m_minmin(m_min,elem[id].Min);return ; }if (lelem[id1].r){int midmin(r,elem[id1].r); sre(l,mid,id1); }if (relem[(id1)1].l){int midmax(l,elem[(id1)1].l); sre(mid,r,(id1)1); }}int main(){int N,Q;int i,t1,t2; scanf(%d %d,N,Q);for (i1 ; iN ; i) scanf(%d,num[i]); creat(1,N,1);for (i1 ; iQ ; i){ m_max-OX; m_minOX; scanf(%d %d,t1,t2); sre(t1,t2,1);//printf(%d %d %d\n,m_max,m_min,m_max-m_min); printf(%d\n,m_max-m_min); }return0;} 转载于:https://www.cnblogs.com/Soul-ice-ACM/archive/2011/08/12/2136408.html