专栏文章
题解:P1001 A+B Problem
P1001题解参与者 9已保存评论 9
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @mipcz4r5
- 此快照首次捕获于
- 2025/12/03 09:59 3 个月前
- 此快照最后确认于
- 2025/12/03 09:59 3 个月前
闲着没事整篇题解。
先以正常的方法完成(即使用
CPPcin 和 cout 和加法运算符):#include <bits/stdc++.h>
#define int long long
using namespace std;
int a,b;
signed main()
{
cin>>a>>b;
cout<<a+b<<endl;
return 0;
}
顺便讲一下关于
define 的知识。说简介一点就是将 define A B 后代码中所有 A 都替换为 B 然后没了。例如 #define int long long 就是将代码中所有 int 换为 long long 类型,因为有时候数据较大会导致 int 存不下所以通常使用 long long 类型存储整数。注意打主函数是是 int main() 所以使用这句话时应将主函数改为 signed main() 就可以了。然后注意
return 0; 是好习惯。当然,为了使代码拥有更快的效率,我们可以格式化输入输出(也就是
CPPscanf 和printf 实现)或是在原代码前面加上:ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
补充:打回原因是不够整活,那我整点:
因为答案不超过
CPPint 类型存储范围,来份二分枚举答案:#include <bits/stdc++.h>
#define int long long
using namespace std;
int a,b,ans;
bool check(int x)
{
return x<(a+b);
}
signed main()
{
cin>>a>>b;
int l=INT_MIN,r=INT_MAX;
while(l<r)
{
int mid=(l+r)>>1;
if(mid==a+b)
{
ans=mid;
break;
}
if(check(mid)) l=mid;
else r=mid;
}
cout<<ans<<endl;
return 0;
}
为了尊重之前的整活题解,其实还有更多的方法,找到了一份文章:
可以自行研究计算更加快速的方法。再见喵!
相关推荐
评论
共 9 条评论,欢迎与作者交流。
正在加载评论...