1 条题解
-
0
非最优解但是很好理解:
#include<bits/stdc++.h> using namespace std; #define int long long #define PII pair<int,int> const int N=310,P=998244353; int dp[N][N][N];map<PII,int>mp; int n,m,a,b,c,d,e,f; PII calc(int x,int y,int z){return {x*a+y*c+z*e,x*b+y*d+z*f};} signed main() { cin>>n>>m>>a>>b>>c>>d>>e>>f; for(int i=1;i<=m;i++) { int x,y;cin>>x>>y; mp[{x,y}]=1; } dp[0][0][0]=1; for(int i=0;i<=n;i++)for(int j=0;j<=n;j++)for(int k=0;k<=n;k++)if(i+j+k<=n) { if(!mp[calc(i+1,j,k)])dp[i+1][j][k]=(dp[i+1][j][k]+dp[i][j][k])%P; if(!mp[calc(i,j+1,k)])dp[i][j+1][k]=(dp[i][j+1][k]+dp[i][j][k])%P; if(!mp[calc(i,j,k+1)])dp[i][j][k+1]=(dp[i][j][k+1]+dp[i][j][k])%P; } int ans=0; for(int i=0;i<=n;i++)for(int j=0;j<=n-i;j++) ans=(ans+dp[i][j][n-i-j])%P; cout<<ans; return 0; }
- 1
信息
- ID
- 9980
- 时间
- 3000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 2
- 上传者