Codeforces Round #676 (Div. 2) A - D个人题解(E题待补)
2020-10-18 23:45
1211 查看
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 - 1] - '0', d = x[n - 1] - '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; else cout << 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(); }
#python import sys input = sys.stdin.readline I = 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+=1 a1.append(pos[i]) for i in range(5): if p[i]!=int(rq[i]): cp+=1 an.append(pos[i]) if ct<=cp: an=a1 print(len(an)) for i in an: print(*i)
1421C. Palindromifier
题目链接:Click Here
这道题写的挺懵的,一开始都没理解题意
被dalao提醒以后然后发现是构造题,根据题目说的两种方案:
对于任何字符串都可以先 $L ,i = 2 \(,然后\)R,i = 2 $ + \(R, i = 7\)。一定能构造需所需的字符串
// 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 long int 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; else ans += -ad * c4; if (x - ad > 0) ans += (x - ad) * c6; else ans += (ad - x) * c3; if (y - ad > 0) ans += (y - ad) * c2; else ans += (ad - y) * c5; return ans; } void solve() { cin >> x >> y >> c1 >> c2 >> c3 >> c4 >> c5 >& ad8 gt; c6; ll l = -inf, r = inf; while (l < r) { ll mid = l + r >> 1; if (check(mid) < check(mid + 1)) r = mid; else l = 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
相关文章推荐
- SCAU2020春季个人排位赛div2 #2 G
- SCAU2020春季个人排位赛div2 #4 G
- Codeforces Round #656 (Div. 3) A,B,C,D,(其他待补)
- SCAU2020春季个人排位赛div2 #2
- SCAU2020春季个人排位赛div2 #3----E(HDU-3788)
- Codeforces Round #409 div2 【A~D√ E待补】
- web开发的标准(DIV和CSS),个人总结(三)
- CSS+DIV 设计一个简单的个人网页界面
- SCAU2020春季个人排位赛div2 #2 E
- SCAU2020春季个人排位赛div2 #2 C
- 个人笔记 html 05 div隐藏后仍占用空间
- Codeforces Round #451 (Div. 2)-898A. Rounding 898B.Proper Nutrition 898C.Phone Numbers(大佬容器套容器) 898D.Alarm Clock(超时了,待补坑)(贪心的思想)
- SCAU2020春季个人排位赛div2 #2 B
- DIV+CSS布局使用的个人心得
- 关于DIV布局中图片留白的个人见解
- 个人认为最完美的css处理div圆角的方法
- SCAU2020春季个人排位赛div2 #2 A
- SCAU2020春季个人排位赛div2 #1 H
- SCAU2020春季个人排位赛div2 #1 G
- 我昨天写了个DIV+CSS的页面,做了个个人主页