Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में चॉकबोर्ड XOR गेम

मान लीजिए कि हमारे पास अंक नामक एक सरणी है, जहां अंक [i] एक चॉकबोर्ड पर लिखे गए हैं। राम और सैम बारी-बारी से चॉकबोर्ड से एक तत्व को मिटाते हैं, जिसमें राम पहले शुरू करते हैं। यदि किसी संख्या को मिटाने से चॉकबोर्ड के सभी तत्वों का बिटवाइज XOR 0 हो जाता है, तो वह खिलाड़ी हार जाता है। एक तत्व का बिटवाइज़ XOR वह तत्व ही है, और बिना किसी तत्व का बिटवाइज़ XOR 0 है। यदि कोई खिलाड़ी 0 के बराबर चॉकबोर्ड के सभी तत्वों के बिटवाइज़ XOR से अपनी बारी शुरू करता है, तो वह खिलाड़ी जीत जाएगा। मान लीजिए कि सरणी [1, 2, 1] धारण कर रही है, तो राम 1 या 2 को हटा सकता है, अगर राम 1 को हटाता है, तो सरणी [2,1] होगी, क्योंकि तत्वों का एक्सओआर 1 एक्सओआर 2 =3, अब सैम कर सकता है किसी भी तत्व को हटा दें, क्योंकि राम वह होगा जो अंतिम तत्व को मिटा देगा और वह हार जाएगा। पी>

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • n :=अंकों का आकार
  • x :=0
  • सभी तत्वों के लिए i अंकों में −
    • x :=x XOR i
  • रिटर्न x 0 के समान है या n mod 2 0 है

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   bool xorGame(vector<int>& nums) {
      int n = nums.size();
      int x = 0;
      for(int i : nums) x ^= i;
      return x == 0 || n % 2 == 0;
   }
};
main(){
   Solution ob;
   vector<int> v = {1,2,1};
   cout << (ob.xorGame(v));
}

इनपुट

{1,2,1}

आउटपुट

0

  1. सी++ में जंप गेम IV

    मान लीजिए कि हमारे पास arr नामक पूर्णांकों की एक सरणी है। हम शुरुआत में इंडेक्स 0 पर हैं। एक चरण में हम इंडेक्स i से i + x पर जा सकते हैं जहां:i + x =0. j जहां:arr[i] और arr[j] समान हैं और i और j समान नहीं हैं। यहाँ n सरणी का आकार है। सरणी के अंतिम सूचकांक तक पहुंचने के लिए हमें न्यूनतम चरणों की संख

  1. सी++ में जंप गेम वी

    मान लीजिए कि हमारे पास पूर्णांकों की एक सरणी है जिसे arr और एक पूर्णांक d कहा जाता है। एक चरण में हम इंडेक्स i से − . पर जा सकते हैं i + x जहां:i + x

  1. सी ++ में एक सबरे की एक्सओआर क्वेरीज़

    मान लीजिए कि हमारे पास सकारात्मक पूर्णांकों की सरणी गिरफ्तारी है और सरणी क्वेरीज जहां क्वेरीज़ [i] =[Li, Ri], प्रत्येक क्वेरी के लिए मैं Li से Ri तक के तत्वों के XOR की गणना करता हूं (अर्थात, arr[Li] XOR arr[Li+1] xor ... xor arr[Ri] )। हमें दिए गए प्रश्नों के परिणाम वाले सरणी को ढूंढना है। तो अगर इ