啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
我要疯了,写一题牛客,结果clion运行有问题,不知道是啥问题,下次再问吧(找了好久百度烦死了先把代码放这里,换系统后再看吧)
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e9;
int c1[maxn],c2[maxn],number[maxn];
const int basenumber=26;
typedef long long ll;
int mod;
ll quick_pow(ll a,ll c)
{
ll res=1;
a%=mod;
while(c)
{
if(c&1)res=(res*a)%mod;
a=(a*a)%mod;
c=c>>1;
}
return res;
}
int main() {
int n;
cin >> n;
while (n--) {
int number1;
cin>>number1>>mod;
memset(c1, 0, sizeof(c1));
memset(c2, 0, sizeof(c2));
int sum=0;
for (int i = 1; i <=number1*2; i++)
{number[i]=quick_pow(3,i-1);
sum+=number[i];}
c1[0] = 1;
for (int i = 1; i <= number1*2; i++) {
for (int j = 0; j <=sum/*这里是有后面约束其他题目change*/; j++)
for (int k = 0; k <= 1 && j + k * i <=sum; k++) {
c2[j + k * i] += c1[j];
}
memcpy(c1, c2, sizeof(c2));
memset(c2, 0, sizeof(c2));
}
int ans = 0;
for (int i = 1; i <=sum; i++)ans =(ans+c1[i])%mod;
cout << ans << endl;
}
}