<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      P1439 【模板】最長公共子序列

      許久沒有刷題,認為一個小學生教練到了普及一等的水平就可以安穩的睡了。孩子們外出上學的夢想湮滅。想傳出去的球又回來了,孩子水平高了很多,我安心的看著他們進步。弊端逐漸顯露,沒有人帶領,他們總是陷入各種迷茫。這種帶領不一定是知識上的,也許就是精神上的,那么我也重新打開兩年前的刷題暫停鍵,陪伴他們一起前行。

      這道題非常神奇。對于一個有著簡單背包、線性動態規劃基礎的中年人來說非常的虐。

      首先,我是這樣寫的。

      #include<iostream>
      #include<cstdio>
      using namespace std;
      int a[100000],b[100000];
      int f[10000][10000];
      int main()
      {
          int n;
          cin>>n;
          for(int i=1;i<=n;i++)
          {
              scanf("%d",&a[i]);
          }
          for(int i=1;i<=n;i++)
          {
              scanf("%d",&b[i]);
          }
          for(int i=1;i<=n;i++)
          for(int j=1;j<=n;j++)
          {
              
              if(a[i]==b[j])
              {
                  f[i][j]=max(f[i][j],f[i-1][j-1]+1);
              }
              else
              {
                  f[i][j]=max(f[i-1][j],f[i][j-1]);
              }
          }
          cout<<f[n][n];
          return 0;
      }

      規規整整的最長公共子序列動態規劃(也苦苦啃了半天)

      提交 50分

      這才關注數據范圍,10^5 ,n^2一定崩。

      于是發奮看題解,了解到離散的方式來處理。

      于是有了這樣的變形,感覺比n^2高效了一些。能看懂這個離散,把公共子序列變為LIS 最長不下降子序列,是看了阮行止大佬的一篇題解

      大佬一語點破夢中人,為了讓自己更清晰,我直接把第二個b數組弄成了一個相對于 a位置信息的數組,這樣只要求b的lis問題就可以了。

      #include<iostream>
      #include<cstdio>
      using namespace std;
      int a[100000],b[100000],map[100000],t,f[100000],ans;
      int main()
      {
          int n;
          cin>>n;
          for(int i=1;i<=n;i++)
          {
              scanf("%d",&a[i]);
              map[a[i]]=i;
          }
          for(int i=1;i<=n;i++)
          {
              scanf("%d",&t);
              b[i]=map[t];
          }
          for(int i=1;i<=n;i++)
          {
              f[i]=1;
              for(int j=1;j<=i-1;j++)
              if(b[i]>b[j])
              {
                  f[i]=max(f[i],f[j]+1);
              }
          }
          for(int i=1;i<=n;i++)
          {
              ans=max(f[i],ans);
          }
          cout<<ans;
      }

      結果還是50分。雖然提高了效率,但是還是n^2

      導彈攔截只得了一半分的鍋又出來了,當時懶得去理解nlogn的算法,總要還。開始看這方面資料LIS nlogn算法

      大佬諄諄教誨的 傳送門  

      有認識一個新的盲區,關于lowerbound和upperbound,再一次百度  另外一個大佬諄諄教誨的 傳送門

      看懂了,AC。未來順便補上導彈攔截的空缺。

      #include<iostream>
      #include<cstdio>
      #include<algorithm>
      using namespace std;
      int a[100000],b[100000],map[100000],t,f[100000],ans,temp[100000];
      int main()
      {
          int n;
          cin>>n;
          for(int i=1;i<=n;i++)
          {
              scanf("%d",&a[i]);
              map[a[i]]=i;
          }
          for(int i=1;i<=n;i++)
          {
              scanf("%d",&t);
              b[i]=map[t];
          }
          int len=0;
          for(int i=1;i<=n;i++)
          {
              if(b[i]>temp[len])
              {
                  temp[++len]=b[i];
                  continue;
              }
              t=upper_bound(temp,temp+len+1,b[i])-temp;
              temp[t]=b[i];
          }
      cout<<len<<endl;
      }

       

      posted @ 2020-06-11 16:13  爆零教練員  閱讀(213)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 成人午夜在线观看刺激| 亚洲熟妇自偷自拍另亚洲| 国产精品久久欧美久久一区| 夜色福利站WWW国产在线视频| 亚洲岛国av一区二区| 日本人妻巨大乳挤奶水免费| 欧美激情一区二区| 亚洲永久精品免费在线看| 国产人妻人伦精品婷婷| 2019国产精品青青草原| 久久综合亚洲色一区二区三区| 日韩乱码人妻无码中文字幕视频| 亚洲精品福利一区二区三区蜜桃 | 国产精品一二区在线观看| 亚洲精品一区二区三区片| 99热门精品一区二区三区无码| 精品人妻码一区二区三区| 日本欧美一区二区三区在线播放 | 久久综合免费一区二区三区 | 国产无遮挡又黄又爽不要vip软件| 色悠悠国产精品免费观看| 无套内射极品少妇chinese| 亚洲乱熟女一区二区三区| 国产玩具酱一区二区三区| 99精品国产中文字幕| 青青草原国产精品啪啪视频| 国产乱码字幕精品高清av| 中国女人熟毛茸茸A毛片| 色综合一本到久久亚洲91| 人妻影音先锋啪啪AV资源| 97久久精品亚洲中文字幕无码| 国产精品久久人妻无码网站一区| 日本一区不卡高清更新二区 | 高清中文字幕国产精品| 国产成人精品中文字幕| 国产精品视频白浆免费视频| 欧美日产国产精品日产| 免费无码又爽又刺激成人| 国产中文字幕精品喷潮| 一本一道av无码中文字幕麻豆| 国内熟妇人妻色在线三级|