Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
我的方案;每个硬币一个权重 遇到平衡时,每一个硬币一定为真币(让其权重为“无穷小”)。每遇到一次不平衡时,每一个币都受怀疑,权重加一 (见正文)我的方案;每个硬币一个权重 初始为0 每遇到一次平衡时,其中每一个硬币一定为真币(让其权重为“无穷小”)。 每遇到一次不平衡时,其中每一个币都受怀疑,权重++。(因为真币是无穷小 所以不妨碍) (这个方案平衡出现的顺序也不会影响) 最后权重最大的硬币为 假币 接着判断轻重 假币位置在右边的且up 该假币light 假币位置在左边的且down 该假币light 其余情况heavy 这样思路是否可行? sample和前面同学提供的测试都过了 但是依然WA 不知为何 附上代码: 敬请高手指点 #include <iostream> #include <algorithm> using namespace std; #define INFINE -10000 int Ftime[12];//权重数组 //被猜测为假的次数 最多硬币的为假币 (当某一个被确认为真币 则这个值为无穷小) int len[3];//记录每次称重硬币数量 int main() { int i,j,k,l; int casenum; int blank =0; char input[3][1024]; // freopen("1013.txt", "r", stdin); scanf("%d ",&casenum); for(i=0;i<casenum;i++) { //initialize for(j=0;j<12;j++) { Ftime[j] =0 ; len[j] = 0; } for(l=0;l<3;l++) { gets(input[l]); //平衡 全为真 if(strstr(input[l],"even") != NULL)//匹配even成功 for(k=0;;) { for(;isalpha(input[l][k]);k++) { Ftime[input[l][k]-'A'] = INFINE; } while(isspace(input[l][k])) {k++;blank=k;//空格 } for(;isalpha(input[l][k]);k++) { Ftime[input[l][k]-'A'] = INFINE; } len[l] = k-blank; break; } //不平衡 if(strstr(input[l],"even") == NULL)//匹配even不成功 for(k=0;;) { for(;isalpha(input[l][k]);k++) { //怀疑假 Ftime[input[l][k]-'A'] ++; } while(isspace(input[l][k])) { k++;blank=k;//空格 } for(;isalpha(input[l][k]);k++) { //怀疑假 Ftime[input[l][k]-'A'] ++; } len[l] = k-blank; break; } } int max = max_element(Ftime,Ftime+12)-Ftime;//查找权重最大的元素下标 char weight[]="heavy";//默认值 for(l=0;l<3;l++) { if((strchr(input[l],max+'A')-input[l] ) > len[l]/2 )//在天平右边 { if(strstr(input[l],"up") != NULL )//匹配up成功 strcpy(weight,"light"); } else if((strchr(input[l],max+'A')-input[l] ) > 0 )//在天平右边 { if(strstr(input[l],"down") != NULL )//匹配down成功 strcpy(weight,"light"); } } printf("%c is the counterfeit coin and it is %s. \n",max+'A',weight); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator