NBUT 1450 Blitzcrank
[1450] Blitzcrank
- 时间限制: 1000 ms 内存限制: 65535 K
- 问题描写叙述
Blitzcrank is
a robot.There are some pretty good registers(寄存器) in Blitzcrank's body.
There are some instructions about register
A and register
B:1.ADD
A, B means a
+= b. The machine
code is 80
AF BF.2.ADD
A, A means a
+= a. The machine
code is F0
AF.3.ADD
B, B means b
+= b. The machine
code is F0
BF.4.ADD
B, A means b
+= a. The machine
code is 80
BF AF.Now give you the values in register
A and register
B and some machine codes. You should calculate out the final value in register
A and register
B after operating the machine
code.- 输入
- The frist line contains an integer T, means there are T test cases.
For each test case, the first line contains two integers means the initial value of the register A and the register B in hexadecimal(十六进制).
The next line contains a series of hexadecimal numbers. - 输出
- For each test case, print the register A and register B's value in hexadecimal.
- 例子输入
2
A1 B2
80 AF BF F0 AF
B2 B3
F0 AF F0 BF- 例子输出
2A6 B2
164 166- 提示
The first case's machine codes 80 AF BF F0 AF is composed of ADD A, B and ADD A, A.
- 来源
Monkeyde17
这题目事实上挺水的,我写着题的目的主要是想分享一下刚学到的超神string和stringstream的使用方法。
这题目是说给出两个十六进制的数A和B,通过输入特定字符串进行操作。相同用十六进制输出操作后的A和B。详细操作为:1.当输入“80 AF BF”时,a += b。
2.当输入“F0 AF”时。a
+= a.3.当输入“F0 BF”时,b
+= b.4.当输入“80 BF AF”时。b
+= a.这题主要就是考察字符串的处理。
用普通的方法能够非常快敲出来:
#include<cstring>
#include<cstdio>
#include<cmath>
const int mx=1e6+10;
char s[mx];
int a,b,l; int main() {
int t;
scanf("%d",&t);
while(t--) {
scanf("%X %X",&a,&b);
getchar();
gets(s); //因为操作次数不确定,所以用scanf难以控制,则用gets比較方便
l=strlen(s);
int i=0;
while(i<l)
{
if(s[i]=='8')
{
if(s[i+3]=='A' )
a+=b;
else if(s[i+3]=='B')
b+=a;
i+=9;
}
else if(s[i]=='F')
{
if(s[i+3]=='A')
a+=a;
else if(s[i+3]=='B')
b+=b;
i+=6;
}
}
printf("%X %X\n",a,b); //此处的%x和%X要区分开。用大写输出的字母就是大写,用小写就输出小写字母
}
return 0;
}只是这个代码不是我要展示的重点,我认为特别奇妙的是string
/*
Author:ZXPxx
Memory: 268 KB Time: 343 MS
Language: G++ Result: Accepted
*/ #include<cstring>
#include<iostream>
#include<sstream>
#include<cstdio>
using namespace std;
stringstream sbuf;
int main() {
int t;
scanf("%d",&t);
while(t--)
{
int A,B;
string str,op,a,b;
cin>>hex>>A>>B;
sbuf.clear();
cin.ignore();
getline(cin,str);
sbuf<<str;
while(sbuf>>op)
{
if(op=="80")
{
sbuf>>a>>b;
if(a=="AF")
A+=B;
else
B+=A;
}
else
{
sbuf>>a;
if(a=="AF")
A+=A;
else
B+=B;
}
}
printf("%X %X\n",A,B);
}
return 0;
}就像处理整形数据一样,好方便啊……
NBUT 1450 Blitzcrank的更多相关文章
- NBUT 1457 莫队算法 离散化
Sona Time Limit:5000MS Memory Limit:65535KB 64bit IO Format: Submit Status Practice NBUT 145 ...
- ACM: NBUT 1107 盒子游戏 - 简单博弈
NBUT 1107 盒子游戏 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format: Practice Appoint ...
- ACM: NBUT 1105 多连块拼图 - 水题 - 模拟
NBUT 1105 多连块拼图 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format: Practice Appoint ...
- ACM: NBUT 1646 Internet of Lights and Switches - 二进制+map+vector
NBUT 1646 Internet of Lights and Switches Time Limit:5000MS Memory Limit:65535KB 64bit IO Fo ...
- NBUT 1525 Cow Xor(01字典树+前缀思想)
[1525] Cow Xor 时间限制: 2000 ms 内存限制: 65535 K 问题描述 农民约翰在喂奶牛的时候被另一个问题卡住了.他的所有N(1 <= N <= 100,000)个 ...
- NBUT 1186 Get the Width(DFS求树的宽度,水题)
[1186] Get the Width 时间限制: 1000 ms 内存限制: 65535 K 问题描述 It's an easy problem. I will give you a binary ...
- NBUT 1635 Explosion(最小顶点覆盖)
[1635] Explosion 时间限制: 10000 ms 内存限制: 65535 K 问题描述 there is a country which contains n cities connec ...
- NBUT 1602 Mod Three(线段树单点更新区间查询)
[1602] Mod Three 时间限制: 5000 ms 内存限制: 65535 K 问题描述 Please help me to solve this problem, if so, Liang ...
- NBUT 1028 该减肥了(简单递推)
[1028] 该减肥了 时间限制: 1000 ms 内存限制: 65535 K 问题描述 由于长期缺乏运动,Teacher Xuan发现自己的身材臃肿了许多,于是他想健身,更准确地说是减肥.Teach ...
随机推荐
- jQuery 小实例 关于按字母排序
jQuery的强大再次不再赘述 一般情况下操作表格式数据的一种最常见的任务就是排序,在一个大型的表格中,能够对要寻找的信息进行重新排列是非常重要的,一般情况用来完成排序的方式有两种 :一种是服务器端排 ...
- C++ class、struct区别
一.默认访问控制不同(最主要) struct默认为public,class默认为private.这个访问控制既是指成员的默认访问属性,又指继承时默认的继承属性. 二.定义template时不同 在模版 ...
- hibernate 批量抓取
使用场景: 是查询出来一个集合,然后又查询每个集合对象中的集合.使用set标签中的batch-size属性实现. 数据库中只有5个区道信息: 设置batch-size=”5”,执行的查询语句如下: 而 ...
- CAD绘制标记(网页版)
主要用到函数说明: MxDraw::GetCursorPickRect 返回拾取矩形框的宽度,默认值为6.详细说明如下: 参数 说明 IN MXDRAWOCXHANDLE hOcx 控件窗口句柄 OU ...
- [转载]在网页中插入media,RealPlayer等控件
[转载]在网页中插入media,RealPlayer等控件 (2012-11-02 20:27:43) 转载▼ 标签: 转载 原文地址:在网页中插入media,RealPlayer等控件作者:Mo ...
- iOS缓存到内存
前面一片文章介绍了如何上传和下载文件,这篇文章将介绍一下如何在iOS设备中进行缓存. 这篇文章将只介绍一下将内容缓存到内存中,下一篇文章就介绍一下在iOS磁盘上缓存内容. 使用缓存的目的是为了使用的应 ...
- 常见算法的python实现
提到排序算法,常见的有如下几种:冒泡排序.选择排序.插入排序.快速排序.堆排序.归并排序.希尔排序:查找算法最常见二分查找.这些算法的时间复杂度如下: 算法名称 时间复杂度(一般情况) 冒泡排序 O( ...
- 89-Relative Vigor Index 相对活力指数指标.(2015.7.4)
Relative Vigor Index 相对活力指数指标 ~计算: RVI = (CLOSE-OPEN)/(HIGH-LOW) RVIsig=SMA(RVI,N) ~思想: 牛市中,收盘>开盘 ...
- [bzoj1078][SCOI2008][斜堆] (贪心)
Description 斜堆(skew heap)是一种常用的数据结构.它也是二叉树,且满足与二叉堆相同的堆性质:每个非根结点的值都比它父亲大.因此在整棵斜堆中,根的值最小.但斜堆不必是平衡的,每个结 ...
- Webbrowser 在web项目中的使用
string htmlstr = string.Empty; [STAThread] public string GetHtmlByWeb(string url) { try { RunWithSin ...