终于过了
  • 板块P1464 Function
  • 楼主C417
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/9/29 02:08
  • 上次更新2024/9/29 02:13:07
查看原帖
终于过了
985272
C417楼主2024/9/29 02:08

前面交了好几次都被subtask1给卡了,后面看了好几次才发现数据范围是long long不是int((lll¬ω¬) (违规紫衫)

PS:代码有毒,别看

#include<bits/stdc++.h>
#define ll long long
void write(int x){if(x<0){putchar('-');x=-x;}if(x<10){putchar(x+'0');return ;}write(x/10);putchar(x%10+'0');}
int qread(){int f=1, a=0;char ch;ch=getchar();for(; !isdigit(ch); ch=getchar()){if(ch=='-'){f=-1;}}for(; isdigit(ch); ch=getchar()){a=a*10+ch-'0';}return a*f;}
using namespace std;
ll a, b, c;
ll dp[25][25][25];
bool vis[25][25][25];
ll w(ll a, ll b, ll c){
	if(a<=0 || b<=0 || c<=0)
		return 1;
	else if(a>20 || b>20 || c>20)
		return 1048576;
	if(vis[a][b][c])
		return dp[a][b][c];
	vis[a][b][c]=1;
	if(a<b && b<c)
		return dp[a][b][c]=w(a, b, c-1)+w(a, b-1, c-1)-w(a, b-1, c);
	return dp[a][b][c]=w(a-1, b, c)+w(a-1, b-1, c)+w(a-1, b, c-1)-w(a-1, b-1, c-1);
}
int main(){
	scanf("%lld %lld %lld", &a, &b, &c);
	while(a!=-1 || b!=-1 || c!=-1){
		printf("w(%lld, %lld, %lld) = %lld\n", a, b, c, w(a, b, c));	
		scanf("%lld %lld %lld", &a, &b, &c);
	}
    return 0;
}
2024/9/29 02:08
加载中...