SCAU 10688 XYM-AC之路 (水题)
10688 XYM-AC之路
时间限制:1000MS 内存限制:65535K 提交次数:0 通过次数:0
题型: 编程题 语言: 无限制
Description
在华农的众ACMers中,有着一位家喻户晓、人称一鸣惊人的DP神牛—XYM。由于XYM太出名了,他的仰慕者决定给XYM写一部个人传奇以传承他光辉的AC之路。 为了使故事更加真实,特派记者Y决定去采访XYM教主。由于XYM太出名了,而且时间很忙,他对于每个问题只会回答Yes或No。由于这是记者Y第一次跟XYM教主 面对面访谈,他十分紧张,所以他可能会重复问同一个问题,但对于相同的问题XYM都会是相同的回答。记者Y有个特殊的癖好,每问完一个问题,他都会把这 个问题和XYM教主的回答分开记下来。 然而,不幸的是,Y在回去的路上不小心把记有XYM的回答的纸条弄丢了,只剩下一些问题。可怜的记者Y决定将XYM教主所有可能的回答的组合全部写出来。 这样,他就有可能认出那个才是XYM的回答。 不过Y不知道一共要写多少才行,所以他想向聪明的你求救,一共有多少组可能的回答组合他需要写出来的?
Input
第一行只有一个正整数T,表示题目共有T组数据 接下来是T组数据。 每组数据第一行输入一个整数n(1<= n <= 50), 接下来有n行,每行输入一个问题que[i],表示Y第i个问的问题是什么。 每个问题最多由50个字符组成,每个问题只包含小写字母 ('a'-'z'),大写字母 ('A'-'Z'), 问号 ('?') 或者下划线 ('_').两个问题问题被认为相同当且仅当组成问题的所有字符一一对应 相同。
Output
对于每组数据输出一个整数,表示所有可能的回答的组合的方案数。
Sample Input
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?
Sample Output
4 2 16
Hint
对于第一组数据,一个有四种可能的回答组合 "Yes", "Yes", "Yes"; "Yes", "No", "Yes"; "No", "Yes", "No"; "No", "No", "No".
Source
Troy
Provider
scau_acm
#include<stdio.h> #include<string.h> int main() { int i, j, T, count, n; char que[52][52], temp[52]; long long unsigned res; scanf("%d",&T); while(T--) { count = 0; for(i=0; i<52; ++i) memset(que[i], 0, sizeof(char)*52); scanf("%d", &n); for(i=1; i<=n; ++i) { memset(temp, 0, sizeof(temp)); scanf("%s", temp); if(!count) {strcpy(que[0], temp); ++count;} else { for(j=0; j<count && strcmp(que[j], temp); ++j); if(j == count) { strcpy(que[j], temp); count++; } } } for(i=1,res=1; i<=count; ++i) res = res*2; printf("%llu\n", res); } return 0; }
解题报告:
说实话,感觉吃亏了,WA的原因是后来溢出了,2的50次方,int远远不够的!
更多内容请关注个人微信公众号 物役记 (微信号:materialchains)
作者:雪影蓝枫
本文版权归作者和博客园共有,欢迎转载,未经作者同意须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。