Codeforces Round #701 (Div. 2) A-D
A
https://codeforces.com/contest/1485/problem/A
本题我的做法是枚举小范围内的一些b值,再对ans取min
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 10005;
int n,m;
int a,b;
int main(){
int t;
cin>>t;
while(t--){
cin>>a>>b;
if(a<b){
cout<<1<<endl;
}
else{
int ans=1e9;
for(int bb=max(2,b);bb<=b+1000;bb++){
int tem=bb-b;
int ta=a;
while(ta){
ta/=bb;
tem++;
}
// if(b==1) tem+=1;
ans=min(ans,tem);
}
cout<<ans<<endl;
}
}
return 0;
}
B
https://codeforces.com/contest/1485/problem/B
对于一段区间的询问,除了和的中间部分答案都是一定的,有两侧的值限制其取值范围
于是可以先预处理,再根据每次的询问O(1)计算数组两头的值,把它们一起加进答案
#include<bits/stdc++.h> //??scc??
#define ll long long
using namespace std;
const int N = 100005;
int n,q,k;
ll a[N],b[N];
ll pre[N];
int main(){
int t=1;
// cin>>t;
while(t--){
cin>>n>>q>>k;
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
a[0]=0,a[n+1]=k+1;
pre[0]=0;
for(int i=1;i<=n;i++){
b[i]=a[i+1]-a[i-1]-2;
// cout<<i<<' '<<b[i]<<endl; ///
pre[i]=pre[i-1]+b[i];
}
for(int u=1,x,y;u<=q;u++){
scanf("%d%d",&x,&y);
printf("%lld\n",pre[y]-pre[x-1]-b[x]-b[y]+ a[x+1]-2 + k-a[y-1]-1 );
}
}
return 0;
}
C
https://codeforces.com/contest/1485/problem/C
踩坑经历:当发现O(n)枚举会tle时,强行归纳规律很困难
正解是首先找出k取值的上限:,又因为对于给定的k值,可以O(1)计算出pair(a,b)的个数,所以复杂度可以优化为
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 100005;
int n;
ll x,y;
int main(){
int t;
cin>>t;
while(t--){
cin>>x>>y;
ll ans=0;
for(int i=1;i*i<x;i++){
if(min(y,x/i-1)<i+1) break;
ans+=min(y,x/i-1)-i;
}
cout<<ans<<endl;
}
return 0;
}
D
https://codeforces.com/contest/1485/problem/D
思路1:暴力
通过观察样例可以发现,我们可以构造出这样的矩阵b
我们需要做的是枚举sr、sc、k,再遍历b中每个元素看是否满足
然而超时了
思路2:构造(非常巧妙)
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int a[505][505];
int n,m;
int p[6]={2,3,5,7,11,13};
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
scanf("%d",&a[i][j]);
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if((i+j)%2){
printf("%d ",720720);
}
else {
printf("%d ",720720+a[i][j]*a[i][j]*a[i][j]*a[i][j]);
}
}puts("");
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧