wa,我要疯了,来个佬帮帮
  • 板块P1464 Function
  • 楼主JiaDu_Yin
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/11/25 18:26
  • 上次更新2023/11/25 18:50:21
查看原帖
wa,我要疯了,来个佬帮帮
1206075
JiaDu_Yin楼主2023/11/25 18:26
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
long long k[22][22][22]={0};
long long a[1000][3];
int w(long long a,long long b,long long c)
{

    if(a<=0||b<=0||c<=0) return 1;

    if(k[a][b][c]!=0)  return k[a][b][c];

    if(a>20||b>20||c>20) return k[a][b][c]=w(20,20,20);
    if(a<b&&b<c)         return k[a][b][c]=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c);
    if(a<=0||b<=0||c<=0||a>20||b>20||c>20||(a<b&&b<c)) ;
    else return k[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()
{   int x;
    for(x=0;x<1000;x++)
       {
        for(int y=0;y<3;y++)
           scanf("%lld",&a[x][y]);
        if(a[x][0]==-1&&a[x][1]==-1&&a[x][2]==-1)
            break;
       }
       for(int y=0;y<x;y++)
          {
              printf("w(%lld,%lld,%lld)=",a[y][0],a[y][1],a[y][2]);
              if(a[y][0]>20) a[y][0]=21;
              if(a[y][1]>20) a[y][1]=21;
              if(a[y][2]>20) a[y][2]=21;
              printf("%lld\n",w(a[y][0],a[y][1],a[y][2]));
          }
}

2023/11/25 18:26
加载中...