zoukankan      html  css  js  c++  java
  • USACO Section 1.1 Your Ride Is Here 解题报告

    题目

    问题描述

    将字符串转变为数字,字母A对应的值为1,依次对应,字母Z对应的值为26。现在有一个字符串,将其中的每个字符转变为数字之后进行累乘,最终的结果对47求余数。
    题目给你两个字符串,其中的字符都是大写字母,如果通过上述处理,两个字符串最终转变的数字结果是相等的,输出GO,否则输出STAY。

    输入样例

    COMETQ
    HVNGAT
    

    输出样例

    GO
    

    解题思路

    该题主要让我们熟悉USACO的文件输入输出方式,是一个简单的模拟。USACO有一个特点就是必须在每份代码中用注释的方式,填写自己的用户名、题目名称,还有使用的编程语言,注意要进行文件输入输出。

    为了与我之前ACM的风格保持一致,我在代码中用了重定向的方式来进行文件输入输出。重定向的部分写在了#ifdef#endif中。只有定义了MARK符号才会编译两条freopen语句。我如果想要在本机命令窗口进行输入输出,只需要将#define MARK语句注释掉即可。在提交到oj之前把注释取消。

    解题代码

    /*
    ID: yinzong2
    PROG: ride
    LANG: C++11
    */
    #define MARK
    
    #include<cstdio>
    #include<iostream>
    #include<fstream>
    #include<string>
    #include<cstring>
    
    using namespace std;
    
    const int maxn = 10;
    
    int main() {
    #ifdef MARK
        freopen("ride.in", "r", stdin);
        freopen("ride.out", "w", stdout);
    #endif
        char str1[maxn], str2[maxn];
        cin >> str1 >> str2;
        int len1 = strlen(str1);
        int ans1 = 1;
        int len2 = strlen(str2);
        int ans2 = 1;
        for(int i = 0; i < len1; i++) {
            ans1 *= (str1[i] - 'A' +1);
        }
        ans1 %= 47;
        for(int i = 0; i < len2; i++) {
            ans2 *= (str2[i] - 'A' +1);
        }
        ans2 %= 47;
        if(ans1 == ans2) {
            cout << "GO" << endl;
        } else {
            cout << "STAY" << endl;
        }
        return 0;
    }
    
  • 相关阅读:
    CSS3实现3D木块旋转动画
    灰色大气企业html5模板
    同程联盟景点门票动态程序 beta1.0源码
    java 创建 HMAC 签名
    左侧浮动html网页模板
    农业公司flash动画模板
    纯CSS3左右滑动开关按钮
    jQuery移动光标改变图像
    四叶草与动感线条背景矢量图
    看过的bootstrap书籍(附下载地址)
  • 原文地址:https://www.cnblogs.com/yinzm/p/5795985.html
Copyright © 2011-2022 走看看