5 条题解

  • 2
    @ 2022-10-24 18:46:33

    玩个烂梗

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        char c[7],g[7];
        int ge=1,neetimay=1;
        scanf("%s%s",c,g);
        for(int i=0;i<6;i++) if(c[i]!='\0') ge*=(c[i]-'A'+1);
        ge%=47;
        for(int i=0;i<6;i++) if(g[i]!='\0') neetimay*=(g[i]-'A'+1);
        neetimay%=47;
        if(ge==neetimay) printf("GO");
        else printf("STAY");
        return 0;
    }
    
    • 1
      @ 2024-4-5 13:57:23
      
      

      using namespace std; int main(){ char c[7],g[7]; int ge=1,neetimay=1; scanf("%s%s",c,g); for(int i=0;i<6;i++) if(c[i]!='\0') ge*=(c[i]-'A'+1); ge%=47; for(int i=0;i<6;i++) if(g[i]!='\0') neetimay*=(g[i]-'A'+1); neetimay%=47; if(ge==neetimay) printf("GO"); else printf("STAY"); return 0; }

      
      
      • 0
        @ 2023-10-29 7:52:36

        代码都写在下面了(含注释)

        #include <bits/stdc++.h>
        using namespace std;
        long long len1,len2,ans1=1,ans2=1,x; //一定要用longlong!用int也许会溢出。
        string s1,s2;
        int main() {
        	cin>>s1>>s2;
        	len1=s1.size(),len2=s2.size();//长度赋值。
        	for (int i=0;i<len1;i++) {
        		x=s1[i]-'A'+1;//计算当前字符的对应数字。
        		ans1=ans1*x;//乘起来。
        	}
        	for (int i=0;i<len2;i++) {
        		x=s2[i]-'A'+1;
        		ans2=ans2*x;
                //同理
        	}
        	if (ans1%47==ans2%47) cout<<"GO";//判断是否可以去/不去。
        	else cout<<"STAY";
        	return 0;
        }
        
        • 0
          @ 2023-10-22 11:51:31
          #include <bits/stdc++.h>
          using namespace std;
          int main()
          {
              string ufo;
              string usaco;
              cin>>ufo;
              cin>>usaco;
              int sum = 1;
              int sum2 = 1;
              for (int i = 0;i <= ufo.size()-1;i++)
                  sum *= ufo[i] - 64;
              for (int i = 0;i <= usaco.size()-1;i++)
                  sum2 *= usaco[i] - 64;
              if (sum % 47 == sum2 % 47)
                  cout<<"GO"<<endl;
              else
                  cout<<"STAY"<<endl;
              return 0;
          }
          
          • 0
            @ 2022-12-29 11:36:48

            上代码(说明在代码里):

            #include<iostream>
            #include<string>
            using namespace std;
            string s1,s2;
            const unsigned int to_num[128]={255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255};//打个表,不用每次字母转数字都要算
            unsigned int hashes(string s){//用于算一个字符串转数字后mod47的值
                unsigned int mul=1;
                for(unsigned int i=0,len=s.length();i<len;i++){//遍历字符串
                    mul*=to_num[s[i]];
                    mul%=47;//过程中就取余,防溢出
                }
                return mul;
            }
            int main(){
                cin >> s1 >> s2;
                if(hashes(s1)==hashes(s2)){//如果它们mod47的值相等
                    cout << "GO";
                } else{
                    cout << "STAY";
                }
                return 0;
            }
            
            • 1

            [USACO1.1] 你的飞碟在这儿 Your Ride Is Here

            信息

            ID
            201
            时间
            1000ms
            内存
            125MiB
            难度
            1
            标签
            递交数
            109
            已通过
            73
            上传者