安徽省2019年程序设计大赛 L.曲奇工厂 H.不要回文 K.福报

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 <
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值