这一题用long long int不爆吗?
  • 板块P1464 Function
  • 楼主congya
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/11/2 18:01
  • 上次更新2023/11/2 19:51:20
查看原帖
这一题用long long int不爆吗?
989962
congya楼主2023/11/2 18:01

保证输入的数在 [−9223372036854775808,9223372036854775807] 之间,并且是整数。

不爆
刚刚好,一个数不差(我哭死

(这是要把long long的范围背完啊啊啊

(以为用long long装不下的受害者代码:

(没写完,看个思想大概是:把字符串转化成数字

#include<cstring>
#include<iostream>
using namespace std;
#define sc(i) scanf("%d",&i)

int ans[40][40][40];

int z(int a,int b,int c){
	if(a<=0||b<=0||c<=0){
		return 1;
	}else if(a>20||b>20||c>20){
		return z(20,20,20);
	}else if(a<b&&b<c){
		if(!ans[a][b][c]){
			ans[a][b][c]=z(a,b,c-1)+z(a,b-1,c-1)-z(a,b-1,c);
		}
		return ans[a][b][c];
	}else{
		if(!ans[a][b][c]){
			ans[a][b][c]=z(a-1,b,c)+z(a-1,b-1,c)+z(a-1,b,c-1)-z(a-1,b-1,c-1);
		}
		return ans[a][b][c];
	}
}

int main(){
//	freopen("1.txt","r",stdin);
	string a,b,c;
	int q,w,e;
	while(1){
		cin>>a>>b>>c;
		a=a.substr(0,6);
		b=b.substr(0,6);
		c=c.substr(0,6);
		q=stoi(a);
		w=stoi(b);
		e=stoi(c);
		if(q==-1&&w==-1&&e==-1){
			break;
		}
		else{
			printf("w(%d, %d, %d) = %d\n",q,w,e,z(q,w,e));

		}
	}
}
2023/11/2 18:01
加载中...