7.8 考试总结
1 P10131
这题是第一题,但看了下,没有想出正解,主要是题目没太看懂,卡在了
6
1 1 1 2 2 2 YES
2
1 2 NO
这里。
#include<bits/stdc++.h>
using namespace std;
int n, a[200005];
void solve(){
cin>>n;
for(int i=1; i<=n; i++){
cin>>a[i];
}
if(n==2&&a[1]==a[2]){
cout<<a[1]<<endl;
return ;
}
if(n==2&&a[1]!=a[2]){
cout<<-1<<endl;
return ;
}
vector<int> ans;
for(int i=1; i<=n-2; i++){
if(a[i]==a[i+1]||a[i]==a[i+2])
ans.push_back(a[i]);
}
if(a[n-1]==a[n]) ans.push_back(a[n]);
sort(ans.begin(), ans.end());
for(int i=0; i<ans.size(); i++){
if(i==0||ans[i]!=ans[i-1])
cout<<ans[i]<<" ";
}
if(ans.size()==0) cout<<-1;
cout<<"\n";
}
int main(){
int t;
cin>>t;
while(t--){
solve();
}
return 0;
}
2 P10132
这题看了下,没想出正解,题目没太理解。
#include<bits/stdc++.h>
using namespace std;
const int N=200005;
int n,s,q[N],v[N];
int main(){
cin>>n>>s;
for(int i=1;i<=n;i++){
cin>>q[i]>>v[i];
}
int p=1,fx=1,cnt=0;
while(s>=1&&s<=n){
if(q[s]==0){
p=p+v[s];
fx=-fx;
}else if(q[s]==1&&v[s]<=p){
v[s]=-1;
}
s=s+p*fx;
cnt++;
if(cnt>=1e7){
break;
}
}
int ans=0;
for(int i=1;i<=n;i++){
if(v[i]==-1)
ans++;
}
cout<<ans<<"\n";
return 0;
}
3 P10133
这题最后看了,想到了点思路,但时间没那么够。
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=200005;
int n,cnt=0,a[N],sub[N],sub2[N];
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
sub[i]=a[i]-a[i-1];
sub2[i]=sub[i]-sub[i-1];
cnt+=abs(sub2[i]);
}
cout<<cnt<<"\n";
return 0;
}
4 P10187
最后看了,原本是想写个暴力模拟的。但是讲之后是一道找规律的题目。规律是:如果把别人卡入了10,那别人必输。
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
string s;
cin>>s;
int len=s.size();
if(s[len-1]=='0') cout<<"E"<<endl;
else cout<<"B"<<endl;
}
return 0;
}
5 P10188
一开始看到这个题目原本是想用队列,但是题目没看太明白,后面发现方法错了,也没思路了。。
6 P10189
暴力模拟写的,一开始看到这数据范围,感觉会超时,加了优化,可惜也并没有快多少。
#include<bits/stdc++.h>
using namespace std;
const int N=200005;
int n,q,a[N],b[N];
bool cmp(int x, int y){
return x>y;
}
int main(){
cin>>n>>q;
for(int i=1; i<=n; i++)
cin>>a[i];
for(int i=1; i<=n; i++){
cin>>b[i];
b[i]=a[i]-b[i];
}
sort(b+1,b+n+1,cmp);
while(q--){
int v,s;
cin>>v>>s;
if(b[v]>s) puts("YES");
else puts("NO");
}
return 0;
}