Codeforces Round #768 (Div. 2) A~C题解
Problem A:
本题大意为存在两个长度相等的数组a、b,任意选择索引i,交换数组ai,bi的值,使得a数组的最大值乘以b数组的最大值最小。
本题不难想到我们可以遍历数组,依次将比较大的放到a数组内,否则放到b数组内。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int a[1000001];
int b[1000001];
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cin>>b[i];
}
int maxn2=0,maxn1=0;
for(int i=1;i<=n;i++){
if(a[i]<b[i]){
swap(a[i],b[i]);
}
maxn2=max(maxn2,b[i]);
maxn1=max(maxn1,a[i]);
}
cout<<maxn1*maxn2<<endl;
}
return 0;
}
Problem B:
本题难度我觉的关键在于读懂并且能够抽象简单化题意,其实总的来说很简单。题目大意为:选择两个数l,k,并且满足对于每一个i来说将
赋给
。问最小全部替换成一种元素的最小 步骤是什么?
思路其实很简单,就是简简单单的模拟。我们可以倒着存储序列;可以证明,我们全部替换的元素是数组的第一个元素(注意,元素已经倒着存储了,实际上为输入序列的最后一个元素),然后,尽量的取最长的连续序列,然后成倍的替换;每次操作结果都加一。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int a[1000001];
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
for(int i=n;i>=1;i--){
cin>>a[i];
}
int k=1;
int ans=0;
while(1){
for(;k<=n;k++){
if(a[k]!=a[k+1]){
break;
}
}
if(k>=n)break;
k=k+k;
ans++;
a[k]=a[1];
}
cout<<ans<<endl;
}
return 0;
}
Problem C:
题目大意很简单,就是输入n和k(n为2的多少次幂,k<=n-1),从[0,n-1]区间内找到n/2个对二元关系,并且满足每一个元素只能出现一次,且输出任意一种情况即可。
本题模拟找规律,可以发现如果n-1!=k时候,我们可以配凑k和n-1相与,这样我们就得到了k,然后找规律,配凑所有的对子使其相与为0。当n-1==k的时候,我们将k和k-1相与,这样我们得到了k-1,然后再找到一对使其相与为1,其他的相与为0即可。注意,只有当n=4,k=3的时候才不会有答案,因为n=4能够凑出来最大的值为2,其他情况下均可配凑出来,所以不存在,其他情况均存在。
AC代码:
#include<bits/stdc++.h>
using namespace std;
map<int,bool>vis;
int main(){
int t;
cin>>t;
while(t--){
int n,k;
cin>>n>>k;
if(n-1==k&&k==3){
cout<<-1<<endl;
}
else{
if(k!=n-1){
printf("%d %d\n",k,n-1);
vis[k]=1;
int p=1;
for(int i=1;i<=n/2-1;i++){
if(vis[p]==1)
cout<<0<<" "<<n-p-1<<endl;
else if(vis[n-p-1]){
cout<<p<<" "<<0<<endl;
}
else{
cout<<p<<" "<<n-p-1<<endl;
}
p++;
}
}
else{
cout<<k<<" "<<k-1<<endl;
cout<<1<<" "<<k-2<<endl;
cout<<0<<" "<<2<<endl;
for(int i=1;i<=(n/2)-3;i++){
cout<<n-3-i<<" "<<2+i<<endl;
}
}
}
vis.clear();
}
return 0;
}
分类:
ACM / codeforces
标签:
ACM
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!