Codeforces Round 734 (Div. 3) 题解
建议开题顺序:A,B1,B2,C,E,F,D1,D2。
A. Polycarp and Coins
记
B1. Wonderful Coloring - 1
记
B2. Wonderful Coloring - 2
模仿 B1 的思路。当
代码
il void solve(){
n=rd,k=rd;
for(re int i=0;i<=n;++i) cnt[i]=0,v[i].clear();
for(re int i=1;i<=n;++i) ans[i]=0,s[i]=rd,++cnt[s[i]],v[s[i]].push_back(i);
int c1=0,c2=0;
for(re int i=1;i<=n;++i)
if(cnt[i]>=1&&cnt[i]<k){
c1+=cnt[i];
}
for(re int i=n;i>=1;--i)
if(cnt[i]>=1&&cnt[i]<k){
if(c1%k!=0) c1-=min(cnt[i],(c1%k));
}
int U=1,c_=0;
for(re int i=1;i<=n;++i)
if(cnt[i]>=k){
int cc=0;
for(auto x:v[i]){
ans[x]=++cc;
if(cc==k) break;
}
}
else{
for(auto x:v[i]){
if(c_>=c1) break;
++c_,U++,U%=k;
if(!U) U=k;
ans[x]=U;
}
}
for(re int i=1;i<=n;++i) cout<<ans[i]<<" ";
cout<<"\n";
return ;
}
C. Interesting Story
记
D1. Domino (easy version)
暴力分类讨论题。这里我们令
然后就判断完了。
D2. Domino (hard version)
将 D1 的所有合法情况分别构造即可,但是有点麻烦。
E. Fixed Points
考虑 DP。定义状态函数
F. Equidistant Vertices
注意到当
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性