首页 > 代码库 > 最后一周第二天训练赛之第二题
最后一周第二天训练赛之第二题
试题:
B - B
Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %lluDescription
Mathews uses a brand new 16-bit instruction processor. (Yeah i am being sarcastic!). It has one register (say R) and it supports two instructions:
- ADD X; Impact: R = (R + X) mod 65536
- MUL X; Impact: R = (R * X) mod 65536
- [For both instructions 0 <= X <= 65535]
Input Format:
The input file consists of multiple testcases.
The first line of each testcase contains one integer, N. (1 <= N <= 100,000).
The following N lines contain one instructions each.
Input terminates with a line containing N=0, which must not be processed.
Output Format:
For each testcase print one integer in a single line, denoting the number of different values the register can take after code execution.
Sample Input:
1ADD 31MUL 05MUL 3ADD 4MUL 5ADD 3MUL 28ADD 32MUL 5312ADD 7MUL 7ADD 32MUL 5312ADD 7MUL 70Sample Output:
6553613276816
这道题是一道传说中的水题吧,但是写的时候还是有很大的问题的。没有AC。就当做一个记录留下来吧。
AC代码:
1 #include <iostream> 2 #include <cstdio> 3 4 using namespace std; 5 char ans[6]; 6 int main() 7 { 8 int n; 9 while(cin>>n&&n){10 int aa = 65536,haha;11 for(int i = 0;i < n;i++){12 scanf("%s",ans);13 cin>>haha;14 if(ans[0]==‘M‘){15 16 if(haha==0){aa = 1;break;}17 while(haha%2==0){18 haha/=2;19 aa/=2;20 }21 }22 }23 if(aa>=1)24 cout<<aa<<endl;25 else cout<<1<<endl;26 }27 return 0;28 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。