Codeforces Round #389 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 3)
来源:互联网 发布:java中反射的应用 编辑:程序博客网 时间:2024/06/05 05:55
A
#include <cstdio>#include <cstring>#include <cmath>#include <cctype>#include <iostream>#include <algorithm>#include <sstream>#include <queue>#include <stack>#include <set>#include <map>#include <vector>#include <utility>using namespace std;typedef long long ll;const int qq = 1e5 + 10;ll num[qq];int main(){int n, m, k; cin >> n >> m >> k;int x, y;int c = m*2;y = k%c == 0? k/c:k/c+1;char s;k = k%c == 0? c : k%c;if(k%2 == 0)x = k/2;else x = k/2 + 1;if(k%2 == 1)s = 'L';elses = 'R';cout << y << " " << x << " " << s << endl;return 0;}
B
题意:给出两个字符串a,b, 问能否通过字母的映射使得字符串b变成a
思路: 唯一的坑点就在与多重映射, 因为如果是字母a -> 字母a的话这样情况是不算一次映射的.
哈哈 fst的时候只过了700+ 和我一起打的伙伴们都挂了 我就一个在哪里出力瑟瑟发抖
#include <cstdio>#include <cstring>#include <cmath>#include <cctype>#include <iostream>#include <algorithm>#include <sstream>#include <queue>#include <stack>#include <set>#include <map>#include <vector>#include <utility>using namespace std;typedef long long ll;const int qq = 1e5 + 10;string a, b;int str[1005];int o[1005];struct C{ char a, b;}num[1005];int main(){cin >> a >> b;int k = 0;bool f = true;memset(str, 0, sizeof(str));memset(o, 0, sizeof(o));for(int i = 0; i < (int)b.size(); ++i){if(str[b[i]])continue;o[a[i]]++;if(o[a[i]] >= 2)f = false;str[b[i]] = a[i];}if(!f){cout << -1 << endl;return 0;}for(int i = 0; i < (int)b.size(); ++i){if(!str[b[i]])continue;b[i] = str[b[i]];}int p = 0;if(a == b){for(int i = 0; i < 200; ++i)if(str[i]){ char q, w; q = i, w = str[i]; if(q == w)continue; if(q > w)swap(q, w); bool flag = true; for(int j = 0; j < p; ++j) if(num[j].a == q && num[j].b == w)flag = false; else if(num[j].a == q || num[j].b == w)f = false; if(flag){ num[p].a = q, num[p].b = w; p++; }}if(!f){cout << -1 << endl;return 0;} cout << p << endl; for(int i = 0; i < p; ++i) cout << num[i].a << " " << num[i].b << endl;}elsecout << "-1" << endl;return 0;}
C
题意:给出n次操作, 每次可以向上 向下 向左 向右走一个单位, 他每次都是从一个点走到另外一个点 并且走的一定是最短距离, 求一共进行了多少次这样的操作
思路:按照过程模拟即可 每次从始发地到目的地走最短距离, 那么也就是说每次走之后距离始发地越远则还在像目的地移动, 如果距离一旦减少, 说明走之前的点就是目的地, 然后更新事发地, 一直模拟下去即可
#include <cstdio>#include <cstring>#include <cmath>#include <cctype>#include <iostream>#include <algorithm>#include <sstream>#include <queue>#include <stack>#include <set>#include <map>#include <vector>#include <utility>using namespace std;typedef long long ll;const int qq = 2e5 + 10;typedef pair<ll, ll> pill;map<pill, int> Q;bool vis[qq];string s;ll dis;ll o1, o2;bool f(ll a, ll b){if(abs(a-o1)*abs(a-o1)+abs(b-o2)*abs(b-o2) > dis){dis = abs(a-o1)*abs(a-o1)+abs(b-o2)*abs(b-o2);return true;}return false;}int main(){ll n; cin >> n;ll x, y;x = y = 0;o1 = o2 = 0;dis = 0;cin >> s;int k = 0;for(int i = 0; i < n; ++i){ int xx = x, yy = y;if(s[i] == 'U')x = x + 1;else if(s[i] == 'D')x = x - 1;else if(s[i] == 'R')y = y + 1;else if(s[i] == 'L')y = y - 1;if(!f(x, y)){ dis = 1; Q[make_pair(xx, yy)] = 1; k++; o1 = xx; o2 = yy;}}k++;cout << k << endl;return 0;}
0 0
- Codeforces Round #389 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 3) 圣诞之夜!
- Codeforces Round #389 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 3) 总结
- Codeforces Round #389 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 3)
- Codeforces Round #389 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 3) E
- Codeforces Round #389 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 3) D
- Codeforces Round #389 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 3) F
- Codeforces Round #380 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 2)
- Codeforces Round #380 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 2)
- 【解题报告】Codeforces Round #380 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 2)
- Codeforces Round #380 (Div. 2, Rated, Based on Technocup 2017
- Codeforces Round #380 (Div. 2, Rated, Based on Technocup 2017 – Elimination Round 2) A. Interview wi
- Codeforces Round #380 (Div. 2,Based on Technocup 2017 - Elimination Round 2)C - Road to Cine//
- Codeforces Round #445 (Div. 2, based on Technocup 2018 Elimination Round 3)
- Codeforces Round #445 (Div. 2, based on Technocup 2018 Elimination Round 3)
- Codeforces Round #445 (Div. 2, based on Technocup 2018 Elimination Round 3)
- Codeforces Round #440 (Div. 2, based on Technocup 2018 Elimination Round 2)
- Codeforces Round #440 (Div. 2, based on Technocup 2018 Elimination Round 2)
- Codeforces Round #440 (Div. 2, based on Technocup 2018 Elimination Round 2)
- 深度学习书籍
- Python 练习册,每天一个小程序----------000 图片右上角加上红色的数字
- android fragment
- httpget api,4.0中要求在线程中实现
- 一键强制修改任意Mysql数据库的密码,修改任意环境Mysql数据库。
- Codeforces Round #389 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 3)
- 请教一下解析json的问题
- android TabHost切换导致FragmentActivity重启
- knockout + require + director 构建单页面程序(integration)
- Leetcode First Unique Character in a String
- android webview加载url异常
- 二维数组经典地址问题
- asp页面之间传递值得方法
- Leetcode 73. Set Matrix Zeroes