ACM复习(41)10688 XYM-AC之路
2018-03-17 21:01
316 查看
Description
在华农的众ACMers中,有着一位家喻户晓、人称一鸣惊人的DP神牛—XYM。由于XYM太出名了,他的仰慕者决定给XYM写一部个人传奇以传承他光辉的AC之路。
为了使故事更加真实,特派记者Y决定去采访XYM教主。由于XYM太出名了,而且时间很忙,他对于每个问题只会回答Yes或No。由于这是记者Y第一次跟XYM教主
面对面访谈,他十分紧张,所以他可能会重复问同一个问题,但对于相同的问题XYM都会是相同的回答。记者Y有个特殊的癖好,每问完一个问题,他都会把这
个问题和XYM教主的回答分开记下来。
然而,不幸的是,Y在回去的路上不小心把记有XYM的回答的纸条弄丢了,只剩下一些问题。可怜的记者Y决定将XYM教主所有可能的回答的组合全部写出来。
这样,他就有可能认出那个才是XYM的回答。
不过Y不知道一共要写多少才行,所以他想向聪明的你求救,一共有多少组可能的回答组合他需要写出来的?
输入格式
第一行只有一个正整数T,表示题目共有T组数据
接下来是T组数据。
每组数据第一行输入一个整数n(1<= n <= 50),
接下来有n行,每行输入一个问题que[i],表示Y第i个问的问题是什么。
每个问题最多由50个字符组成,每个问题只包含小写字母 (‘a’-‘z’),大写字母 (‘A’-‘Z’), 问号 (‘?’) 或者下划线 (‘_’).两个问题问题被认为相同当且仅当组成问题的所有字符一一对应 相同。
输出格式
对于每组数据输出一个整数,表示所有可能的回答的组合的方案数。
输入样例
3
3
How_are_you_doing?
How_do_you_like_our_country?
How_are_you_doing?
1
Whazzup?
4
Do_you_like_my_story?
Do_you_like_my_story
DO_YOU_LIKE_MY_STORY?
Do__you__like__my__story?
输出样例
4
2
16
提示
对于第一组数据,一个有四种可能的回答组合
“Yes”, “Yes”, “Yes”;
“Yes”, “No”, “Yes”;
“No”, “Yes”, “No”;
“No”, “No”, “No”.
在华农的众ACMers中,有着一位家喻户晓、人称一鸣惊人的DP神牛—XYM。由于XYM太出名了,他的仰慕者决定给XYM写一部个人传奇以传承他光辉的AC之路。
为了使故事更加真实,特派记者Y决定去采访XYM教主。由于XYM太出名了,而且时间很忙,他对于每个问题只会回答Yes或No。由于这是记者Y第一次跟XYM教主
面对面访谈,他十分紧张,所以他可能会重复问同一个问题,但对于相同的问题XYM都会是相同的回答。记者Y有个特殊的癖好,每问完一个问题,他都会把这
个问题和XYM教主的回答分开记下来。
然而,不幸的是,Y在回去的路上不小心把记有XYM的回答的纸条弄丢了,只剩下一些问题。可怜的记者Y决定将XYM教主所有可能的回答的组合全部写出来。
这样,他就有可能认出那个才是XYM的回答。
不过Y不知道一共要写多少才行,所以他想向聪明的你求救,一共有多少组可能的回答组合他需要写出来的?
输入格式
第一行只有一个正整数T,表示题目共有T组数据
接下来是T组数据。
每组数据第一行输入一个整数n(1<= n <= 50),
接下来有n行,每行输入一个问题que[i],表示Y第i个问的问题是什么。
每个问题最多由50个字符组成,每个问题只包含小写字母 (‘a’-‘z’),大写字母 (‘A’-‘Z’), 问号 (‘?’) 或者下划线 (‘_’).两个问题问题被认为相同当且仅当组成问题的所有字符一一对应 相同。
输出格式
对于每组数据输出一个整数,表示所有可能的回答的组合的方案数。
输入样例
3
3
How_are_you_doing?
How_do_you_like_our_country?
How_are_you_doing?
1
Whazzup?
4
Do_you_like_my_story?
Do_you_like_my_story
DO_YOU_LIKE_MY_STORY?
Do__you__like__my__story?
输出样例
4
2
16
提示
对于第一组数据,一个有四种可能的回答组合
“Yes”, “Yes”, “Yes”;
“Yes”, “No”, “Yes”;
“No”, “Yes”, “No”;
“No”, “No”, “No”.
解题思路
找出多少个不同字符串而已,代码几乎和 10693 PKKJ的生日礼物 一样#include<stdio.h> #include<math.h> int main() { int t, n, total, e, q; char str[51][51]; scanf("%d", &t); while(t --) { scanf("%d", &n); total = n; for(int i = 0; i < n; i ++) scanf("%s" 4000 , &str[i]); for(int i = 0; i < n - 1; i ++) { // @开头代表是重复字符串 if(str[i][0] == '@') continue; for(int j = i + 1; j < n; j ++) { e = q = 0; while(str[i][e] != '\0' && str[j][q] != '\0' && str[i][e] == str[j][q]) { e ++; q ++; } if(str[i][e] == '\0' && str[j][q] == '\0') { str[j][0] = '@'; total -= 1; } } } printf("%.0lf\n", pow(2, total)); } return 0; }
相关文章推荐
- 10688 XYM-AC之路
- SCAU 10688 XYM-AC之路 (水题)
- [导入]Guru of the Week:#41 使用标准库
- LCC编译器的源程序分析(41)赋值表达式的有向无环图
- 程序员面试题精选(41):编译器对内存填充长度之误解
- 地磅称量系统之(41~50) 创建自己的Icon文件作为位图
- Windows API一日一练(41)FindWindowEx函数
- NetBeans Weekly 刊号 # 41 - Jan 13, 2009
- reactos操作系统实现(41)
- 条款41:了解隐式接口和编译器多态
- 2010年上半年5月份系统分析师上午试题答案(分析与解答)之四(第3次修订 修订时间:2010年6月1日14:41)
- (翻译)Entity Framework技巧系列之十 - Tip 37 - 41
- Android培训班(41)
- 【软件测试自动化-QTP系列讲座 41】== 强制获取文本相对坐标 ==
- Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox
- pow(double a,int b) [No. 41]
- 学习笔记41(四道智力题,挑战你的编程极限)
- 网址探测器 - 零基础入门学习Delphi41
- 错误—系统—Kernel-Power—41—(63)
- 电子邮件附件名称包含非 ASCII 字符,并且长度超过 41 utf-8 编码字节的是之前的.NET Framework 4 编译的应用程序中的传输编码两次