做法求证以及玄学挂分
查看原帖
做法求证以及玄学挂分
1200904
Qiu101029楼主2025/1/31 19:12
#include<cstdio>
using namespace std;
int t,n,a[100005];
long long tmp,b;
void solve(){
	scanf("%d",&n);tmp=0;
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	for(int i=1;i<=n;i++){
		scanf("%d",&b);
		b-=tmp;
		tmp=b-a[i];
	}
	if(tmp) printf("No\n");
	else printf("Yes\n");
}
int main(){
	scanf("%d",&t);
	while(t--) solve();
	return 0;
}

如题,以上代码会 挂8分 , 然而将 aa 数组改为 long long 类型,并将 bb 输入时的格式控制符改为正确的"%lld"即可 AC ,但是:

1ai,bi1091 \le a_i,b_i \le 10^9

显然 a,ba,b 输入时均不会超出 int 范围,求上述玄学错误的原因。

以及赛时我感觉这个做法是对的(我也不好描述),试了一下就过了,所以求证该做法的正确性。

2025/1/31 19:12
加载中...