久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1963|回復: 0
收起左側

HDU1711 C++源碼

[復制鏈接]
ID:409739 發表于 2018-10-15 09:47 | 顯示全部樓層 |閱讀模式
HDU1711工程包:
0.png

C++源程序如下:
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <vector>
  4. #include <cstring>
  5. #define MAX 1000100
  6. #define M 10010
  7. using namespace std;
  8. int a[MAX];
  9. int b[M];
  10. int NEXT[M];

  11. class Number_Sequence
  12. {
  13.     int p,len1,len2;
  14. public:
  15.     void initial();
  16.     void read();
  17.     void computing();
  18.     void result();
  19.     void getnext();
  20.     void kmp();
  21. };

  22. void Number_Sequence::initial()
  23. {
  24.     memset(a,0,sizeof(a));
  25.     memset(b,0,sizeof(b));
  26.     memset(NEXT,0,sizeof(NEXT));
  27.     p=-1;
  28. }

  29. void Number_Sequence::read()
  30. {
  31.     scanf("%d%d",&len1,&len2);
  32.     for(int i=0;i<len1;i++)
  33.     {
  34.         scanf("%d",&a[i]);
  35.     }
  36.     for(int i=0;i<len2;i++)
  37.     {
  38.         scanf("%d",&b[i]);
  39.     }
  40. }

  41. void Number_Sequence::getnext()
  42. {
  43.     NEXT[0]=-1;
  44.     int j=0,k=-1;
  45.     while(j<len2)
  46.     {
  47.         if(k==-1||b[j]==b[k])
  48.         {
  49.             if(b[++j]==b[++k])
  50.             {
  51.                 NEXT[j]=NEXT[k];
  52.             }
  53.             else
  54.                 NEXT[j]=k;
  55.         }
  56.         else
  57.             k=NEXT[k];
  58.     }
  59. }

  60. void Number_Sequence::kmp()
  61. {
  62.     int i=0,j=0;
  63.     while(i<len1&&j<len2)
  64.     {
  65.         if(j==-1||a[i]==b[j])
  66.         {
  67.             i++;
  68.             j++;
  69.         }
  70.         else
  71.         {
  72.             j=NEXT[j];
  73.         }
  74.         if(j==len2)
  75.         {
  76.             p=i-j+1;
  77.             break;
  78.         }
  79.     }
  80.     if(j!=len2)
  81.     {
  82.         p=-1;
  83.     }
  84. }

  85. void Number_Sequence::computing()
  86. {
  87.     getnext();
  88.     kmp();
  89. }

  90. void Number_Sequence::result()
  91. {
  92.     cout<<p<<endl;
  93. }

  94. int main()
  95. {
  96.     Number_Sequence ns;
  97.     int cases;
  98.     scanf("%d",&cases);
  99.     for(int i=0;i<cases;i++)
  100.     {
  101.         ns.initial();
  102.         ns.read();
  103.         ns.computing();
  104.         ns.result();
  105.     }
  106.     return 0;
  107. }
復制代碼

所有資料51hei提供下載:
HDU 1711.rar (241.11 KB, 下載次數: 5)


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国户精品久久久久久久久久久不卡 | 中文字幕一区在线观看视频 | 久久日本 | 在线一区二区三区 | 一级黄色录像毛片 | 午夜一级黄色片 | 国产午夜精品理论片a大结局 | 国产91成人| 一区二区三区亚洲精品国 | 国产日韩欧美精品一区二区 | 欧美一区二区视频 | 久久一区精品 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 精品一区av| 婷婷激情综合 | 亚洲精品一区中文字幕乱码 | 日韩精品一区二区三区中文在线 | 欧美高清一区 | 亚洲精品免费观看 | 久久av一区 | 国产日韩一区二区 | 国产色婷婷精品综合在线播放 | 日韩欧美一区在线 | 国产中文视频 | 成人亚洲在线 | 日本精品一区二区三区视频 | 国产在线中文字幕 | 国产美女一区二区三区 | 成人国产在线观看 | 久久久成人免费一区二区 | 秋霞av国产精品一区 | 国产精品久久久久久av公交车 | 久久综合久色欧美综合狠狠 | 日本一道本 | aaaa网站| 在线成人 | 成人福利在线观看 | 伊人电影院av | 日韩视频在线播放 | 日本一本在线 | 精品99久久久久久 |