此题属于比较麻烦的模拟题,比赛的时候是队友写的, 比赛结束之后自己也写了一遍,感觉对复杂模拟的掌控还是不行!

解析:

我感觉 ADD操作 和 MOV操作比较类似 所以就写在了一块,MUL操作单独写就行了。

#include<stdio.h>
#include<string.h>
#define maxn 100 long long cpu[][]; int Binary(char str[])
{
int i, sum = ;
for(i=; str[i]; i++)
sum = sum* + str[i]-''; return sum;
} int GetR()
{
int i, len, R;
char str[maxn]; scanf("%s", str); len = strlen(str)-; if(str[] >= 'A' && str[] <= 'D')
{
if(str[] == 'H')
R = cpu[str[]-'A'][];
else if(str[] == 'L')
R = cpu[str[]-'A'][];
else if(str[] == 'X')
R = cpu[str[]-'A'][];
} else if(str[len] == 'H')
{
str[len] = ;
sscanf(str+,"%X", &R);
} else if(str[len] == 'B')
{
str[len] = ;
R = Binary(str+);
}
else
{
sscanf(str+,"%d", &R);
} return R;
} void MOV_ADD(int m,int n,int flag)
{
int R; R = GetR(); if(flag == )
{
cpu[m][n] = R;
}
else
{
cpu[m][n] += R;
} if(n == )
{
cpu[m][] = cpu[m][]/;
cpu[m][] = cpu[m][]%;
}
else
cpu[m][] = cpu[m][]* + cpu[m][];
} void MUL(int m,int n)
{ if(n == || n == )
{
cpu[][] = cpu[m][n]*cpu[][];
}
else
{
cpu[][] = (cpu[m][n]*cpu[][])/;
cpu[][] = (cpu[m][n]*cpu[][])%; cpu[][] = cpu[][]/;
cpu[][] = cpu[][]%;
}
cpu[][] = cpu[][]/;
cpu[][] = cpu[][]%;
} int main()
{
int T, t, k, x;
char str[maxn], str2[maxn];
scanf("%d",&T); while(T--)
{ scanf("%d",&t);
memset(cpu, , sizeof(cpu));
while(t--)
{
scanf("%s%2s", str,str2); k = str2[] - 'A'; if(str2[] == 'X')
x = ;
else if(str2[] == 'H')
x = ;
else if(str2[] == 'L')
x = ; if(strcmp(str,"MOV") == )
{
MOV_ADD(k,x,);
}
else if(strcmp(str,"ADD") == )
{
MOV_ADD(k,x,);
}
else
MUL(k,x);
}
printf("%lld %lld %lld %lld\n",cpu[][], cpu[][], cpu[][], cpu[][]);
}
return ;
}

(2015年郑州轻工业学院ACM校赛题) E 汇编原理的更多相关文章

  1. (2015年郑州轻工业学院ACM校赛题)H 五子棋

    我们最后选题策略失败,选到五子棋这题,没想到这题非常麻烦,最后也没做出来! 比赛结束后发了题解再做才做出来! 不得不说 这题真的很麻烦 一个需要比较细致分类讨论的题目.判定棋盘是否合法应考虑如下几种情 ...

  2. (2015年郑州轻工业学院ACM校赛题) C 数列

    在我们做完B题之后就去看C题了, 发现很多人都已经做出来了, 并且一血还是我们学弟拿的, 感觉这题不难, 我们举了几个例子之后发现全是Alice 然后我们就决定意淫一下,试试看! 没想到就A了 - . ...

  3. (2015年郑州轻工业学院ACM校赛题) B迷宫

    这是个简单的广搜题,注意下一下细节都能写出来, 大多数人都少考虑了一点,就是 假如 我的起始点就有一个机关, 并且不是 1 号机关, 这样的话是无结果的.不懂的可以测试一下代码下面的数据 #inclu ...

  4. (2015年郑州轻工业学院ACM校赛题) A 彩票

    这是个简单的题目,其实就是判断是否是偶数, 对二进行特判一下就行了! 比赛时候我们还错两次................ 一看简单题就想抢一血,谁知到第一次提交CE, 再提交WA 汗........ ...

  5. (2015年郑州轻工业学院ACM校赛题) J 堆

    判断是否是一个堆,把树构造好遍历一遍就OK了 #include<stdio.h> #include<iostream> #include<stack> #inclu ...

  6. (2015年郑州轻工业学院ACM校赛题)I 旋转图像

    矩阵旋转,写一个转 90° 的函数就行了, 注意每次要将 长和宽的值进行交换就行了. #include<stdio.h> #include<iostream> #include ...

  7. (2015年郑州轻工业学院ACM校赛题) G 矩阵

    看这道题的时候就感觉用一点动归思想+暴力 就能过了. #include<stdio.h> #include<iostream> #include<stack> #i ...

  8. 20170416郑州市轻工业学院ACM校赛

    这是个星期天,但是,这种非一线城市,重点城市什么的高中,放假从来不按套路出牌,几乎可以说能给你一天是福气.当然,比县里好的多,问在县里上高中的初中同学,放假更是比我们一天里的午休+晚上吃饭时间还要少. ...

  9. 第八届郑州轻工业学院ACM(程序设计大赛)校内预选赛

    郑州轻工业学院有一个大赛,把几个有趣的题目分享一下.下面是题目连接,喜欢了就点点... 斗破苍穹 礼上往来 统计人数 神の数 炉石传说 Mathematics and Geometry 马拉松后记 斗 ...

随机推荐

  1. 高效实现 std::string split() API

    Qt下一个 QString 实现split()性能.和std::string未实现它的.STL也未实现.只有自己可以写一. #include <string> #include <v ...

  2. SmartFoxServer 2x的pythonclient

    最近的研究SmartFoxServer 2x.这是一个对网络游戏的Web开发框架.服务器基于java netty为发展框架,client支持flash,unity, ios, android(java ...

  3. IntentFilter

    当Intent在组件间传递时,组件如果想告知Android系统自己能够响应和处理哪些Intent,那么就需要用到IntentFilter对象. 顾名思义,IntentFilter对象负责过滤掉组件无法 ...

  4. css标签选择器

    /*标签选择器*/ input[type="text"] { width: 60%; } </style>

  5. php 简单连接数据库的操作

    <?php /** * TestGuest Version1.0 * ================================================ * Copy 2010-2 ...

  6. .Net程序员 Solr-5.3之旅 (一)Solr入门

    阅读目录 引言 Lunece是什么? Solr是什么 JAVA环境搭建 JAVA环境搭建之变量配置 Tomcat简单配置 结尾 引言 君子生非异也,善假于物也. Java和.Net哪个好,我们也不需要 ...

  7. ASPNET5 诊断

    1. 配置一个错误的处理页 在ASP.NET5, 可以在Startup的Configure里配置一个错误处理页,对于开发来说,非常简单,只要增加Microsoft.AspNet.Diagnostics ...

  8. 为什么z-index不起作用

    感觉很简单的东西 在用的时候 可能会遇到这样活那样的问题 这就是要注意细节:参考地址:http://www.ourjour.com/136/ 设置z-index 不起作用,可能是这三个原因: 1.父标 ...

  9. bitmap index

    bitmap index 说明: set echo on drop table t purge; create table t ( processed_flag ) ); create bitmap ...

  10. [转]Delphi中进行延时的4种方法

    1.挂起,不占CPU sleep 2.不挂起,占cpu procedure Delay(msecs:integer); var FirstTickCount:longint; begin FirstT ...