#includeusingnamespacestd;unsignedshortcounter_3D[26][26][26]={0};unsignedshortcounter_2D[26][26]={0};unsignedshortcounter_1D[26]={0};charret[1000001]={'\0'};charseq[3]={0};intcnt=0,check[26]={0},check2D" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Timus 1219

系統 2020 0
      
        #include 
      
      
        <
      
      
        iostream
      
      
        >
      
      
        
#include
< fstream >
using namespace std;

unsigned
short counter_3D[ 26 ][ 26 ][ 26 ] = { 0 };
unsigned
short counter_2D[ 26 ][ 26 ] = { 0 };
unsigned
short counter_1D[ 26 ] = { 0 };
char ret[ 1000001 ] = { ' \0 ' };
char seq[ 3 ] = { 0 };


int cnt = 0 ,check[ 26 ] = { 0 }, check2D[ 26 ][ 26 ] = { 0 }, check3D[ 26 ][ 26 ][ 26 ] = { 0 };
char test[ 1000001 ] = { ' \0 ' };

int main() {

/* ofstream fout;
fout.open("output.txt");
*/

int i,p1,p2,p3,j,l1,l2,l3,tmp;
seq[
0 ] = seq[ 1 ] = 0 ;
p1
= 0 ; p2 = 1 ; p3 = 2 ;
ret[
0 ] = ret[ 1 ] = ' a ' ;

counter_2D[seq[
0 ]][seq[ 0 ]] ++ ;
counter_1D[seq[
0 ]] ++ ;
counter_1D[seq[
1 ]] ++ ;

for (i = 2 ;i < 1000000 ;i ++ ) {

l1
= seq[p1];
l2
= seq[p2];
for (j = 1 ;j <= 26 ;j ++ ) {
l3
= (seq[p3] + j) % 26 ;
if (counter_3D[l1][l2][l3] < 100 && counter_2D[l2][l3] < 2000 && counter_1D[l3] < 40000 ) {
ret[i]
= l3 + ' a ' ;
seq[p3]
= l3;
tmp
= p1;
p1
= p2;
p2
= p3;
p3
= tmp;
counter_3D[l1][l2][l3]
++ ;
counter_2D[l2][l3]
++ ;
counter_1D[l3]
++ ;
break ;
}
}
}

cout
<< ret;

return 0 ;
}
/* fout.close();
ifstream fin;
fin.open("output.txt",ios_base::in);

i = 0;
while(!fin.eof())
fin>>test[i++];

cnt = strlen(test);
cout<<"count:"<<cnt<<endl;

check[test[0]-'a']++;
check[test[1]-'a']++;
check2D[test[0] - 'a'][test[1] - 'a']++;

i = 2;
while(i < cnt ) {
check[test[i] - 'a']++;
check2D[test[i-1] - 'a'][test[i] - 'a']++;
check3D[test[i-2] - 'a'][test[i-1] - 'a'][test[i] - 'a']++;
i++;
}

for(int i=0;i<26;i++) {
if(check[i] > 40000) {
cout<<"1 D exceeds\n"<<endl;
return 0;
}
for(int j=0;j<26;j++) {
if(check2D[i][j] > 2000) {
cout<<"2 D exceeds"<<check2D[i][j]<<endl;
cout<<(char)(i + 'a')<<(char)(j + 'a')<<endl;
return 0;
}
for(int k=0;k<26;k++) {
if(check3D[i][j][k] > 100) {
cout<<"3 D exceeds"<<check3D[i][j][k]<<endl;
cout<<(char)(i + 'a')<<(char)(j + 'a')<<(char)(k + 'a')<<endl;
}
}
}
}

return 0;
}
*/

這題我的基本思路是,每次都根據前面的兩個字母,來判斷跟第三個字母構成的組合是否能用(超過出現次數就不能了)。

不過這里有個小問題就是,例如aaa, 如果循環下一個找的還是aaa,那么這樣很快會耗掉"aaa"這組合的次數,通過驗證這樣的話構造不了1000000個。

但一個trick就是每次找的時候都從上一個找個字母的后一個字符開始,例如aaa,下一個找aab,然后找abc,bcd這樣,馬上就OK了 ^_^

Timus 1219


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 三级网站免费 | 成人涩涩屋福利视频 | 久久精品 | 欧美人在线 | www.天天操| 亚洲99影视一区二区三区 | 欧美成人h版在线观看 | 欧美午夜激情影院 | 欧美性a视频 | 一级做a爰片性色毛片男小说 | 久久精品视频99 | 精品九九 | 欧美日韩一区二区三区四区五区 | 极品美女aⅴ高清在线观看 一级片片 | 亚洲国产中文字幕在线观看 | 成人午夜AV亚洲精品无码网站 | 很黄很色又爽很黄很色又爽 | 57pao成人永久免费视频 | 亚洲精品亚洲人成人网 | 国产二区三区四区 | 久久精品视频16 | 天天看天天爽天天摸天天添 | 久久黄视频 | 天堂中文在线最新版地址 | 美女被免费网站在线视频九色 | 99热久久国产综合精品久久国产 | 欧美日韩在线视频不卡一区二区三区 | 天堂中文资源在线观看 | 欧洲中文字幕 | 色网在线观看 | 黄色影院在线看 | 久久中文字幕美谷朱里 | 亚洲欧美视频在线播放 | 欧美高清成人 | 色欧美亚洲 | 久久色伦理资源站 | 久久精品久| 日韩成人在线播放 | 国产精品污污视频 | 影音先锋欧美资源 | 欧美国产精品一区二区免费 |