Advertisement
Guest User

Untitled

a guest
Jul 16th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. /*
  2. $$$$$$$\ $$\ $$$$$$$\
  3. $$ __$$\ \__| $$ __$$\
  4. $$ | $$ | $$$$$$\ $$$$$$\ $$\ $$$$$$$\ $$ | $$ | $$$$$$\ $$$$$$\ $$$$$$$\ $$$$$$\
  5. $$$$$$$\ |$$ __$$\ $$ __$$\ $$ |$$ _____|$$$$$$$\ | \____$$\ $$ __$$\ $$ _____|\____$$\
  6. $$ __$$\ $$ / $$ |$$ | \__|$$ |\$$$$$$\ $$ __$$\ $$$$$$$ |$$ | \__|$$ / $$$$$$$ |
  7. $$ | $$ |$$ | $$ |$$ | $$ | \____$$\ $$ | $$ |$$ __$$ |$$ | $$ | $$ __$$ |
  8. $$$$$$$ |\$$$$$$ |$$ | $$ |$$$$$$$ |$$$$$$$ |\$$$$$$$ |$$ | \$$$$$$$\\$$$$$$$ |
  9. \_______/ \______/ \__| \__|\_______/ \_______/ \_______|\__| \_______|\_______|
  10. */
  11. #include <bits/stdc++.h>
  12. #include <unordered_map>
  13.  
  14. using namespace std;
  15.  
  16. #define pb push_back
  17. #define mp make_pair
  18. #define pii pair <int,int>
  19. #define si pair<string, int>
  20. #define is pair<int, string>
  21. #define in insert
  22. #define X first
  23. #define Y second
  24. #define _ << " " <<
  25. #define sz(x) (int)x.size()
  26. #define all(a) (a).begin(),(a).end()
  27. #define FOR(i, a, b) for (int i = a; i < b; ++i)
  28. #define REP(i, n) FOR(i, 0, n)
  29. #define BITS(x) __builtin_popcount(x)
  30. #define mset memset
  31. #define mcpy memcpy
  32.  
  33. typedef long long ll;
  34. typedef long double ld;
  35. typedef vector <int> vi;
  36. typedef vector <pii> vpi;
  37. typedef vector <ll> vll;
  38. typedef vector<pair<string, int>> vsi;
  39. typedef vector<pair<int, string>> vis;
  40. //((float) t)/CLOCKS_PER_SEC
  41.  
  42. const int MOD = 1e9 + 7;
  43. const int PI = acos(-1);
  44. const int LOG = 32;
  45.  
  46. inline int sum(int a, int b){
  47. if (a + b >= MOD)
  48. return a + b - MOD;
  49. if (a + b < 0)
  50. return a + b + MOD;
  51. return a + b;
  52. }
  53.  
  54. inline void add(int &a, int b){
  55. a = sum(a, b);
  56. }
  57.  
  58. inline int mul(int a, int b){
  59. return (ll)a * (ll)b % MOD;
  60. }
  61.  
  62. ll n, m, k, mat[25][25], sol;
  63.  
  64. unordered_map <pair <pii, ll>, ll> DP, bio;
  65.  
  66. ll dp(int x, int y, ll sum){
  67. if (x >= n || y >= m)
  68. return 0;
  69. sum ^= mat[x][y];
  70. if (x == n - 1 && y == m - 1){
  71. if (sum == k)
  72. return 1;
  73. else
  74. return 0;
  75. }
  76. if (bio[{{x, y}, sum}])
  77. return DP[{{x, y}, sum}];
  78. bio[{{x, y}, sum}]++;
  79. ll ret = 0;
  80. ret = (dp(x + 1, y, sum) + dp(x, y + 1, sum));
  81. DP[{{x, y}, sum}] = ret;
  82. return ret;
  83. }
  84.  
  85. int main () {
  86. ios_base::sync_with_stdio(false);
  87. cin.tie(0);
  88. cout.tie(0);
  89. cin >>n>>m>>k;
  90. FOR(i, 0, n){
  91. FOR(j, 0, m){
  92. cin >>mat[i][j];
  93. }
  94. }
  95. cout <<dp(0, 0, 0)<<endl;
  96. return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement