当前位置: 首页 > news >正文

【题解】Atcoder Beginner Contest 443(ABC443) A~E

A - Append s

模拟即可。

#include<bits/stdc++.h>
using namespace std;
string s;
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>s;cout<<s<<'s';return 0;
}

B - Setsubun

暴力计算每过一年后的豆子数,直到达标。

#include<bits/stdc++.h>
using namespace std;
int n,k,sum,ans;
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>n>>k;while(sum<k){sum+=n;ans++;n++;}cout<<ans-1;return 0;
}

C - Chokutter Addiction

如果两次检查时间间隔 \(\ge100\),则答案 \(+A_i-A_{i-1}-100\)

如果 \(<100\),相当于没有检查,还按间隔 \(\ge100\) 的那次检查计算答案。

最后把剩下时间也算进去。最后一次检查过 \(100\) 后的时间都算上。

注意特判 \(n=0\) 的情况。

#include<bits/stdc++.h>
using namespace std;
const int N=3e5+10;
int n,T,ans;
int a[N],t;
bool flag=1;
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>n>>T;if(!n){cout<<T;return 0;}for(int i=1;i<=n;i++){cin>>a[i];if(i==1) ans+=a[i],t=a[i];else if(a[i]-t>100) ans+=a[i]-t-100,t=a[i];} ans+=max(0,T-t-100);cout<<ans;return 0;
}

D - Pawn Line

只能减小 \(R_i\) 的值,最小的 \(R_i\) 肯定是不能动的。所以每个 \(R_i\) 是有其上界的,取决于最小的 \(R_i\)

每个元素两侧都最多比该元素大 \(1\),这是取值上界,如果已经合法就不用管,不合法,减到上界所需操作次数最小。

处理出每个 \(R_i\) 的上界,与原 \(R_i\) 做差。

只需要从两侧各扫一遍,就能处理出每个元素的上界。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=3e5+10;
int T,n;
int r[N],sum;
signed main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>T;while(T--){cin>>n;sum=0;for(int i=1;i<=n;i++){cin>>r[i];sum+=r[i];}for(int i=2;i<=n;i++) r[i]=min(r[i],r[i-1]+1);for(int i=n-1;i>=1;i--) r[i]=min(r[i],r[i+1]+1);for(int i=1;i<=n;i++) sum-=r[i];cout<<sum<<'\n';}return 0;
}

E - Climbing Silver

注意到运动情况:每次必须向上一行,左中右三列自选。

因此,可能达到的格子就是一个扇形,顶点是第 \(n\) 行,向上每一行左右各拓宽一列。

考虑一个 \(O(n^2)\) DP。从第 \(n\) 行开始一行行向上扫,处理出每个格子是否可以到达,可到达为 \(1\),不可达为 \(0\)\(f_{i,j}\) 可由 \(f_{i+1,j-1},f_{i+1,j},f_{i+1,j+1}\) 转移而来。

对于一个空地,三者有任意为 \(1\) 的格子就可以到达。对于一个墙,三者有任意为 \(1\),且此列向下没有不可到达的墙才可达。因此维护一个标记数组,记录每一列此前是否有不可达的墙。

DP 的初始化,第 \(n\) 行仅起点可达,并为第 \(n\) 行的所有墙所在列打上标记。

#include<bits/stdc++.h>
using namespace std;
const int N=3010;
int T,n,c;
int G[N][N],f[N][N];
bool flag[N];
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>T;while(T--){cin>>n>>c;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){char s;cin>>s;if(s=='#') G[i][j]=1;else G[i][j]=0;f[i][j]=0;flag[j]=0;}}f[n][c]=1;for(int i=1;i<=n;i++) if(G[n][i]) flag[i]=1;for(int i=n-1;i>=1;i--){for(int j=1;j<=n;j++){if(G[i][j]){if(!flag[j]&&(f[i+1][j-1]||f[i+1][j]||f[i+1][j+1])) f[i][j]=1;else flag[j]=1;}else{if(f[i+1][j-1]||f[i+1][j]||f[i+1][j+1]) f[i][j]=1;}}}for(int i=1;i<=n;i++) cout<<f[1][i];cout<<'\n';}return 0;
}
http://www.jsqmd.com/news/330455/

相关文章:

  • Elasticsearch索引优化策略,提升全文检索查询性能
  • 满意度从62%到95%!礼品公司的员工福利定制实战
  • 光伏-混合储能微电网能量管理系统模型 系统主要由光伏发电模块、mppt控制模块、混合储能系统模...
  • 赋能主机厂供应链质量与效率的数字化引擎——全星APQP供应商研发协同管理软件系统
  • 员工福利定制常见问题解答(2026专家版)
  • Java高频面试题:MyBatis如何处理懒加载和预加载?
  • 混合动力汽车SIMULINK整车模型,并联P2构型,基于规则的控制策略,模型运行及仿真无误
  • 题解:洛谷 P1056 [NOIP 2008 普及组] 排座椅
  • 3500
  • PSO-GRU多变量回归预测:Matlab中的粒子群优化门控循环单元程序
  • 利用fpga搭建永磁同步电机电机svpwm的源码,采用的是verilog搭建底层框架,利用ni...
  • 2026铝板铝皮采购问答式指南
  • 2026智推时代GEO优化对接指南:合作全流程指引
  • Serverless架构实战:使用AWS Lambda构建无服务器数据处理管道
  • 【网友委托的爬虫代码】KanAcademyTranscriptsSprider.py(网站有反爬虫,做不了)
  • 基于ASP的毕业论文管理系统的设计与实现 开题报告
  • Flink在大数据领域的安全漏洞防范
  • 基于Android的课堂教学辅助系统 开题报告
  • 2025年12月Scratch图形化编程等级考试四级真题试卷
  • 2026年1月专业评测|主流GEO优化服务商优选机构权威推荐
  • 别被“伪自律”绑架:为什么你的“中国胃”跑不动“西式沙拉”?
  • 数据中台在大数据领域的应用挑战与解决方案
  • 聚焦国内高端女装连衣裙市场:五大品牌风格解析与核心竞争力盘点
  • 基于ASPNET的音乐网站 开题报告
  • 利用RabbitMQ提升大数据系统的消息吞吐量
  • 揭秘MrBeast爆款视频的底层算法:四小时逆向工程揭示病毒式传播公式
  • 基于Android的校园食堂点餐系统的设计与实现--开题报告
  • 基于Android的玩转化妆美妆APP的设计与实现 开题报告2
  • 题解:P1007 独木桥
  • Java面试必看:start()和run()哪个才是正确的线程启动方式?