Codeforces Round #735 (Div. 2)
A
题意:给n个整数 . 找到
在所有对
的最大值。
思路:
区间的最大值,最小值,很容易发现每个值他的左边,或者右边的相乘才是答案。
代码:
#include <bits/stdc++.h>
using namespace std;
#define bug(x) cerr<<#x<<" : "<<x<<endl;
const int N=2e6+10;
const int mod=1e9+7;
typedef long long ll;
ll a[N];
int main(){
int T;
cin>>T;
while(T--){
int n;
ll ans=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
ans=max(ans,a[i]*a[i-1]);
}
cout<<ans<<endl;
}
}B
题意:给n个整数 .找出最大的
数据范围看图。
这玩意儿竟然暴力就行,离谱,还以为有啥性质呢
代码:
#include <bits/stdc++.h>
using namespace std;
#define bug(x) cerr<<#x<<" : "<<x<<endl;
const int N=2e6+10;
const int mod=1e9+7;
typedef long long ll;
ll a[N];
int main(){
int T;
cin>>T;
while(T--){
int n,k;
ll ans=-1e9;
cin>>n>>k;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=max(1,n-105);i<=n;i++){
for(int j=i+1;j<=n;j++){
ans=max(ans,1ll*i*j-(a[i]|a[j])*k);
}
}
cout<<ans<<endl;
}
}D
题意:构造一个长度为n的字符串S,使得,相同类型的连续子串,在s中出现的个数是奇数。
思路:当n<=26,每种字符输出一个,那肯定行。但是以后怎么办。构造的过程我们可以发现一个小性质,类似于aaba,aaabaa,这样的都是满足条件的,x+1,b,x,(x都是相同的字符).所以我们只需要这样构造就行了。n为奇数,中间一个字符b,最后再加一个不相等的字符,其余全部为a。
代码:
#include <bits/stdc++.h>
using namespace std;
#define bug(x) cerr<<#x<<" : "<<x<<endl;
const int N=2e6+10;
const int mod=1e9+7;
typedef long long ll;
ll a[N];
int main(){
int T;
cin>>T;
while(T--){
int n,k;
cin>>n;
if(n==1){
cout<<'a'<<endl;
continue;
}
if(n&1){
int tt=(n-1)/2;
for(int i=0;i<tt;i++) cout<<'a';
cout<<'b';
for(int i=0;i<tt-1;i++) cout<<'a';
cout<<'z';
}
else{
int tt=n/2;
for(int i=0;i<tt;i++) cout<<'a';
cout<<'b';
for(int i=0;i<tt-1;i++){
cout<<'a';
}
}
cout<<endl;
}
}
/*
3
aba
5
(n-1)/2 a
b
(n-1)/2-1
a
b
6
n/2
a
b
n/2-1
a
*/
------好多都是你想的到就写得出来,想不到就坐牢,有好多小性质-------
查看11道真题和解析