社区讨论
终于过了
P1464[PacNW 1999] Function参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @m1mgvnz6
- 此快照首次捕获于
- 2024/09/29 02:09 去年
- 此快照最后确认于
- 2024/09/29 02:13 去年
前面交了好几次都被subtask1给卡了,后面看了好几次才发现数据范围是long long不是int((lll¬ω¬)
(违规紫衫)
#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;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...