社区讨论
关于scanf的%1d
P2104二进制参与者 5已保存回复 15
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 15 条
- 当前快照
- 1 份
- 快照标识符
- @lo8v7wyo
- 此快照首次捕获于
- 2023/10/28 01:06 2 年前
- 此快照最后确认于
- 2023/10/28 01:06 2 年前
rt,本题用%1d读入莫名挂了(WA, 40pts),用cin输入字符再转int就AC了,这两个有啥区别吗...(老年退役oier不记得了(
虽然听过
%1d会比字符读入再转int慢很多,但我TLE也不应该WA啊...(注意是
%1d不是%ld,一位一位数字读入那个)Code
CPP#include <iostream>
#include <cstdio>
using namespace std;
const int manx=5e6+10;
int f[manx*2],n,m;
int l,r;
int main() {
ios :: sync_with_stdio(false);
cin >> n >> m;
l=1; r=n;
char x;
for(int i=1;i<=n;i++) {
// scanf("%1d", &f[i]); 这样输入就WA
cin >> x; f[i]=x-'0';
}
for(int i=1;i<=m;i++) {
char x;
// scanf("%1c", &x); 这样输入就WA
cin >> x;
if(x=='+') f[r]++;
if(x=='-') f[r]--;
if(x=='/') f[r-1]+=f[r]>>1, r--;
if(x=='*') f[++r]=0;
}
for(int i=r;i>1;i--) {
f[i-1]+=f[i]>>1;
f[i]=f[i]&1;
}
for(int i=1;i<=r;i++) {
printf("%d", f[i]);
}
puts("");
return 0;
}
回复
共 15 条回复,欢迎继续交流。
正在加载回复...