首页 > 代码库 > 2017-5-19-Train:2017年浙江理工大学程序设计竞赛校赛
2017-5-19-Train:2017年浙江理工大学程序设计竞赛校赛
Description
小王想知道一个字符串是否为ABA’型字符串。ABA’型字符串的定义:S=ABA’,A,B,A’都是原字符串的子串(不能是空串),A’的意思是A的反转串,B不一定要和A或A’不同。符合ABA’型的例如:"aba”,"acbbca”,"abcefgcba”等。"Abcefgcba”是ABA’型,因为它能找到一组对应的A("abc”),B(”efg”)和A’("cba")满足定义。
Input
第一行给测试总数T(T <= 1000),接下来有T组测试数据。
每组测试数据有一行字符串S(1 <= |S| <= 50000),字符串保证只有小写或大写英文字母。
Output
每组测试数据输出一行,如果S是ABA’型字符串,输出"YES”,否则输出"NO"。
Sample Input
5abAggCodeforcesacmermcamyacm
Sample Output
NONONOYESYES
Solve:
直接判断字符串长度是否大于3并且首尾字符相等,否则就不是
Code:
1 #include <bits/stdc++.h> 2 using namespace std; 3 static const int MAXN = 5e4 + 10; 4 5 int main() 6 { 7 int t; 8 scanf("%d" , &t); 9 while(t--)10 {11 char data[MAXN] = {‘\0‘};12 scanf(" %s" , data);13 int si = strlen(data);14 if(si <= 2 || data[0] != data[si - 1])15 puts("NO");16 else17 puts("YES");18 }19 }
Description
自从上次仓鼠中了1000万彩票后,彻底变成了土豪了,一群人愿意认他做干爹,仓鼠决定送他的干儿子每人一部iphone。仓鼠今天带了一群人去买iphone,每个人身上都背着一个大背包,只有3种背包,分别能装a,b,c个iphone,仓鼠希望每个人都能用iphone装满自己的背包。仓鼠有n个干儿子,也就是要买n部手机,仓鼠带了k个人去买手机,问是否存在一种情况能让每个买iphone的人的背包都装满
Input
输入包含多组测试数据,每组一行,包含5个整数n, k, a, b, c
(1 <= n, k , a, b, c <= 10000)
abc可以相同
Output
如果存在输出Yes,否则输出No
Sample Input
10 3 3 3 420 7 1 1 180 3 100 3 315 4 3 5 6
Sample Output
YesNoNoYes
HINT
样例一3个人分别带大小为 3 3 4的背包去买手机正好每个人都装满
样例二 很明显只有一种背包,全部都是1也无法买20部iphone
样例四 4个人分别带大小为 3 3 3 6的背包去买手机正好每个人都装满
Code:
1 #include <bits/stdc++.h> 2 using namespace std; 3 int n , k , a , b , c; 4 int main() 5 { 6 while(~scanf("%d" , &n)) 7 { 8 bool flag = 0; 9 scanf("%d%d%d%d" , &k , &a , &b , &c);10 for(int x = 0 ; x <= k ; ++x)11 {12 for(int y = 0 ; k - y - x >= 0 ; ++y)13 {14 int z = k - x - y;15 if(x * a + y * b + z * c == n)16 {17 puts("Yes");18 flag = 1;19 break;20 }21 }22 if(flag)23 break;24 }25 26 if(!flag)27 puts("No");28 }29 }
2017-5-19-Train:2017年浙江理工大学程序设计竞赛校赛