C++编程【NOIP1997普及组T3】街道问题(与原题一些数据不同)
答案:1 悬赏:80 手机版
解决时间 2021-11-30 13:05
- 提问者网友:溺爱和你
- 2021-11-29 23:37
C++编程【NOIP1997普及组T3】街道问题(与原题一些数据不同)
最佳答案
- 五星知识达人网友:琴狂剑也妄
- 2021-11-30 00:39
二维数组a[i,j]存放从(1,1)到(i,j)的路径数量,转移方程式a[i,j]=a[i-1,j]+a[i,j-1],如果long long 不够就用高精度追问求C++完整代码追答#include
#include
int n,m,xx,yy,x,y,caozuo;
long long a[32][32];
int main()
{
scanf("%d",&caozuo);
memset(a,x=y=xx=yy=0,sizeof(a));
a[0][1]=1;
if (caozuo-1) scanf("%d %d %d %d %d %d",&n,&m,&x,&y,&xx,&yy); else scanf("%d %d",&n,&m);
if ((x>xx)||(x==xx)&&(y>yy))
{
caozuo=x;
x=xx;
xx=caozuo;
caozuo=y;
y=yy;
yy=caozuo;
}
for (int i=1;i<=n;i++) for (int j=1;j<=m;j++) if (!((i>=x)&&(i<=xx)&&(j>=y)&&(j<=yy))) a[i][j]=a[i-1][j]+a[i][j-1];
printf("%I64d",a[n][m]);//如果是提交到评测网或者是Linux系统可能I64d要改成lld
//换了大小写之后是i64d改成LLd别看错了
}//麻烦采纳一下追问过了,谢谢大佬,已采纳
#include
int n,m,xx,yy,x,y,caozuo;
long long a[32][32];
int main()
{
scanf("%d",&caozuo);
memset(a,x=y=xx=yy=0,sizeof(a));
a[0][1]=1;
if (caozuo-1) scanf("%d %d %d %d %d %d",&n,&m,&x,&y,&xx,&yy); else scanf("%d %d",&n,&m);
if ((x>xx)||(x==xx)&&(y>yy))
{
caozuo=x;
x=xx;
xx=caozuo;
caozuo=y;
y=yy;
yy=caozuo;
}
for (int i=1;i<=n;i++) for (int j=1;j<=m;j++) if (!((i>=x)&&(i<=xx)&&(j>=y)&&(j<=yy))) a[i][j]=a[i-1][j]+a[i][j-1];
printf("%I64d",a[n][m]);//如果是提交到评测网或者是Linux系统可能I64d要改成lld
//换了大小写之后是i64d改成LLd别看错了
}//麻烦采纳一下追问过了,谢谢大佬,已采纳
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯