智算之道2020初賽第一場試題

2021-10-08 02:16:02 字數 2588 閱讀 7511

共 10 個測試點 

每個測試點 10 分

每個測試點限時 1 秒 

執行記憶體上限 512mb

檢視本題最近一次測評結果

小 a 現在站在乙個 n 個人的隊伍裡排隊,他們的編號依次為 1∼n,現在她面前有 m 個視窗,其中第 i 個視窗會給出乙個數字 ai​,然後將隊伍中所有編號為 ai​ 倍數的人帶出隊伍,請問最後隊伍中還剩下多少個人?

第一行兩個用空格隔開的整數分別表示 n,m

第二行 m 個用空格隔開的整數,其中第 i 個代表 ai​

輸出乙個整數,代表剩下多少個人

對於 30% 的資料,1 <=n <= 100,1 <=m <=10

對於 60% 的資料,1 <= n <=1000, 1 <=m <=10

對於 100%的資料,1 <= n <=100000, 1 <=m <=100,1≤ai​≤n

10 3

3 4 5

3
#includeusing namespace std;

int main()

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

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

} }int sum = 0;

for (int i = 1; i <= n; i++)

} cout << (n- sum);;

}

共 10 個測試點 

每個測試點 10 分

每個測試點限時 1 秒 

執行記憶體上限 512mb

檢視本題最近一次測評結果

小 b 面前有 n 個開關,開始時第 i 個開關的狀態是 ai​,其中 ai​=1 表示第 i 個開關是開的,ai​=0 表示第 i 個開關是關的。現在 小 b 獲得了一種魔法,他可以進行若干次操作,每次操作可以選擇乙個數 x,然後把 x 號開關及其之前的所有開關狀態反轉(開變關,關變開),請問小 b 最少需要多少次操作才能使所有開關都變為關的狀態。

第一行乙個整數表示 n

第二行為乙個長度為 n 的 01字串,即每一位只會是 0 或者 1

輸出乙個整數,表示最少需要多少次操作才能使所有開關都變為關的狀態

對於 30%的資料,1≤n≤20

對於 60% 的資料,1≤n≤2000

對於 100% 的資料,1≤n≤200000

4

1001

3
#includeusing namespace std;

int main()

int sum=0;

for (int i = n - 1; i >= 0; i--)

else

}sum++;

} }cout << sum;

}

解析:先把字串轉化為字元陣列,再轉化為int型陣列,從後向前遍歷陣列,如果遇到0,則不管;遇到1,把這個數字及前面的數字0變1、1變0即可

共 10 個測試點 

每個測試點 10 分

每個測試點限時 1 秒 

執行記憶體上限 512mb

給定兩個字串 s 和 t,它們都只由小寫字母組成。現在請計算出字串 s 的本質不同的排列中有多少種是字串 t 的子串。

本質不同,就是看起來不同,例如aab有 33 種本質不同的排列aab, aba, baa

第一行有乙個字串 s

第二行有乙個字串 t

輸出乙個整數表示字串 s的本質不同的排列中有多少種是字串 t 的子串

對於 30% 的資料,1 <= |s|<= 5, 1 <= |t|<= 200

對於 60% 的資料,1≤∣s∣≤2000,1≤∣t∣≤2000

對於 100% 的資料,1≤∣s∣≤200000,1≤∣t∣≤200000

aab

abacabaa

2
#include #include #include int m;//記錄字串長度

int n;//記錄字串中的字元種類數

char map[256];//記錄是哪幾種字元

int count[256];//記錄每種字元有多少個

char str1[1000];

int sum=0;

void make_map(char *str)//統計字串的相關資訊

n=0;

for (i=0;i<256;i++)

if (s[i])

} int stack[1000];//遞迴用的棧,並記錄當前生成的排列

void find(int depth)//遞迴式回溯法生成全排列

{

int k=0;

if (depth==m)

{ int i;

char c[1000];

for (i=0;i解析:先用遞迴式的回溯法生成全排列,然後再用庫函式strstr(),判斷是不是子字串

智算之道 2020智算之道初賽第三場題解

乙個模擬的水題.int main return 0 這個b.卡的直接醉了 按照題意模擬即可 模擬建議使用雙端佇列deque 最好還是陣列吧,deque必須全域性才可以 被deque全域性卡了乙個小時40分鐘 第乙個坑點是注意摸牌順序 可能會wa 第二個坑點是處理摸牌順序 可能會t 第三個坑點是刪牌標...

2017 計蒜之道 初賽 第一場

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

2018 計蒜之道 初賽 第一場

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