A.机器人足球
时间限制:2s
描述:
足球场地长为100,宽为20,对方球门的坐标为(100,10),你要控制一个机器人踢球,初始位置为(x,y),机器人可以朝任何方向移动,但不能超出场地边界。当机器人与球门距离不超过10时,可以射门。问机器人从初始位置出发到射门,最少要移动多少距离?(四舍五入到小数点后3位)
输入
每组输入为2个整数,分别为x,y
0<=x<=100
0<=y<=20
输出
输入最小移动的距离
机器人足球 简单几何,注意到距离d<=10的时候移动距离为0
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
template<typename T>
void OOM(T a, string s = "") {
cerr << s << ":\t";
for (auto e:a) {
cerr << e.first << "," << e.second << " ";
}
cerr << endl;
}
template<typename T>
void OO(T a, string s = "") {
cerr << s << ":\t";
for (auto e:a) {
cerr << e << " ";
}
cerr << endl;
}
template<typename T>
inline void oo(string str, T val) { cerr << str << val << endl; }
template<typename T>
inline T read() {
T x;
cin >> x;
return x;
}
#define endl '\n'
#define FOR(i, x, y) for (decay<decltype(y)>::type i = (x), _##i = (y); i < _##i; ++i)
#define FORD(i, x, y) for (decay<decltype(x)>::type i = (x), _##i = (y); i > _##i; --i)
int main() {
std::iostream::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
double x(read<double>()), y(read<double>());
cout << fixed << setprecision(3) << max(hypot(x - 100, y - 10) - 10, 0.0) << endl;
return 0;
}
B
B.纸牌识别
时间限制:2s
描述:
Alice沉迷于机器人研究,他打算做一个机器人来检查一副扑克是否完成,现在,他想请你帮他写一个程序,来识别纸牌。每张纸牌都有一个花色(四种花色,分别用大写字母P,K,H,T表示)和一个数字点数(1-13).纸牌可以用ABC的形式来表示,A代表花色,BC代表数字,如果数字小于10,会有一位补0.比如花色是P,数字是9的纸牌会表示成P09.一副完整的纸牌有52张牌,四种不同的花色各有1张数字1-13的牌。
你的程序要读入一个字符串,表示缺少的纸牌有哪些,如果包含相同的纸牌(花色数字都相同)输出GRESKA,否则输入每种花色剩余的纸牌数量。
输入
输入只有一行,一个字符串s,s的长度小于等于1000.
输出
如果输入中包含相同的纸牌,输出GRESKA,否则分别输入四个整数,代表P,K,H,T四种花色纸牌的剩余数量。
样例输入1
P01K02H03H04
1
样例输出1
12 12 11 13
1
样例输入2
H02H10P11H02
1
样例输出2
GRESKA
1
提示
样例1中P花色缺少P01,所以只有12张,K花色缺少K02,所以也只有12张,H花色缺少两张;T花色不缺牌。
模拟
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
#define endl '\n'
#define FOR(i, x, y) for (decay<decltype(y)>::type i = (x), _##i = (y); i < _##i; ++i)
#define FORD(i, x, y) for (decay<decltype(x)>::type i = (x), _##i = (y); i > _##i; --i)
template<typename T>
void OOM(T a, string s = "") {
cerr << s << ":";
for (auto e:a) cerr << e.first << "," << e.second << " ";
cerr << endl;
}
template<typename T>
void OO(T a, string s = "") {
cerr << s << ":";
for (auto e:a)cerr << e << " ";
cerr << endl;
}
template<typename T>
inline void oo(string str, T val) { cerr << str << val << endl; }
template<typename T>
inline T read() {
T x;
cin >> x;
return x;
}
int main() {
set<pair<char, int>> S;
string str("PKHT");
for (auto c : str) {
for (int i = 1; i <