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 ...
随机推荐
- iOS-UI控件之UITableView(一)
UITableView 介绍 UITableView 是用来用列表的形式显示数据的UI控件 举例 QQ好友列表 通讯录 iPhone设置列表 tableView 常见属性 // 设置每一行cell的高 ...
- leetcode_654. Maximum Binary Tree
https://leetcode.com/problems/maximum-binary-tree/ 给定数组A,假设A[i]为数组最大值,创建根节点将其值赋为A[i],然后递归地用A[0,i-1]创 ...
- Python之三元运算、集合、函数
一.三元运算符 三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值 格式:[on_true] if [expression] else [on_false] res = 值1 if 条件 els ...
- MySQL ORDER BY IF() 条件排序
源 在做sqlzoo的时候,碰到一个SQL的排序问题,他把符合条件的单独几行,可以放在查询结果的开始,或者查询结果的尾部 通过的方法就是IN语句(也可以通过IF语句) 自己做了个测试,如下,这个是表的 ...
- php+nginx 限制上传文件大小
问题:在后台上传8M大小的图片,上传不成功 nginx返回413,如下图所示: 分析:nginx配置文件或者php中,可上传的大小设置太小了 解决办法------检查nginx和php的配置文件里面的 ...
- 获取windows版本号
原文:https://blog.csdn.net/justFWD/article/details/44856277 内容整理如下,点击跳至指定内容: manifest文件加上compatibility ...
- java引用数据类型在方法中的值传递
package org.jimmy.autosearch20180821.test; public class TestStringArr { public static void main(Stri ...
- Redux的中间件Middleware不难,我信了^_^
Redux的action和reducer已经足够复杂了,现在还需要理解Redux的中间件.为什么Redux的存在有何意义?为什么Redux的中间件有这么多层的函数返回?Redux的中间件究竟是如何工作 ...
- 零基础入门学习Python(17)--函数:Python的乐高积木
前言 相信大家小时候都玩过神奇的乐高积木, 只要通过想象力和创造力我们可以拼凑很多神奇的东西,那么随着我们学习的深入,我们编写的Python代码也将日益增加,并且也越来越复杂, 所以呢,我们需要找寻一 ...
- linux命令 dig-域名查询工具
博主推荐:更多网络测试相关命令关注 网络测试 收藏linux命令大全 dig命令是常用的域名查询工具,可以用来测试域名系统工作是否正常. 语法 dig(选项)(参数) 选项 @<服务器地址&g ...