題目鏈接:http://codeforces.com/contest/1270 good bye 2019
A:最大的誰大誰贏
B:小小思維題,,,相鄰兩個絕對值大於等於2就輸出那倆
#include<bits/stdc++.h>
using namespace std;
const int maxn = 2e5+9;
const int inf=0x3f3f3f3f;
int a[maxn];
typedef long long ll;
int main(){
int t;
scanf("%d",&t);
while(t--){
int n;
scanf("%d",&n);
int minm=inf;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
int flag=0;
for(int i=1;i<n;i++){
if(abs(a[i]-a[i-1])>1){
flag=1;
puts("YES");
printf("%d %d\n",i,i+1);break;
}
}
if(flag)continue;
puts("NO");
}
}
C:數學類型題,考察對抑或和性質的瞭解,題解中那個思考題應該是一個數就可以做到,好像是枚舉每一位吧。。然後就是相對簡單的,加上抑或和和抑或和和總和/////
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e5+9;
ll sum,X;
ll a[maxn];
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;int flag=0;X=0,sum=0;
for(int i=1;i<=n;i++){
cin>>a[i];
X^=a[i];
sum+=a[i];
}
puts("2");
cout<<X<<" "<<sum+X<<endl;
}
return 0;
}
D:交互式的題目呢,第一次做,得要會猜會寫前幾個樣例試試,,
#include<bits/stdc++.h>
using namespace std;
const int maxn=510;
pair<int,int>a[maxn];
int main(){
int n,k;
cin>>n>>k;
for(int i=1;i<=k+1;i++){
cout<<"? ";
for(int j=1;j<=k+1;j++){
if(i==j)continue;
printf("%d ",j);
}
cout<<endl;
cin>>a[i].second>>a[i].first;
}
sort(a+1,a+k+2);
int i;
for(i=1;i<=k;i++){
if(a[i+1].first>a[i].first){
break;
}
}
cout<<"! "<<k+1-i<<endl;
}