A思维题 AC
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1000+10;
int main()
{
int t;cin>>t;
while(t--)
{
int n;cin>>n;
int maxnum = -1;
for(int i=1;i<=n;i++)
{
int x;cin>>x;
if(i%2==1)maxnum = max(maxnum,x);
}
cout<<maxnum<<endl;
}
return 0;
}
B异或问题、思维题(补题)
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b8383bf4387b49ffb2ed21f0e72a268c.jpeg#pic_center)
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1e5+10;
long long a[N],b[N];
int main()
{
int t;cin>>t;
while(t--)
{
memset(a, 0, sizeof a);
memset(b, 0, sizeof b);
int n;cin>>n;
for(int i=1;i<=n-1;i++)cin>>a[i];
for(int i=1;i<=n;i++)b[i]=a[i-1]|a[i];
int f=0;
for(int i=1;i<=n-1;i++)
if(a[i]!=(b[i]&b[i+1]))f=1;
if(f==1)cout<<-1<<endl;
else
{
for(int i=1;i<=n;i++)
cout<<b[i]<<" ";
cout<<endl;
}
}
return 0;
}