2017 計蒜之道 初賽 第一場

2021-08-01 10:08:04 字數 2790 閱讀 2004

阿里的新遊戲

阿里九遊開放平台近日上架了一款新的益智類遊戲——成三棋。成三棋是我國非常古老的乙個雙人棋類遊戲,其棋盤如下圖所示:

如果一條線段上的三個交叉點都被同一玩家的棋子佔據的話,則稱這條線段被該玩家成三。現在,小紅和小明兩人在遊戲平台上下棋,其中小紅的棋子是黑色的。請你幫小紅計算他成三的線段數。

樣例對應的棋盤如下:

輸入第一行兩個整數 n,m(3≤n,m≤9)n,m(3 \le n, m \le 9)n,m(3≤n,m≤9),nnn 表示小紅的棋子數,mmm 表示小明的棋子數。

接下來 nnn 行輸入小紅的棋子座標。

接下來 mmm 行輸入小明的棋子座標。

輸入保證座標合法,並且棋子之間不重合。

輸出小紅成三的線段數。

樣例輸入

6 3

-1 0

-2 0

-3 0

-1 -1

-1 1

1 00 2

0 32 2

樣例輸出

2
模擬,水題,考慮下每行每列即可。

#include#include#includeusing namespace std;

int a[100],b[100],c[10];

int main()

if(y!=3) ++b[y];

else

}for(int i = 0;i < m; ++i) cin>>x>>y;

int ans = 0;

for(int i = 0;i <= 6; ++i)

if(i == 3) continue;

if(a[i] == 3) ++ans;

if(b[i] == 3) ++ans;

}cout<

阿里天池的新任務(簡單)

阿里「天池」競賽平台近日推出了乙個新的挑戰任務:對於給定的一串 dna 鹼基序列 ttt,判斷它在另乙個根據規則生成的 dna 鹼基序列 sss 中出現了多少次。

首先,定義乙個序列 www:

wi= = \beginb, & i = 0\\(w_ + a) \mod n, & i > 0\endw​i​​= = \begina , & (l \le w_ \le r) \land (w_\ \mathrm\ 2 = 0)\\t , & (l \le w_ \le r) \land (w_\ \mathrm\ 2 = 1)\\g , & ((w_ < l) \lor (w_ > r)) \land (w_\ \mathrm\ 2 = 0)\\c , & ((w_ < l) \lor (w_ > r)) \land (w_\ \mathrm\ 2 = 1)\end s​i​​=​⎩​⎪​⎪​⎪​⎨​⎪​⎪​⎪​⎧​​​a,​t,​g,​c,​​​(l≤w​i​​≤r)∧(w​i​​ mod 2=0)​(l≤w​i​​≤r)∧(w​i​​ mod 2=1)​((w​i​​r))∧(w​i​​ mod 2=0)​((w​i​​r))∧(w​i​​ mod 2=1)​​

其中 ∧\land∧ 表示「且」關係,∨\lor∨ 表示「或」關係,a mod ba\ \mathrm\ ba mod b 表示 aaa 除以 bbb 的餘數。

現給定另乙個 dna 鹼基序列 ttt,以及生成 sss 的引數 n,a,b,l,rn , a , b , l , rn,a,b,l,r,求 ttt 在 sss 中出現了多少次。

資料第一行為 555 個整數,分別代表 n,a,b,l,rn , a , b , l , rn,a,b,l,r。第二行為乙個僅包含a

tgc的乙個序列 ttt。

資料保證 0對於簡單版本,1≤n≤1061 \leq n \leq 10^1≤n≤10​6​​;

輸出乙個整數,為 ttt 在 sss 中出現的次數。

對於第一組樣例,生成的 sss 為tttcggaaaggcc

樣例輸入1

13 2 5 4 9

agg

樣例輸出1

1
樣例輸入2

103 51 0 40 60

actg

樣例輸出2

5
裸的kmp,然而並不知道當時為什麼寫崩了。。。

#include#include#includeusing namespace std;

char z[1000010],m[1000010];

int next[1000010];

void getnext()

}int kmp()

return ans;

}int main()

else

t = (t + a) % n;

}getnext();

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

return 0;

}

2017計蒜之道 初賽 第一場

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 ...

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 中每個小寫字母的字元個數,小明想知道易破解程度最高是多少?官方題解 如果只有一種字元,很好得出答案。超過...