懷念~廣饒一中 閆立峰


 

這是noip2016的前一天上午,我還是高一的學弟。這次考試結束后,一大批學長就要告別機房,告別高中與代碼為伴的時代,告別我們這群整天很能鬧騰的學弟學妹們。

我讓正值高三的親愛的大神學長ylf給我份st表的代碼,他讓我看他博客,我看不懂,於是就有了以下對話。。。。。。

發往: 閆立峰 ( /wjs6-31)(飛鴿傳書)
時間: 2016-11-18 星期五 10:19:35  (RSA)(封裝)
-------------------------------------
me:那時候的你是不是還年輕啊?代碼寫的這么惡心看不懂。。。
he:......
me:恩恩 一定是的

me:我是看着你長大的,猶記得你高一的時后還是個小孩啥也不懂,還是偉大的我把你帶如了OI的大門,從此你一發不可收拾,成為了眾所周知的廣饒一中ylf大神!!!
he:哎呀你快省省吧 我現在打一份ST表吧
me:╮(╯▽╰)╭這就對了嘛 這才是標准模范好學長啦啦啦!

 

唉,這么快就要分別了,好舍不得他呀。忘不了他對我的幫助,忘不了他對我們那些鼓勵的話。

學哥,加油,你一定可以的,你一定能考上自己心儀的大學!!

以后,不知道你是否會忘記我,但我知道你是我心中最善良的學哥。

學弟在這里默默祝福你了~~~

                                                                                               LRH

                                                                                                2016 11.18

附:不得不加的st表代碼

 

#include<cstdio>
#include<cstring>
#define maxn 50010
using namespace std;
int n,m,a[maxn],A[maxn][25],B[maxn][25],p[maxn];
int init(){
  int x=0,f=1;char s=getchar();
  while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}
  while(s>='0'&&s<='9'){x=x*10+s-'0';s=getchar();}
  return x*f;
}
int max(int x,int y){
  return x>y?x:y;
}
int min(int x,int y){
  return x<y?x:y;
}
void ST(){
  memset(A,-127/3,sizeof(A));
  memset(B,127/3,sizeof(B));
  for(int i=1;i<=n;i++)
  A[i][0]=B[i][0]=a[i];
  for(int j=1;j<=20;j++)
  for(int i=1;i+(1<<j)-1<=n;i++){
  A[i][j]=max(A[i][j-1],A[i+(1<<j-1)][j-1]);
  B[i][j]=min(B[i][j-1],B[i+(1<<j-1)][j-1]);
}
  for(int i=1;i<=n;i++)
  for(int j=0;j<=20;j++)
  if((1<<j)>i){
    p[i]=j-1;break;
  }
}
int QueryA(int l,int r){
  int k=p[r-l+1];
  return max(A[l][k],A[r-(1<<k)+1][k]);
}
int QueryB(int l,int r){
  int k=p[r-l+1];
  return min(B[l][k],B[r-(1<<k)+1][k]);
}
int main()
{
  n=init();m=init();
  for(int i=1;i<=n;i++)
  a[i]=init();
  ST();while(m--){
    int l=init();
    int r=init();
    printf("%d\n",QueryA(l,r)-QueryB(l,r));
  }
  return 0;
}

 

http://www.cnblogs.com/yanlifneg/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM