0_0_20614611_23105.cpp:8:109: error: stray '#' in program
using namespace std;const int base = 2015;const int maxn = 100005;int T, n, m, k, kk; struct Matrix{ #define size 55 int m[size][size]; Matrix() { memset(m, 0, sizeof(m)); } void operator =(const Matrix&b) { memcpy(m, b.m, sizeof(m)); } Matrix operator *(const Matrix&b) { Matrix c; for (int i = 0; i < size; i++) for (int j = 0; j < size; j++) for (int k = 0; k < size; k++) c.m[i][k] = (c.m[i][k] + m[i][j] * b.m[j][k]) % base; return c; } Matrix get(int x) { Matrix a, b = *this; for (int f = 0; x; x >>= 1) { if (x & 1) if (f) a = a * b; else a = b, f = 1; b = b * b; } return a; }}; int main(){ scanf("%d", &T); while (T--) { scanf("%d%d", &n, &m); Matrix a, b; for (int i = 1; i <= n + 1; i++) a.m[i][n + 1] = 1; for (int i = 1; i <= n; i++) { scanf("%d", &k); for (int j = 1; j <= k; j++) { scanf("%d", &kk); a.m[i][kk] = 1; } } for (int i = 1; i <= n + 1; i++) b.m[1][i] = 1; a = a.get(m); b = b * a; if (m == 1) printf("%d\n", n + 1); else printf("%d\n", b.m[1][n + 1]); } return 0;}
^
0_0_20614611_23105.cpp:8:110: error: 'define' does not name a type
using namespace std;const int base = 2015;const int maxn = 100005;int T, n, m, k, kk; struct Matrix{ #define size 55 int m[size][size]; Matrix() { memset(m, 0, sizeof(m)); } void operator =(const Matrix&b) { memcpy(m, b.m, sizeof(m)); } Matrix operator *(const Matrix&b) { Matrix c; for (int i = 0; i < size; i++) for (int j = 0; j < size; j++) for (int k = 0; k < size; k++) c.m[i][k] = (c.m[i][k] + m[i][j] * b.m[j][k]) % base; return c; } Matrix get(int x) { Matrix a, b = *this; for (int f = 0; x; x >>= 1) { if (x & 1) if (f) a = a * b; else a = b, f = 1; b = b * b; } return a; }}; int main(){ scanf("%d", &T); while (T--) { scanf("%d%d", &n, &m); Matrix a, b; for (int i = 1; i <= n + 1; i++) a.m[i][n + 1] = 1; for (int i = 1; i <= n; i++) { scanf("%d", &k); for (int j = 1; j <= k; j++) { scanf("%d", &kk); a.m[i][kk] = 1; } } for (int i = 1; i <= n + 1; i++) b.m[1][i] = 1; a = a.get(m); b = b * a; if (m == 1) printf("%d\n", n + 1); else printf("%d\n", b.m[1][n + 1]); } return 0;}
^
0_0_20614611_23105.cpp: In constructor 'Matrix::Matrix()':
0_0_20614611_23105.cpp:8:183: error: invalid conversion from 'int' to 'void*' [-fpermissive]
using namespace std;const int base = 2015;const int maxn = 100005;int T, n, m, k, kk; struct Matrix{ #define size 55 int m[size][size]; Matrix() { memset(m, 0, sizeof(m)); } void operator =(const Matrix&b) { memcpy(m, b.m, sizeof(m)); } Matrix operator *(const Matrix&b) { Matrix c; for (int i = 0; i < size; i++) for (int j = 0; j < size; j++) for (int k = 0; k < size; k++) c.m[i][k] = (c.m[i][k] + m[i][j] * b.m[j][k]) % base; return c; } Matrix get(int x) { Matrix a, b = *this; for (int f = 0; x; x >>= 1) { if (x & 1) if (f) a = a * b; else a = b, f = 1; b = b * b; } return a; }}; int main(){ scanf("%d", &T); while (T--) { scanf("%d%d", &n, &m); Matrix a, b; for (int i = 1; i <= n + 1; i++) a.m[i][n + 1] = 1; for (int i = 1; i <= n; i++) { scanf("%d", &k); for (int j = 1; j <= k; j++) { scanf("%d", &kk); a.m[i][kk] = 1; } } for (int i = 1; i <= n + 1; i++) b.m[1][i] = 1; a = a.get(m); b = b * a; if (m == 1) printf("%d\n", n + 1); else printf("%d\n", b.m[1][n + 1]); } return 0;}
^
In file included from GCC4.9.2/x86_64-w64-mingw32/include/c++/cstring:42:0,
from 0_0_20614611_23105.cpp:2:
GCC4.9.2/x86_64-w64-mingw32/include/string.h:43:18: note: initializing argument 1 of 'void* memset(void*, int, size_t)'
void * __cdecl memset(void *_Dst,int _Val,size_t _Size);
^
0_0_20614611_23105.cpp: In member function 'void Matrix::operator=(const Matrix&)':
0_0_20614611_23105.cpp:8:238: error: 'const struct Matrix' has no member named 'm'
using namespace std;const int base = 2015;const int maxn = 100005;int T, n, m, k, kk; struct Matrix{ #define size 55 int m[size][size]; Matrix() { memset(m, 0, sizeof(m)); } void operator =(const Matrix&b) { memcpy(m, b.m, sizeof(m)); } Matrix operator *(const Matrix&b) { Matrix c; for (int i = 0; i < size; i++) for (int j = 0; j < size; j++) for (int k = 0; k < size; k++) c.m[i][k] = (c.m[i][k] + m[i][j] * b.m[j][k]) % base; return c; } Matrix get(int x) { Matrix a, b = *this; for (int f = 0; x; x >>= 1) { if (x & 1) if (f) a = a * b; else a = b, f = 1; b = b * b; } return a; }}; int main(){ scanf("%d", &T); while (T--) { scanf("%d%d", &n, &m); Matrix a, b; for (int i = 1; i <= n + 1; i++) a.m[i][n + 1] = 1; for (int i = 1; i <= n; i++) { scanf("%d", &k); for (int j = 1; j <= k; j++) { scanf("%d", &kk); a.m[i][kk] = 1; } } for (int i = 1; i <= n + 1; i++) b.m[1][i] = 1; a = a.get(m); b = b * a; if (m == 1) printf("%d\n", n + 1); else printf("%d\n", b.m[1][n + 1]); } return 0;}
^
0_0_20614611_23105.cpp: In member function 'Matrix Matrix::operator*(const Matrix&)':
0_0_20614611_23105.cpp:8:339: error: 'size' was not declared in this scope
using namespace std;const int base = 2015;const int maxn = 100005;int T, n, m, k, kk; struct Matrix{ #define size 55 int m[size][size]; Matrix() { memset(m, 0, sizeof(m)); } void operator =(const Matrix&b) { memcpy(m, b.m, sizeof(m)); } Matrix operator *(const Matrix&b) { Matrix c; for (int i = 0; i < size; i++) for (int j = 0; j < size; j++) for (int k = 0; k < size; k++) c.m[i][k] = (c.m[i][k] + m[i][j] * b.m[j][k]) % base; return c; } Matrix get(int x) { Matrix a, b = *this; for (int f = 0; x; x >>= 1) { if (x & 1) if (f) a = a * b; else a = b, f = 1; b = b * b; } return a; }}; int main(){ scanf("%d", &T); while (T--) { scanf("%d%d", &n, &m); Matrix a, b; for (int i = 1; i <= n + 1; i++) a.m[i][n + 1] = 1; for (int i = 1; i <= n; i++) { scanf("%d", &k); for (int j = 1; j <= k; j++) { scanf("%d", &kk); a.m[i][kk] = 1; } } for (int i = 1; i <= n + 1; i++) b.m[1][i] = 1; a = a.get(m); b = b * a; if (m == 1) printf("%d\n", n + 1); else printf("%d\n", b.m[1][n + 1]); } return 0;}
^
0_0_20614611_23105.cpp:8:439: error: 'struct Matrix' has no member named 'm'
using namespace std;const int base = 2015;const int maxn = 100005;int T, n, m, k, kk; struct Matrix{ #define size 55 int m[size][size]; Matrix() { memset(m, 0, sizeof(m)); } void operator =(const Matrix&b) { memcpy(m, b.m, sizeof(m)); } Matrix operator *(const Matrix&b) { Matrix c; for (int i = 0; i < size; i++) for (int j = 0; j < size; j++) for (int k = 0; k < size; k++) c.m[i][k] = (c.m[i][k] + m[i][j] * b.m[j][k]) % base; return c; } Matrix get(int x) { Matrix a, b = *this; for (int f = 0; x; x >>= 1) { if (x & 1) if (f) a = a * b; else a = b, f = 1; b = b * b; } return a; }}; int main(){ scanf("%d", &T); while (T--) { scanf("%d%d", &n, &m); Matrix a, b; for (int i = 1; i <= n + 1; i++) a.m[i][n + 1] = 1; for (int i = 1; i <= n; i++) { scanf("%d", &k); for (int j = 1; j <= k; j++) { scanf("%d", &kk); a.m[i][kk] = 1; } } for (int i = 1; i <= n + 1; i++) b.m[1][i] = 1; a = a.get(m); b = b * a; if (m == 1) printf("%d\n", n + 1); else printf("%d\n", b.m[1][n + 1]); } return 0;}
|