A、Sasha and Sticks
题意:有两个人,每次轮流从n个棒子中抽出k个,直到剩余不足k个棒子。Sasha先抽。如果Sasha抽取的多,则输出YES,否则输出NO。
思路:n/k为奇数时,Sasha获胜。
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 typedef long long LL; 5 LL n, k; 6 int main() 7 { 8 while (~scanf("%I64d%I64d", &n, &k)) 9 { 10 LL ans = n/k; 11 if (ans % 2 == 1) printf("YES "); 12 else printf("NO "); 13 } 14 return 0; 15 }
B、Petya and Exam
题意:先给出若干个good字符,其他剩下的小写英文字符都是bad字符,再给出一个需要匹配的字符串p(有若干个小写字母、若干个‘?’,最多一个‘*’),接下来给出n个字符串,你可以每次把‘?’改成一个good字符,把‘*’改为一个空字符串或者由bad字符组成的字符串,如果能够使其和给出的字符串相同,则输出‘YES’,否则输出NO。
思路:模拟即可。
1 #include<iostream> 2 #include<memory.h> 3 #include<string.h> 4 using namespace std; 5 bool good[26]; 6 char gd[30]; 7 char p[100010]; 8 char s[100010]; 9 int main() 10 { 11 while (~scanf("%s", gd)) 12 { 13 memset(good, 0, sizeof(good)); 14 for (int i = 0; gd[i] != '