常见错误
1.读入过程中直接break,导致数据没读完
一般是根据读入的数据已经判断出无解
如果只有一组数据倒是没所谓,但是多组数据就会出很大问题
2.有些情况不需要更新答案,但是需要更新其他的数据
fo(i,1,ans) {
if (s[i]+x*ans+(ll)(ans-i)*x>t) continue;
z-=(ll)(ans-i+1)*x;
z+=(ll)(ans-i+1)*a[i];
sum=min(sum,z+(ll)k*i);
}
此处如果判断条件不合法就直接continue,没有考虑到虽然不能更新答案,但是z是需要更新的。正确代码如下
fo(i,1,ans) {
z-=(ll)(ans-(ll)i+1ll)*x;
z+=(ll)(ans-(ll)i+1ll)*a[i];
if (s[i]+x*ans+(ll)(ans-i)*x>t) continue;
sum=min(sum,z+k*(ll)i);
}
3.add函数没有考虑到有负数情况
void add(ll &x,ll y){
x=(x+y>=p) ? (x+y-p):(x+y);
}
add函数一般是在取模的时候用到,为了减少%运算带来的常数,但是有的时候又出现负数,如果直接用add,就有可能溢出,所以就要另外写一个sub函数
void sub(int &x,int &y){
x=(x-y<0) ? (x-y+p) : x-y;
}
另外int 运算也会比ll快一些,在计算量较大的情况下在评测机上尤为明显,但在本机上相差不大,这是需要注意的。
4. inf设置不合理
对于int的情况,经常习惯性的
const int inf=1<<30;
但是两个都是inf的时候加起来就爆了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现