社区讨论
求解,只得60分,wa两个
P1002[NOIP 2002 普及组] 过河卒参与者 4已保存回复 40
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 40 条
- 当前快照
- 1 份
- 快照标识符
- @mi6x0ywt
- 此快照首次捕获于
- 2025/11/20 12:12 4 个月前
- 此快照最后确认于
- 2025/11/20 16:59 4 个月前
请问是什么问题啊?找半天没找到毛病
CPP
#include<iostream>
using namespace std;
long long a[1001][1001];
long long f[1001][1001];
int main(){
long long n,m;
long long x,y;
cin>>n>>m>>x>>y;
f[0][0]=1;
for(int i=1;i<=n;i++)f[i][0]=1;
for(int i=1;i<=m;i++)f[0][i]=1;
//a[hx-2][hy+1]=a[hx-1][hy+]=a[]
a[x][y]=1;
if(x-1>=0&&y-2>=0)
a[x-1][y-2]=1;
if(x-2>=0&&y-1>=0)
a[x-2][y-1]=1;
if(x-2>=0&&y+1>=0)
a[x-2][y+1]=1;
if(x-1>=0&&y+2>=0)
a[x-1][y+2]=1;
if(x+1>=0&&y-2>=0)
a[x+1][y-2]=1;
if(x+2>=0&&y-1>=0)
a[x+2][y-1]=1;
if(x+2>=0&&y+1>=0)
a[x+2][y+1]=1;
if(x+1>=0&&y+2>=0)
a[x+1][y+2]=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i-1][j]!=1&&a[i][j-1]!=1&&a[i][j]!=1)
f[i][j]=f[i-1][j]+f[i][j-1];
else if(a[i][j-1]==1){
f[i][j]=f[i-1][j];
}else if(a[i-1][j]==1){
f[i][j]=f[i][j-1];
}else if(a[i-1][j]=1&&a[i][j-1]==1||a[i][j]==1){
f[i][j]=0;
}
}
}
cout<<f[n][m];
}
回复
共 40 条回复,欢迎继续交流。
正在加载回复...