洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…【字符串+模拟】
P1200 [USACO1.1]你的飛碟在這兒Your Ride Is He…
題目描述
眾所周知,在每一個彗星后都有一只UFO。這些UFO時常來收集地球上的忠誠支持者。不幸的是,他們的飛碟每次出行都只能帶上一組支持者。因此,他們要用一種聰明的方案讓這些小組提前知道誰會被彗星帶走。他們為每個彗星起了一個名字,通過這些名字來決定這個小組是不是被帶走的那個特定的小組(你認為是誰給這些彗星取的名字呢?)。關于如何搭配的細節會在下面告訴你;你的任務是寫一個程序,通過小組名和彗星名來決定這個小組是否能被那顆彗星后面的UFO帶走。
小組名和彗星名都以下列方式轉換成一個數字:最終的數字就是名字中所有字母的積,其中“A”是1,“Z”是26。例如,“USACO”小組就是21*19*1*3*15=17955。如果小組的數字 mod 47等于彗星的數字mod 47,你就得告訴這個小組需要準備好被帶走!(記住“a mod b”是a除以b的余數;34 mod 10等于4)
寫出一個程序,讀入彗星名和小組名并算出用上面的方案能否將兩個名字搭配起來,如果能搭配,就輸出“GO”,否則輸出“STAY”。小組名和彗星名均是沒有空格或標點的一串大寫字母(不超過6個字母)。
輸入輸出格式
輸入格式:
?
第1行:一個長度為1到6的大寫字母串,表示彗星的名字。
第2行:一個長度為1到6的大寫字母串,表示隊伍的名字。
?
輸出格式:
?
輸入輸出樣例
輸入樣例#1:[輸入1] COMETQ HVNGAT [輸入2] ABSTAR USACO 輸出樣例#1:
[輸出1] GO [輸出2] STAY
說明
題目翻譯來自NOCOW。
USACO Training Section 1.1
題目鏈接:https://www.luogu.org/problem/show?pid=1200
分析:(⊙o⊙)…和ISBN號碼一樣,算出每個位數的乘積之和%47即可,比較兩個模是否相等,相等輸出GO,否則輸出STAY,唯一一點,就是這題要開long long
下面給出AC代碼:
1 #include <bits/stdc++.h> 2 using namespace std; 3 inline int read() 4 { 5 int x=0,f=1; 6 char ch=getchar(); 7 while(ch<'0'||ch>'9') 8 { 9 if(ch=='-') 10 f=-1; 11 ch=getchar(); 12 } 13 while(ch>='0'&&ch<='9') 14 { 15 x=x*10+ch-'0'; 16 ch=getchar(); 17 } 18 return x*f; 19 } 20 inline void write(int x) 21 { 22 if(x<0) 23 { 24 putchar('-'); 25 x=-x; 26 } 27 if(x>9) 28 { 29 write(x/10); 30 } 31 putchar(x%10+'0'); 32 } 33 char s1[10]; 34 char s2[10]; 35 int main() 36 { 37 cin>>s1; 38 cin>>s2; 39 int len1=strlen(s1); 40 int len2=strlen(s2); 41 long long ans1=1,ans2=1; 42 for(int i=0;i<len1;i++) 43 ans1*=(s1[i]-'A'+1); 44 for(int i=0;i<len2;i++) 45 ans2*=(s2[i]-'A'+1); 46 ans1%=47; 47 ans2%=47; 48 if(ans1==ans2) 49 cout<<"GO"; 50 else cout<<"STAY"; 51 return 0; 52 }?
轉載于:https://www.cnblogs.com/ECJTUACM-873284962/p/7348964.html
總結
以上是生活随笔為你收集整理的洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…【字符串+模拟】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mybatis使用generator自动
- 下一篇: Android零基础入门第24节:自定义