1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#define forl(i, l, r) for (int i = l; i <= r; i++) #define forr(i, r, l) for (int i = r; i >= l; i--) #define for1(i, n) for (int i = 1; i <= n; i++) #define for0(i, n) for (int i = 0; i < n; i++) #define meminf(a) memset(a, inf, sizeof(a)) #define mem_1(a) memset(a, -1, sizeof(a)) #define mem0(a) memset(a, 0, sizeof(a)) #define inlld(lld) scanf("%lld",&lld) typedef unsigned long long ull; #define inlf(f) scanf("%lf",&f) #define ind(d) scanf("%d",&d) #define ins(s) scanf("%s",s) #define inf 0x3f3f3f3f typedef long long ll; #define pi acos(-1.0) #define mod (int)(1e9+7) #define N (int)(1.1e5) using namespace std; int p[N]; int () { #ifndef ONLINE_JUDGE #endif p[0]=1; for1(i,100005){ ll fl=1,an=0,flag=1; while(1){ ll tmp=fl*(3*fl-1)/2; if(i-tmp<0)break; an=(an+flag*p[i-tmp]+mod)%mod; tmp=fl*(3*fl+1)/2; if(i-tmp<0)break; an=(an+flag*p[i-tmp]+mod)%mod; fl++; flag*=-1; } p[i]=an; } int t,n; ind(t); while(t--){ ind(n); printf("%dn",p[n]); } return 0; }
|
近期评论