2017計蒜之道 初賽 第一場

2022-05-25 23:54:17 字數 2030 閱讀 1829

16種情況手動暴力即可

#include 

#define nmax 7

using

namespace

std;

int mp[nmax][nmax];

int n,m;

int cnt = 0;

void ge()

void check()

if(mp[0][0] == 1 && mp[3][0] == 1 && mp[6][0] == 1)

if(mp[0][6] == 1 && mp[3][6] == 1 && mp[6][6] == 1)

if(mp[6][0] == 1 && mp[6][3] == 1 && mp[6][6] == 1)

if(mp[1][1] == 1 && mp[1][3] == 1 && mp[1][5] == 1)

if(mp[1][1] == 1 && mp[3][1] == 1 && mp[5][1] == 1)

if(mp[5][1] == 1 && mp[5][3] == 1 && mp[5][5] == 1)

if(mp[1][5] == 1 && mp[3][5] == 1 && mp[5][5] == 1)

if(mp[2][2] == 1 && mp[2][3] == 1 && mp[2][4] == 1)

if(mp[4][2] == 1 && mp[4][3] == 1 && mp[4][4] == 1)

if(mp[2][2] == 1 && mp[3][2] == 1 && mp[4][2] == 1)

if(mp[2][4] == 1 && mp[3][4] == 1 && mp[4][4] == 1)

if(mp[0][3] == 1 && mp[1][3] == 1 && mp[2][3] == 1)

if(mp[4][3] == 1 && mp[5][3] == 1 && mp[6][3] == 1)

if(mp[3][4] == 1 && mp[3][5] == 1 && mp[3][6] == 1)

if(mp[3][2] == 1 && mp[3][1] == 1 && mp[3][0] == 1)

}void out()

printf("\n");

}}int main()

for(int i = 0; iscanf("%d %d",&x,&y);

mp[x+3][y+3] = 2;

}//out();

check();

printf("%d\n",cnt);

}return

0;}

按題意生成主串,然後裸的kmp,算出子串個數即可。

#include 

#define nmax 1000000+5

using namespace std;

int w[nmax];

char str[nmax];

char buf[nmax];

int next[nmax];

int n,a,b,l,r,ans;

void getstr(int

pos)

else

}void make()

getstr(i);

}str[n] = '\0';

}void makenext(int m)

}int kmp(int

pos,int n,int m)

}return ans;

}int main()

return

0;}

想複雜了,打表發現迴圈可以分為三段,第一段gcgc……,第二段atat……第三段gcgc……。

然後分類討論,可以成功匹配的t串,只有3種情況。

第一種:全為gc串,可以在第一段和第三段根據長度求出。

第二種:全為at串,可以在第二段根據長度求出。

第三種:前為gc串後為at串或者前為at串後為gc串,只有1種可以匹配的情況。

目前還沒看,感覺an互質上要做文章。

2017 計蒜之道 初賽 第一場

阿里的新遊戲 阿里九遊開放平台近日上架了一款新的益智類遊戲 成三棋。成三棋是我國非常古老的乙個雙人棋類遊戲,其棋盤如下圖所示 如果一條線段上的三個交叉點都被同一玩家的棋子佔據的話,則稱這條線段被該玩家成三。現在,小紅和小明兩人在遊戲平台上下棋,其中小紅的棋子是黑色的。請你幫小紅計算他成三的線段數。樣...

2018 計蒜之道 初賽 第一場

題解 典型的二分 1 pragma warning disable 4996 2 include3 include4 include 5 include6 include7 include8 include9 define ll long long 10using namespace std 111...

2016 計蒜之道 初賽 第一場 題解 待補

對於金鑰 s1.sn,我們需要首先計算其對應的 陣列。對於任意的 i 2 i n i ma x 也就是最長的字首等於字尾的長度。n i 2 i 值越小,易破解程度越高。現在已知金鑰的 s1 sn 中每個小寫字母的字元個數,小明想知道易破解程度最高是多少?官方題解 如果只有一種字元,很好得出答案。超過...