C 俏兔子大战傻贼鹰(56.25%处样例是不是错了)

第三题  是什么鬼  我麻将 读入用的  int char就一直WR 比赛完改代码 最后发现  同学用的 char  char 就对了  
这是不是 官方问题 我做这个题  火很大  我题干读了 不下10遍
第一遍 理解是对的 后面直接 曲解题意了 
我开始考虑  花色 问题 开了 set卡限制  7对是必须 2个 花色
还是不对 有考虑 是不是 允许 7对时 允许  1w1w1w1w这种出现
或者是这两种 同时满足 
我的天呢  
到底是什么鬼   
第一次  代码WR
#include<iostream>
#include<cstring>
#include<cstdio>
#include<map>
#include<queue>
using namespace std;
queue<int> q;
map<char,int> mp;
int sum[10][4];
int main(){
 int t;
mp['W']=0;
mp['S']=1;
mp['T']=2;
 while(cin>>t){
     char no;
     cin>>no;
    while(t--){
        int flag=0;
        int san,er;
        san=er=0;
        memset(sum,0,sizeof(sum));
        for(int i=0;i<14;i++){
            int num;
            char str;
            cin>>num>>str;
            if(str==no)
            flag=1;
            if(!sum[num][mp[str]]){
            q.push(num);
            q.push(mp[str]);
            sum[num][mp[str]]++;
            }
            else
            {
                sum[num][mp[str]]++;
            }
        }
        while(!q.empty()){
            int a=q.front();
            q.pop();
            int b=q.front();
            q.pop();
            if(sum[a][b]==2)
            er++;
            if(sum[a][b]==3)
            san++;
        }
        int ff=0;
        if(er==7||(san==4&&er==1))
        ff=1;
        if(!flag&&ff)
        cout<<"Yes"<<endl;
        else
        cout<<"No"<<endl;
    }
 }
    return 0;
}


AC 代码  
就差在   num的类型上 希望官方 能给出解释 是不是样例错了  ????
还是   我思路根本就是错的
#include<iostream>
#include<cstring>
#include<cstdio>
#include<map>
#include<queue>
using namespace std;
queue<int> q;
map<char,int> mp;
int sum[10][4];
int main(){
 int t;
mp['W']=0;
mp['S']=1;
mp['T']=2;
 while(cin>>t){
     char no;
     cin>>no;
    while(t--){
        int flag=0;
        int san,er;
        san=er=0;
        memset(sum,0,sizeof(sum));
        for(int i=0;i<14;i++){
            char num;
            char str;
            cin>>num>>str;
            if(str==no)
            flag=1;
            if(!sum[num-'0'][mp[str]]){
            q.push(num-'0');
            q.push(mp[str]);
            sum[num-'0'][mp[str]]++;
            }
            else
            {
                sum[num-'0'][mp[str]]++;
            }
        }
        while(!q.empty()){
            int a=q.front();
            q.pop();
            int b=q.front();
            q.pop();
            if(sum[a][b]==2)
            er++;
            if(sum[a][b]==3)
            san++;
        }
        int ff=0;
        if(er==7||(san==4&&er==1))
        ff=1;
        if(!flag&&ff)
        cout<<"Yes"<<endl;
        else
        cout<<"No"<<endl;
    }
 }
    return 0;
}






全部评论
自己菜还怪出题人  模拟本来考的就是细节
5 回复
分享
发布于 2019-11-17 19:36
非常抱歉,我是出题人,的确是在那个位置一个数字打成了字母,由于标称时直接读的字符串所以验题时并没发现错误,但在上周日下午我看到有很多人WA的时候我重新检查了数据并发现了这个错误,当时SOJ和牛客应该都更新了数据,但是似乎牛客这边更新失败了,真的非常抱歉,这是我们的失误。我也是今晚才知道这边数据没有更新成功,您WA的那份代码在SOJ是成功AC的。浪费您时间了,再次向您道歉。
2 回复
分享
发布于 2019-11-21 19:32
滴滴
校招火热招聘中
官网直投
垃圾 垃圾 
1 回复
分享
发布于 2019-11-17 19:04
我也卡了56.25%,没想到是这里的问题 PS:七对子胡牌确实允许1W1W1W1W出现,而且胡牌得分会更多,我也写了这个,但很多AC代码似乎都i没考虑
1 回复
分享
发布于 2019-11-17 21:21
跟我第一次写的一样,卡56.25%
1 回复
分享
发布于 2019-11-17 23:10
cin>>num>>str裂掉
1 回复
分享
发布于 2019-11-17 23:12
垃圾 垃圾数据
点赞 回复
分享
发布于 2019-11-17 19:03

相关推荐

3 收藏 评论
分享
牛客网
牛客企业服务