摘要:
A. Tower 首先用了 dp 验证出把一个数字变成另一个数字的最优解一定是能除就先进行除法,然后再使用加一减一。 这样我们就有\(O(\log n)\)的复杂度求出把一个数变成另一个数的最小代价。 然后就是猜测最终的目标一定是某个数除了若干次二得到的。所以就枚举一下目标即可。 #include 阅读全文
摘要:
C. Clamped Sequence 因为\(n\)的范围不大,并且可以猜到\(l,r\)中应该至少有一个在\(a_i,a_i-1,a_i+1\)上。所以直接暴力枚举\(l\)或\(r\)然后暴力的计算一下 #include <bits/stdc++.h> using namespace std; 阅读全文
摘要:
A. Everyone Loves to Sleep #include<bits/stdc++.h> using namespace std; void solve() { int n, h, m, t; cin >> n >> h >> m; t = h * 60 + m; vector<int> 阅读全文
摘要:
A. Div. 7 #include<bits/stdc++.h> using namespace std; void solve(){ int n , a , b , c ; cin >> n; c = n % 10 , n /= 10; b = n % 10 , n /= 10; a = n % 阅读全文
摘要:
C. Clone Ranran 最优解一定是先复制,在做题。最多只需要复制大约 30 次,直接枚举即可 #include <bits/stdc++.h> using namespace std; #define int long long int a , b, c; void solve(){ ci 阅读全文
摘要:
A. Short Sort #include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(0), cin.tie(0); int t; cin >> t; for( string s ; t ; t -- 阅读全文
摘要:
A. Mixed Messages dp[i][j]表示前i位,选择\(j\)个移动到一起的最小花费。 #include<bits/stdc++.h> using namespace std; #define int long long constexpr int inf = 1E9; int32_ 阅读全文
摘要:
A. Access Denied 先问若干次,问出长度,然后再一位一位的问即可。 #include <bits/stdc++.h> using namespace std; int input() { string s; getline(cin, s); if (s == "ACCESS GRANT 阅读全文
摘要:
A. Two Towers #include <bits/stdc++.h> using namespace std; #define int long long #define mp make_pair using pii = pair<int, int>; using vi = vector<i 阅读全文
摘要:
A - Leyland Number a, b = map(int, input().split(' ')) print( a ** b + b ** a ) B - Longest Palindrome s = input() n = len(s) res = 0 for l in range(1 阅读全文