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