问题标题: 酷町堂:求助

0
0
已解决
黄依成
黄依成
中级天翼
中级天翼

 

5258   猜拳游戏3

感觉这题和5257很像,改了一下long long和数组大小,直接提交了,结果TLE30分了qwq

#include<iostream>
#include<string>
using namespace std;
string x,y;
long long a[105],b[105],n,cnt1,cnt2;
int f(int m,int k){
    if(m==1&&k==2||m==2&&k==3||m==3&&k==1){
        return 0;
    }else if(m==2&&k==1||m==3&&k==2||m==1&&k==3){
        return 1;
    }else{
        return 2;
    }
}
int main(){
    cin>>x>>y>>n;
    for(int i=0;i<x.size();i++){
        a[i]=x[i]-64;
    }
    for(int i=0;i<y.size();i++){
        b[i]=y[i]-64;
    }
    for(int i=0;i<n;i++){
        if(f(a[i%x.size()],b[i%y.size()])==0){
            cnt1++;
        }else if(f(a[i%x.size()],b[i%y.size()])==1){
            cnt2++;
        }
    }
    if(cnt1==cnt2){
        cout<<"平局";
    }else if(cnt1<cnt2){
        cout<<"丁丁赢 "<<cnt2;
    }else{
        cout<<"酷酷赢 "<<cnt1; 
    }
    return 0;
}

 


0
已采纳
侯平仄
侯平仄
新手天翼
新手天翼

此题目不能直接暴力枚举,要找周期   

0
黄依成
黄依成
中级天翼
中级天翼

顶!

黄依成在2020-08-12 09:14:54追加了内容

顶!

0
徐子宸
徐子宸
中级天翼
中级天翼

老黄,我不问过了吗;

这题数据范围超过10^6;

双重循环肯定超时

0
王文博
王文博
缔造者之神
缔造者之神

                                                          6

双重循环肯定会超时(数据范围超过10)

我要回答