Ohno @ 2023-01-05 21:30:28
今天用memset赋值数组元素,因为我太蒻了,函数的元素顺序写反了。
but 这份代码竟然神奇的AC了!
百思不得其解。(mian函数第一行
#include<bits/stdc++.h>
using namespace std;
int b[1005][2500],n,t,a;
int main(){
memset(b,sizeof(b),0);
b[0][0]=b[1][0]=1;
for(int i=1;i<=1001;i++){
for(int j=0;j<2500;j++){
b[i][j]*=i;
}
for(int j=0;j<2500;j++){
if(b[i][j]>9){
b[i][j+1]=b[i][j+1]+b[i][j]/10;
b[i][j]=b[i][j]%10;
}
b[i+1][j]=b[i][j];
}
}
cin>>t;
while(t--){
cin>>n>>a;
long long ans=0;
int ii=2500;while(ii>=0 and b[n][ii]==0)ii--;
for(int j=ii;j>=0;j--)if(b[n][j]==a)ans++;
cout<<ans<<'\n';
}
return 0;
}
by yukimianyan @ 2023-01-05 21:32:11
memset(xxx,yyy,0)
相当于 ;
,然而因为 b
本来就是空的,所以正确
by Katz @ 2023-01-05 21:33:07
所以为什么要memest啊
by Winston12321_ @ 2023-01-05 21:34:10
@Ohno 全局变量没有被修改相当于就是0?
by wei_xin @ 2023-01-05 21:35:27
该函数的效果是将第二个参数对应的十六进制码循环地放到从第一个参数开始的,长为第三个参数的地址上。
这里你的长度为 memset
其实没有任何效果,又全局变量默认置 memset
的效果。于是。
by Ohno @ 2023-01-05 21:45:14
@wei_xin thx,灵异告破,此贴结。
by andyyzc @ 2023-03-03 22:06:10
真牛逼