牛客小白月赛66
这一场比赛吃完饭回来才打。(此篇文章使用Markdown语法编写。测试用)
A 先交换
思维
- 如果是偶数,那就去后面找一个比大的奇数就行。
AC代码
x#include<bits/stdc++.h>using namespace std;int a[105];int main(){int T; cin >> T;while( T-- ){int n; cin >> n;for( int i = 1 ; i <= n ; i++ ) cin >> a[i];if( a[1] % 2 == 1 ) cout << 0 << endl;else{int f = -1;for( int i = 2 ; i <= n ; i++ ){if( a[i]%2 == 1 && a[i] < a[1] ){f = 1; break;}}cout << f << endl;}}}
B 再交换
思维 模拟
- 注意特殊情况,那就是这种情况,直接找数位相同的交换就好。
AC代码
#include<bits/stdc++.h>using namespace std;int main(){int T; cin >> T;while( T-- ){int n, f1 = 0, f = 0; cin >> n;string A, B;cin >> A >> B;// cout << A << endl << B;for( int i = 0 ; i < n ; i++ ){if( A[i] > B[i] ){f1 = 1;cout << i+1 << " " << i+1 << endl;break;}else if( A[i] == B[i] ) f = i+1;}if( f1 == 1 ){continue;}else if( f1 == 0 && f != 0 ){cout << f << " " << f << endl;}elsecout << n << " " << n << endl;}}
C 空洞骑士
思维
这个题赛时并没有写出来,最后直接猜结论也没猜对,或许再多给一点时间就写出来了。
- 答案肯定只有三种。
AC代码
#include<bits/stdc++.h>#define int long longusing namespace std;const int N = 2e5;int p[N+5];signed main(){int s = 0, t = 1e9;int m;cin >> m;int mx = 0, mn = t;for( int i = 1 ; i <= m ; i++ ){cin >> p[i];mx = max(mx, p[i]);mn = min(mn, p[i]);}int a = 2*mx - 1;int b = 2*(t-mn)-1;int c = t;if( a >= b && a >= c ) cout << s << " " << 1;else if( b>= a && b >=c ) cout << t << " " << t-1;else cout << s << " " << t;}

