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 ...
随机推荐
- .Net Mvc EasyUI DataGrid 分页
由于项目的需要,最近一直在学习 .net MVC 和EasyUI.上周写了一个<.Net Mvc 返回Json,动态生成EasyUI Tree>,今天再写一个EasyUI中另一个重要的组件 ...
- qt creator转换到 COFF 期间失败: 文件无效或损坏
转载请注明出处http://www.cnblogs.com/dachen408/p/7226198.html 环境 Qt5.5+Vs2010,删除vs2010安装目录bin下的cvtres.exe解决 ...
- HDU_1710_二叉树前序中序确定后序
2018-3-6 按照王道机试书上的思路再做了一遍,先根据先序和中序建树,然后后序遍历. 静态分配数组用于建树,可以返回数组地址当作结点指针. #include<iostream> #in ...
- CREATE SCHEMA - 定义一个新的模式
SYNOPSIS CREATE SCHEMA schemaname [ AUTHORIZATION username ] [ schema_element [ ... ] ] CREATE SCHEM ...
- docker 入门学习
一 : docker 安装(linux-centos7) 安装docker要求 1.docker只支持在64位cup架构计算机上运行,目前不支持32位cup. 2.建议系统的linux内核版本在3.1 ...
- 实现UAC对话框效果
设置桌面全屏: int cxScreen,cyScreen; cxScreen=GetSystemMetrics(SM_CXSCREEN); cyScreen=GetSystemMetrics(SM_ ...
- loader.js
/** * @preserve Tiny-Loader: A small loader that load CSS/JS in best way for page performanceIs. * * ...
- BZOJ 3996 线性代数 最小割
题意: 给出一个N*N的矩阵B和一个1*N的矩阵C.求出一个1*N的01矩阵A.使得 D=(A*B-C)*A^T最大.其中A^T为A的转置.输出D 分析: 这道题比较绕,我们需要看清题目中那个式子的本 ...
- Spring接收web请求参数的几种方式
1 查询参数 请求格式:url?参数1=值1&参数2=值2...同时适用于GET和POST方式spring处理查询参数的方法又有几种写法: 方法一:方法参数名即为请求参数名 // 查询参数1 ...
- Python之爬虫-猫眼电影
Python之爬虫-猫眼电影 #!/usr/bin/env python # coding: utf-8 import json import requests import re import ti ...