কম্পিউটার

C++ এ কার্ডের ডেকে এক ধরনের এক্স


ধরুন আমাদের একটি তাসের ডেক আছে, প্রতিটি কার্ডে একটি পূর্ণসংখ্যা লেখা আছে। আমরা X>=2 বেছে নিতে পারি কিনা তা পরীক্ষা করতে হবে যাতে পুরো ডেকটিকে 1 বা ততোধিক তাসের দলে বিভক্ত করা সম্ভব হয়, যেখানে নিম্নলিখিত শর্তটি পূরণ করে:প্রতিটি গ্রুপে ঠিক X নম্বর কার্ড রয়েছে। প্রতিটি গ্রুপের সমস্ত কার্ডের একই নম্বর রয়েছে৷

সুতরাং, যদি ইনপুটটি deck =[1,2,3,4,4,3,2,1] এর মত হয়, তাহলে আউটপুটটি True হবে, কারণ সম্ভাব্য পার্টিশনগুলি হল [1,1],[2,2], [৩,৩], [৪,৪]।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • একটি মানচিত্র mp সংজ্ঞায়িত করুন
  • ডেকের সকল x এর জন্য
    • (mp[x] 1 দ্বারা বাড়ান)
  • সকল কী-মানের পেয়ারের জন্য mp
    • ans :=gcd of ( ans এবং x এর মান)
  • সত্য ফেরত যখন উত্তর> 1, অন্যথায় মিথ্যা

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   bool hasGroupsSizeX(vector<int>& deck) {
      unordered_map<int, int> mp;
      int ans;
      for (auto x : deck)
         mp[x]++;
      for (auto x : mp)
         ans = __gcd(ans, x.second);
      return (ans > 1);
   }
};
main(){
   Solution ob;
   vector<int> v = {1,2,3,4,4,3,2,1};
   cout << (ob.hasGroupsSizeX(v));
}

ইনপুট

{1,2,3,4,4,3,2,1}

আউটপুট

1

  1. C++ এ দুটি শহরের সময়সূচী

  2. C++ এ Fesetround() এবং fegetround()

  3. লিনাক্সে C++ এর সেরা IDE কি?

  4. কার্ডের ডেক এলোমেলো করার জন্য পাইথন প্রোগ্রাম