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

解析:

我感觉 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. 最近新出的C++右值引用的意思

    看了一下这种方法的介绍,个人感觉,右值引用,更像人类的思想了,有些将编译前与编译后结合紧密的感觉. 左值引用是变量名的别名,右值引用是值的别名,也就是不将值赋给一个变量名所在的地址,直接将值所在的初始 ...

  2. Fuel4D 2.1 免费跨平台游戏引擎 现已发布

    Fuel4D 2.1 免费跨平台游戏引擎 现已发布 开发环境:纯 C/C++,无JAVA.O-C. 支持 WIN32.安卓 系统. 详情见官方网站:http://www.fuel4d.com 或者进F ...

  3. 第一篇:R语言数据可视化概述(基于ggplot2)

    前言 ggplot2是R语言最为强大的作图软件包,强于其自成一派的数据可视化理念.当熟悉了ggplot2的基本套路后,数据可视化工作将变得非常轻松而有条理. 本文主要对ggplot2的可视化理念及开发 ...

  4. AES对称加密算法

    package cn.jsonlu.passguard.utils; import org.apache.commons.codec.binary.Base64; import javax.crypt ...

  5. 注册表修改IP地址和DNS等信息

    ---------------------win8系统 1. 2. 3. --------------------------------------------------------------- ...

  6. (Error) The type AESKeyGenerator is not accessible due to restriction on required library.

    error for 'Access restriction: The type AESKeyGenerator is not accessible due to restriction on requ ...

  7. Swift - 12 - 区间运算符和for-in

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  8. 开始Swift之旅 - HelloWorld

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  9. C#委托基础

    转载自 http://woshixy.blog.51cto.com/5637578/1070976     C#委托基础1——委托基础   委托和其委托的方法必须具有相同的签名.签名相同:1.参数类型 ...

  10. 理解angularJS中作用域$scope

    angularJS中作用域是什么 作用域(scope)是构成angularJS应用的核心基础,在整个框架中都被广泛使用,因此了解它如何工作是非常重要的 应用的作用域是和应用的数据模型相关联的,同时作用 ...