??托“自沦?6

這一場比賽吃完飯回來才打。(此篇文章使用Markdown語法編寫。測試用)
?
A ?先交換
思維
- 如果是偶數(shù),那就去后面找一個比大的奇數(shù)就行。
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 ?再交換
思維 ?模擬
- 注意特殊情況,那就是這種情況,直接找數(shù)位相同的交換就好。
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;
? ? ? ?}
? ? ? ?else
? ? ? ? ? ?cout << n << " " << n << endl;
? ?}
}
?
C 空洞騎士
思維
這個題賽時并沒有寫出來,最后直接猜結(jié)論也沒猜對,或許再多給一點時間就寫出來了。
- 答案肯定只有三種。
AC代碼
#include<bits/stdc++.h>
#define int long long
using 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;
? ?
}
?
?
標(biāo)簽: