首页 > 代码库 > 2017-5-19-Train:2017年浙江理工大学程序设计竞赛校赛

2017-5-19-Train:2017年浙江理工大学程序设计竞赛校赛

Problem A: 回文(签到题)

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 }
View Code

 

Problem D: 买iphoneTime(数学、中途相遇法)

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 }
View Code

 

2017-5-19-Train:2017年浙江理工大学程序设计竞赛校赛