水题
c++ 1 2 3 4 5 6 7 8 t = eval (input ()) if t >= 38.0 : print (1 ) elif 37.5 <= t < 38 : print (2 ) else : print (3 )
# 题意给你一个只有 i 、 o i、o i 、 o 组成的字符串,他们必须以 i o io i o 相邻的形式存在,你可以任意添加字符,问最少要添加多少个才能满足题意。
# 题解“两个 “、” 两个 “遍历,如果当前是 i i i ,那么下一个一定要是 o o o ,如果不是 o o o 如果就得加一个。如果当前是 o o o 的话,则代表我们要加一个 i i i
c++ 1 2 3 4 5 6 7 8 9 10 11 12 void solve () { cin >> s; for (int i = 0 ; i < s.size (); i++) { if (s[i] == 'i' && i + 1 < s.size () && s[i + 1 ] == 'o' ) i++; else cnt++; } cout << cnt << endl; }
# 题意给定一个序列,任意确定一半和另一半,求两半中,不同数字计数的和。
# 题解用两个 m a p map m a p 记录即可。
c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 int n, a[N];map<int , int > l, r; int cntLeft = 0 , cntRight = 0 ; int res = 0 ;void solve () { cin >> n; for (int i = 1 ; i <= n; i++) { cin >> a[i]; if (!r[a[i]]) cntRight++; r[a[i]]++; } for (int i = 1 ; i < n; i++) { if (l[a[i]] == 0 ) cntLeft++; l[a[i]]++, r[a[i]]--; if (r[a[i]] == 0 ) cntRight--; res = max (cntLeft + cntRight, res); } cout << res << endl; }
# 题意给定一个整数 n , ( 1 ≤ n ≤ 1 0 18 ) n,(1 \le n \le 10^{18}) n , ( 1 ≤ n ≤ 1 0 1 8 ) ,问,能不能找到一对正整数 ( x , y ) (x,y) ( x , y ) 满足 x^3 - y^3 == n
# 题解暴力?数学?不造啊,拼尽全力还是 W A WA W A 两个点
c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 void solve () { cin >> n; for (int a = 1 ; a * a * a <= n; a++) { if (n % a == 0 ) { int d = a * a - n / a; int delta = 9 * a * a - 12 * d; int t = sqrt (9 * a * a - 12 * d); if (t * t == delta && t >= 0 ) { int y1 = -3 * a + t; if (y1 % 6 == 0 && y1 % 6 == 0 ) { y1 /= 6 ; if (y1 > 0 && y1 + a > 0 ) { cout << y1 + a << " " << y1 << endl; return ; } } } } } cout << -1 << endl; }