Bug记录:
在解题时候,数组范围没开够(少1位),虽然在本地表面上可以Ac,但在计蒜客终端上无法正确运行。当下标从1开始时,数组范围也要记得要开够啊!!!
#include<iostream>
#include<stdio.h>
using namespace std;
int n,m;
int ans = 0;
int p[5][2];
int mem[151][5];
void pre(){
for(int i=1;i<=m;i++){
for(int j=1;j<=4;j++){
if(j ==1){
mem[i][j] = i;
continue;
}
mem[i][j] = mem[i][j-1]*i;
}
}
}
void dfs(int index,int total){
if(index==n+1){
if(total ==0){
ans++;
return;
}
return;
}
int ki = p[index][0];
int pi = p[index][1];
for(int j=1;j<=m;j++){
int temp = ki*mem[j][pi];
dfs(index+1,total+temp);
}
}
int main(){
//freopen("in.txt","r",stdin);
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>p[i][0]>>p[i][1];
}
pre();
dfs(1,0);
cout<<ans<<'\n';
return 0;
}