日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【洛谷P2743】【poj 1743】[USACO5.1]乐曲主题Musical Themes

發布時間:2023/12/2 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【洛谷P2743】【poj 1743】[USACO5.1]乐曲主题Musical Themes 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目
還是板子題
因為旋律會同時加減一個數,所以我們在差分數組上做就好了
注意因為差分了,跨越的個數要少一個
基數排序循環寫反了,調了好久
qwq

/* @Date : 2019-07-19 10:17:22 @Author : Adscn (adscn@qq.com) @Link : https://www.cnblogs.com/LLCSBlog */ #include<bits/stdc++.h> using namespace std; #define IL inline #define RG register #define gi getint() #define gc getchar() #define File(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout) IL int getint() {RG int xi=0;RG char ch=gc;bool f=0;while(ch<'0'|ch>'9')ch=='-'?f=1:f,ch=gc;while(ch>='0'&ch<='9')xi=(xi<<1)+(xi<<3)+ch-48,ch=gc;return f?-xi:xi; } template<typename T> IL void pi(T k,char ch=0) {if(k<0)k=-k,putchar('-');if(k>=10)pi(k/10,0);putchar(k%10+'0');if(ch)putchar(ch); } const int N=2e5+7; int n; int a[N]; namespace SA{int rkx[N],rky[N],rank[N],sa[N],*key1=rkx,*key2=rky;int height[N];int cnt[N],m=380;inline void init(){m=380;}inline void Qsort(){memset(cnt,0,sizeof cnt);for(int i=1;i<=n;++i)++cnt[key1[i]];for(int i=1;i<=m;++i)cnt[i]+=cnt[i-1];for(int i=n;i>=1;--i)sa[cnt[key1[key2[i]]]--]=key2[i];}inline void getsa(){key1=rkx,key2=rky;for(int i=1;i<=n;++i)key1[i]=a[i],key2[i]=i;Qsort();for(int k=1,p=0;p<n;k<<=1,m=p){p=0;for(int i=n-k+1;i<=n;++i)key2[++p]=i;for(int i=1;i<=n;++i)if(sa[i]>k)key2[++p]=sa[i]-k;Qsort();swap(key1,key2);p=key1[sa[1]]=1;for(int i=2;i<=n;++i)key1[sa[i]]=(key2[sa[i-1]]==key2[sa[i]]&&key2[sa[i-1]+k]==key2[sa[i]+k])?p:++p;}for(int i=1;i<=n;++i)rank[sa[i]]=i;}inline void getheight(){for(int i=1,k=0;i<=n;++i){if(k)--k;int s=sa[rank[i]-1];while(a[s+k]==a[i+k])++k;height[rank[i]]=k;}} } using namespace SA; int check(int mid) {int mx=sa[1],mn=sa[1];for(int i=2;i<=n;++i)if(height[i]<mid)mx=mn=sa[i];else{mn=min(sa[i],mn),mx=max(sa[i],mx);if(mx-mn>mid)return 1;}return 0; } int main(void) {while(~scanf("%d",&n)){if(n==0)break;for(int i=1;i<=n;++i)a[i]=gi;--n;for(int i=1;i<=n;++i)a[i]=a[i+1]-a[i]+90;init();getsa();getheight();int l=0,r=n,ans;while(l<=r){int mid=(l+r)>>1;if(check(mid))ans=mid,l=mid+1;else r=mid-1;}printf("%d\n",ans<4?0:ans+1);return 0;}return 0; }

轉載于:https://www.cnblogs.com/LLCSBlog/p/11214084.html

總結

以上是生活随笔為你收集整理的【洛谷P2743】【poj 1743】[USACO5.1]乐曲主题Musical Themes的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。