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 ...
随机推荐
- vue2.0 路由知识一(路由的创建的全过程)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- chosen-bootstrap使用技巧
1.页面加载完成后,通过js方式设置值,无法有效显示的问题. 解决:先设置值,让后在进行初始化操作. // 设置select选中值 $("#type").val(type); // ...
- vultr服务器L2TP搭建
前期准备,购买外服,选择vultr服务商,可选择洛杉矶的,系统为Ubuntu 14.04 x64 一.安装L2TP/IPSec wget --no-check-certificate https:// ...
- h5编写帧动画
var requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame; var ...
- 用 vue cli 脚手架搭建单页面 Vue 应用(进阶2)
1.配置 Node 环境. 自行百度吧. 安装好了之后,打开 cmd .运行 node -v .显示版本号,就是安装成功了. 注:不要安装8.0.0以上的版本,和 vue-cli 不兼容. 我使用的 ...
- 图解C/C++多级指针与多维数组
声明:本文转自 chenyang_yao ,欢迎阅读原文. 指针与数组是C/C++编程中非常重要的元素,同时也是较难以理解的.其中,多级指针与“多维”数组更是让很多人云里雾里,其实,只要掌握一定的方法 ...
- LBE_登录Demo
目录 服务器 最小资产库创建 entity配置 实体的Python实现 创建第一个空间Space 让entity进入空间Space 客户端(unity) 生成客户端SDK 实现Client部分验证 验 ...
- rbac组件之数据库设计(一)
rbac是基于角色的权限设计,一共包含六张表,具体的表设计如下: from django.db import models class Menu(models.Model): "" ...
- C++ string 转整数
使用 sstream 完成转换, #include <iostream> #include <string> #include <sstream> #include ...
- Qt 编写应用支持多语言版本--一个GUI应用示例
简介 上一篇博文已经说过如何编写支持多语言的Qt 命令行应用,这一篇说说Qt GUI 应用多语言支持的坑. 本人喜欢用代码来写布局,而不是用 Qt Designer 来设计布局,手写布局比 Qt De ...