B
最大的数是偶数时,除了它本身都可以赢,最大的数是奇数时,只有它本身可以赢,全都一样时,也要分情况,偶数全输,奇数全赢
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
for(int j=0;j<t;j++){
int n;
cin>>n;
vector<long long> a(n+5);
long long maxi=0;
int num=0;
for(int i=1;i<=n;i++){
cin>>a[i];
maxi=max(maxi,a[i]);
}
for(int i=1;i<=n;i++){
if(a[i]==maxi){
num++;
}
}
if(num==n){
for(int i=1;i<=n;i++){
cout<<'0';
}
cout<<'\n';
continue;
}
if(num%2==0){
for(int i=1;i<=n;i++){
if(a[i]!=maxi){
cout<<'1';
}else{
cout<<'0';
}
}
}else{
for(int i=1;i<=n;i++){
if(a[i]==maxi){
cout<<'1';
}else{
cout<<'0';
}
}
}
cout<<'\n';
}
return 0;
}
I
只有0或1的数量>=2时,才能形成回文数
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
for(int k=0;k<t;k++){
int n,m;
cin>>n>>m;
vector<vector<char>> a(n+1,vector<char>(m+1));
int zero=0;
int one=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
if(a[i][j]=='0'){
zero++;
}else{
one++;
}
}
}
if(zero>1&&one>1){
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<"Y";
}
cout<<'\n';
}
}else if(zero<=1&&one>1){
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j]=='1'){
cout<<"Y";
}else{
cout<<"N";
}
}
cout<<'\n';
}
}else if(one<=1&&zero>1){
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j]=='0'){
cout<<"Y";
}else{
cout<<"N";
}
}
cout<<'\n';
}
}
}
return 0;
}
F
想异或运算最小,只要二进制只相差一位即可
#include<bits/stdc++.h>
using namespace std;
const long long ky=1LL<<31;
const long long kx=ky+1;
int main(){
int t;
cin>>t;
for(int j=0;j<t;j++){
int n;
cin>>n;
cout<<n*ky<<" "<<n*kx<<endl;
}
return 0;
}
E
画图找规律即可
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
int cnt=min(i,j);
if(cnt&1){
cout<<0;
}else{
cout<<1;
}
}
cout<<endl;
}
return 0;
}

京公网安备 11010502036488号