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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1883|回復: 0
打印 上一主題 下一主題
收起左側

HDU1711 C++源碼

[復制鏈接]
跳轉到指定樓層
樓主
HDU1711工程包:


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)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频在线观看免费 | 91亚洲精品在线 | 一级电影免费看 | 亚洲色图综合 | 日本特黄a级高清免费大片 成年人黄色小视频 | 北条麻妃一区二区三区在线视频 | 久久久久国产一级毛片高清网站 | 美日韩免费 | 久久亚洲一区 | 国产一区二区黑人欧美xxxx | 天天操操| 日韩在线观看精品 | av网站在线播放 | www.午夜| 麻豆久久久久久 | www四虎com| 美女三区| 日韩一区二区免费视频 | 国产欧美在线观看 | 日本精品一区二区三区在线观看视频 | 日韩欧美视频在线 | 免费在线观看成人 | 国产区精品| 一级毛片免费完整视频 | 国产一级电影网 | 中文字幕av亚洲精品一部二部 | 国产高清在线精品一区二区三区 | 久久久久久国产精品 | 亚洲高清视频在线观看 | 国产精品高清在线 | 91精品免费 | 成人国内精品久久久久一区 | 亚洲精品视频在线看 | 91在线观看| 久久久女 | 国产成人免费视频 | 欧美精品欧美精品系列 | 一区二区三区在线电影 | 喷潮网站 | 国产高清视频一区 | 久久久免费 |