1421A. XORwice
题目链接:Click Here
// Author : RioTian// Time : 20/10/18#include <bits/stdc++.h>#define ms(a, b) memset(a, b, sizeof a)using namespace std;typedef long long ll;ll n, m, _;void solve() {cin >> n >> m;cout << (n ^ m) << endl;}int main() {// freopen("in.txt", "r", stdin);ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);cin >> _;while (_--) solve();}
1421B. Putting Bricks in the Wall
题目链接:Click Here
如果选择S的邻居为1,我们就可以F使为0的邻居,就没有办法从S到F,但这在最坏的情况下需要4个开关,这是不够的。 幸运的是,为了减少到2个开关,只需反过来考虑,使相邻S的正方形变为0,使相邻的正方形变为F 1。必须存在最多具有两个开关的两个正方形的解,并且您不会从S到F,因为被迫选择1(或0),并且无法通过与F相反的邻居。
// Author : RioTian// Time : 20/10/18#include <bits/stdc++.h>#define ms(a, b) memset(a, b, sizeof a)using namespace std;typedef long long ll;ll n, m, _;char x[210][210];void solve() {cin >> n;for (int i = 1; i <= n; i++) cin >> x[i] + 1;int a = x[1][2] - '0', b = x[2][1] - '0', c = x[n][n - 1] - '0',d = x[n - 1][n] - '0';if (a == b && c == d && a != c)cout << 0 << endl;else if (a != b && c != d)cout << 2 << endl<< 1 << " " << 2 << endl<< (a == c ? n - 1 : n) << " " << (a == c ? n : n - 1) << endl;else if (a != b)cout << 1 << endl<< (a == c ? 1 : 2) << ' ' << (a == c ? 2 : 1) << endl;else if (c != d)cout << 1 << endl<< (a == c ? n : n - 1) << ' ' << (a == c ? n - 1 : n) << endl;elsecout << 2 << endl << 1 << ' ' << 2 << endl << 2 << " " << 1 << endl;}int main() {// freopen("in.txt", "r", stdin);ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);cin >> _;while (_--) solve();}
#pythonimport sysinput = sys.stdin.readlineI = lambda : list(map(int,input().split()))t,=I()for _ in range(t):n,=I()l=[input().strip() for i in range(n)]an=[]le=[0,0,1,1,1];p=[1,1,0,0,0]rq=[l[0][1],l[1][0],l[1][1],l[2][0],l[0][2]]pos=[[1,2],[2,1],[2,2],[3,1],[1,3]]ct=cp=0;a1=[]for i in range(5):if le[i]!=int(rq[i]):ct+=1a1.append(pos[i])for i in range(5):if p[i]!=int(rq[i]):cp+=1an.append(pos[i])if ct<=cp:an=a1print(len(an))for i in an:print(*i)
1421C. Palindromifier
题目链接:Click Here
这道题写的挺懵的,一开始都没理解题意
被dalao提醒以后然后发现是构造题,根据题目说的两种方案:
对于任何字符串都可以先 $L ,i = 2 R,i = 2 $ +
。一定能构造需所需的字符串
// Author : RioTian// Time : 20/10/18#include <bits/stdc++.h>using namespace std;typedef long long ll;string s;int main() {// freopen("in.txt","r",stdin);ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);cin >> s;cout << "3\nL 2\nR 2\n";cout << "R " << 2 * s.size() - 1 << endl;}
print('3\nL 2\nR 2\nR',len(input())*2-1)
1421D. Hexagons (补)
题目链接:Click Here
// Author : RioTian// Time : 20/10/18#include <bits/stdc++.h>using namespace std;#define ll long longint inf = 1e9 + 7;ll x, y, c1, c2, c3, c4, c5, c6;ll check(ll ad) {ll ans = 0;if (ad > 0)ans += ad * c1;elseans += -ad * c4;if (x - ad > 0)ans += (x - ad) * c6;elseans += (ad - x) * c3;if (y - ad > 0)ans += (y - ad) * c2;elseans += (ad - y) * c5;return ans;}void solve() {cin >> x >> y >> c1 >> c2 >> c3 >> c4 >> c5 >> c6;ll l = -inf, r = inf;while (l < r) {ll mid = l + r >> 1;if (check(mid) < check(mid + 1))r = mid;elsel = mid + 1;}cout << min({check(l), check(l + 1), check(l - 1)}) << '\n';}int main() {int t;cin >> t;while (t--) solve();}
1421E. Swedish Heroes (补)
题目链接:Click Here
