Codeforces Round 863

编程入门 行业动态 更新时间:2024-10-26 14:37:00

<a href=https://www.elefans.com/category/jswz/34/1770097.html style=Codeforces Round 863"/>

Codeforces Round 863

Portal.

A. Insert Digit

Portal.

赛时代码:

#include <bits/stdc++.h>
using namespace std;const int maxn=2e5+5;
string b;int main()
{int t;cin>>t;while(t--){int n,d;cin>>n>>d;cin>>b;// string res=b;// for(int i=0;i<n;i++) // if(b[i]-'0'<d) // {// res.insert(i,1,d+'0');// break;// }// cout<<res<<endl;int i=0;while(i<n&&b[i]-'0'>=d) ++i;if(i==n) cout<< b + to_string(d)<<endl;else cout<<b.substr(0, i) + to_string(d) + b.substr(i)<<endl;// for(int i=1;i<=n+1;i++) a[i]=0;// for(int i=n;i;i--) // {// char ch;cin>>ch;// a[i]=ch-'0';// }// int pos=n;// for(int i=n;i;i--)// if(a[i]<=d) {pos=i;break;}// if(d&&pos!=n)// {// for(int i=n;i>pos;i--) ans[i]=a[i];// ans[pos]=d;// for(int i=pos;i;i--) ans[i]=a[i];// for(int i=n;i;i--) cout<<ans[i];// cout<<endl;// }// else if(pos==n)// {// cout<<d;// for(int i=n;i;i--) cout<<a[i];// cout<<endl;// }// else// {// for(int i=n;i;i--) cout<<a[i];// cout<<0<<endl;// }}return 0;
}

B. Conveyor Belts

Portal.

发现层与层之间可以直接转移,分别计算出两个点的层数作差即可。

这里的层数由外而内递增,易得 i d = min ⁡ ( x , y , n − x + 1. n − y + 1 ) id=\min(x,y,n-x+1.n-y+1) id=min(x,y,n−x+1.n−y+1)。

#include <bits/stdc++.h>
using namespace std;
#define x1 x11
#define x2 x22
#define y1 y11
#define y2 y22void solve()
{int n,x1,x2,y1,y2;cin>>n>>x1>>y1>>x2>>y2;int id1=min(min(x1,y1),min(n-x1+1,n-y1+1)),id2=min(min(x2,y2),min(n-x2+1,n-y2+1));cout<<abs(id1-id2)<<endl;
}int main()
{int t;cin>>t;while(t--) solve();return 0;
}

C. Restore the Array

Portal.

b i = max ⁡ ( a i , a i + 1 ) , b i − 1 = max ⁡ ( a i , a i − 1 ) b_i=\max(a_i,a_{i+1}),b_{i-1}=\max(a_i,a_{i-1}) bi​=max(ai​,ai+1​),bi−1​=max(ai​,ai−1​),所以有 a i ≤ min ⁡ ( b i , b i − 1 ) a_i\leq\min(b_i,b_{i-1}) ai​≤min(bi​,bi−1​)。

注意特判边界的 a 1 a_1 a1​ 和 a n a_n an​。

#include <bits/stdc++.h>
using namespace std;const int maxn=2e5+5;
int a[maxn],b[maxn];void solve()
{int n;cin>>n;for(int i=1;i<n;i++) cin>>b[i];b[0]=1e9,a[n]=b[n-1];for(int i=1;i<n;i++) a[i]=min(b[i],b[i-1]);for(int i=1;i<=n;i++) cout<<a[i]<<' ';cout<<endl;
}int main()
{int t;cin>>t;while(t--) solve();return 0;
}

D. Umka and a Long Flight

Portal.

sol.

E. Living Sequence

Portal.

很巧妙的一道题。把不含 4 4 4 的数转化为不含 9 9 9 的数,则题目要求的序列就等价于一个九进制数表。把 k k k 转化为九进制,但是把九进制下的 [ 4 , 8 ] [4,8] [4,8] 映射为 [ 5 , 9 ] [5,9] [5,9] 即可。‘

#include <bits/stdc++.h>
using namespace std;
#define int long longint a[10]={0,1,2,3,5,6,7,8,9};void solve()
{int k;cin>>k;int cnt=1,ans=0;while(k)ans+=a[k%9]*cnt,cnt*=10,k/=9;cout<<ans<<'\n';
}signed main()
{int t;cin>>t;while(t--) solve();return 0;
}

F. Is It Flower?

Portal.

sol.

G1. Vlad and the Nice Paths (easy version)

G2. Vlad and the Nice Paths (hard version)

Portal.

sol.

更多推荐

Codeforces Round 863

本文发布于:2023-12-03 11:03:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1654644.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Codeforces

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!