A.唐龙守则
题意:
每三张撤回一张,给你n张能删除多少张
思路:
n / 3
Code:
n = int(input()) print(n // 3)
B.最大公约
题意:
序列中最大值和最大公约数相等 其实等价于问最长的相同元素有多少
思路:
map储存元素统计个数最大值
Code:
#include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, ans = 1; cin >> n; map <int, int> mp; for (int i = 1; i <= n; i++) { int val; cin >> val; mp[val] += 1; ans = max(ans, mp[val]); } cout << ans << '\n'; return 0; }
C.连锁进位
题意:
至少操作几次使得成为n0000..000这种形式 其次n != 0 -- n + pow(10, x)[非负整数次幂] 统计总和
思路:
从尾巴开始其次如果本身就是n00000这种类型它是不需要修改, 如果不是,他就是从右往左遍历,还需考虑第一次进位的时候他会进1所以ans = 1, 其次9 - c不停累加即可
Code:
#include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int t; cin >> t; while (t--) { string s; cin >> s; s.erase(0, 1); int ans = 1; while (!s.empty() && s.back() == '0') s.pop_back(); if (s == "") cout << "0\n"; else { for (char c : s) { ans += 9 - (c - '0'); } cout << ans << "\n"; } } return 0; }
D.因子区间
题意:
给你l, r统计这个区间有多少漂亮二元组对, 这个对就是因数个数相同
题意:
赛时考虑了哈希储存l, r,在使用二分相减得到的cnt -> cnt * (cnt - 1) / 2 不过也吸取其余的做法
Code:
标签:周赛,Code,题意,int,44,cin,牛客,ans,cout From: https://www.cnblogs.com/youhualiuh/p/18214299