(2015年郑州轻工业学院ACM校赛题) E 汇编原理
此题属于比较麻烦的模拟题,比赛的时候是队友写的, 比赛结束之后自己也写了一遍,感觉对复杂模拟的掌控还是不行!
解析:
我感觉 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 汇编原理的更多相关文章
- (2015年郑州轻工业学院ACM校赛题)H 五子棋
我们最后选题策略失败,选到五子棋这题,没想到这题非常麻烦,最后也没做出来! 比赛结束后发了题解再做才做出来! 不得不说 这题真的很麻烦 一个需要比较细致分类讨论的题目.判定棋盘是否合法应考虑如下几种情 ...
- (2015年郑州轻工业学院ACM校赛题) C 数列
在我们做完B题之后就去看C题了, 发现很多人都已经做出来了, 并且一血还是我们学弟拿的, 感觉这题不难, 我们举了几个例子之后发现全是Alice 然后我们就决定意淫一下,试试看! 没想到就A了 - . ...
- (2015年郑州轻工业学院ACM校赛题) B迷宫
这是个简单的广搜题,注意下一下细节都能写出来, 大多数人都少考虑了一点,就是 假如 我的起始点就有一个机关, 并且不是 1 号机关, 这样的话是无结果的.不懂的可以测试一下代码下面的数据 #inclu ...
- (2015年郑州轻工业学院ACM校赛题) A 彩票
这是个简单的题目,其实就是判断是否是偶数, 对二进行特判一下就行了! 比赛时候我们还错两次................ 一看简单题就想抢一血,谁知到第一次提交CE, 再提交WA 汗........ ...
- (2015年郑州轻工业学院ACM校赛题) J 堆
判断是否是一个堆,把树构造好遍历一遍就OK了 #include<stdio.h> #include<iostream> #include<stack> #inclu ...
- (2015年郑州轻工业学院ACM校赛题)I 旋转图像
矩阵旋转,写一个转 90° 的函数就行了, 注意每次要将 长和宽的值进行交换就行了. #include<stdio.h> #include<iostream> #include ...
- (2015年郑州轻工业学院ACM校赛题) G 矩阵
看这道题的时候就感觉用一点动归思想+暴力 就能过了. #include<stdio.h> #include<iostream> #include<stack> #i ...
- 20170416郑州市轻工业学院ACM校赛
这是个星期天,但是,这种非一线城市,重点城市什么的高中,放假从来不按套路出牌,几乎可以说能给你一天是福气.当然,比县里好的多,问在县里上高中的初中同学,放假更是比我们一天里的午休+晚上吃饭时间还要少. ...
- 第八届郑州轻工业学院ACM(程序设计大赛)校内预选赛
郑州轻工业学院有一个大赛,把几个有趣的题目分享一下.下面是题目连接,喜欢了就点点... 斗破苍穹 礼上往来 统计人数 神の数 炉石传说 Mathematics and Geometry 马拉松后记 斗 ...
随机推荐
- [CSS3] CSS :target Selector
The :target selector allows us to interact with a fragment identifier, or hash, in our URL from CSS. ...
- MYSQL 体系结构图-LRU
- cocos2d-x项目过程记录(cocos2d-x的新知)
1.给CCMenuItem带上点击参数(这是CCNode的一个属性) CCMenuItem *item = CCMenuItemSprite::create(unselectedPic, select ...
- [转] JAVA的Random类
Random类 (java.util) Random类中实现的随机算法是伪随机,也就是有规则的随机.在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要 ...
- git 创建远程仓库
在远程服务器上$ cd /server/path/ $ git init --bare myproject.git 在本地 1> $ cd /client/path/ 运行 git init 2 ...
- BestCoder冠军赛 - 1009 Exploration 【Tarjan+并查集缩点】
[题意] 给一个图,这个图中既有有向边,又有无向边,每条边只能走一次,问图中是否存在环. 最多10^6个点,10^6个无向边,10^6个有向边 [题解] 因为既有有向边又有无向边,所以不能单纯的用ta ...
- codevs 1047 邮票面值设计
/* 开始没啥好的思路 暴力吧 T的太严重 加了k>n的特判 结果没数据…..然后又暴力生成了几组答案 打表 然而有没有数据 华丽的爆零了 正解 回溯+DP 回溯生成k数组 然后DP找最优解更新 ...
- MeasureSpec
在自定义View和ViewGroup的时候,我们经常会遇到int型的MeasureSpec来表示一个组件的大小,这个变量里面不仅有组件的尺寸大小,还有大小的模式. 这个大小的模式,有点难以理解.在系统 ...
- Asp.Net操作WebServices
最近在看一些关于webServices的资料,做了一个下例子整理一下,主要包括.net平台下创建services服务.后台访问和前端Ajax访问三部分. 一.创建webServices服务. 1.打开 ...
- Objective-C学习篇05—Foundation框架简介
iOS中所谓的框架,说到底就是一个目录,iOS提供了很多我们可以在应用程序中调用的框架.许多应用程序都使用了如Foundation.UIKit和Core Graphics这些框架.根据你为应用程序选择 ...