<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem operacje_bitowe</title>
<link>https://forum.pasja-informatyki.pl/tag/operacje_bitowe</link>
<description>Powered by Question2Answer</description>
<item>
<title>Zadanie Vasya and sets Eolymp, problem z bitsetem / maskami bitowymi</title>
<link>https://forum.pasja-informatyki.pl/583263/zadanie-vasya-and-sets-eolymp-problem-z-bitsetem-maskami-bitowymi</link>
<description>

&lt;p&gt;Mam problem z takim zadaniem:&amp;nbsp;&lt;a href=&quot;https://www.eolymp.com/en/contests/14738/problems/149026&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://www.eolymp.com/en/contests/14738/problems/149026&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;Zapewne jest ono jakies proste, napisałem kod na 80pkt(przekroczono limit czasu)&amp;nbsp;przy pomocy bitseta. Zastanawiam się dlaczego nie wchodzi na 100pkt, pewnie coś źle napisałem w bitsecie, czy te and-owanie / or-owanie / count nie powinny działać w O(SIZE / 64)? Jest to moje pierwsze zadanie, w którym skorzystałem z bitseta, więc z góry ostrzegam może być tragicznie....&lt;/p&gt;



&lt;p&gt;Kod:&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;bitset&amp;gt;

using namespace std;

int n = 0, m = 0, z = 0, wczytana_liczba = 0, a = 0, b = 0, wyn = 0;
const unsigned long long SIZE = 1e6+1;
string decyzja;
vector&amp;lt;bitset&amp;lt;SIZE&amp;gt;&amp;gt; czy_mamy;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cin &amp;gt;&amp;gt; n;
    czy_mamy.assign(n,{});

    for (int i = 0; i &amp;lt; n; ++i)
    {
        cin &amp;gt;&amp;gt; z;
        while(z--)
        {
            cin &amp;gt;&amp;gt; wczytana_liczba;
            czy_mamy[i].set(wczytana_liczba);
        }
    }

    cin &amp;gt;&amp;gt; m;
    for (int i = 0; i &amp;lt; m; ++i)
    {
        cin &amp;gt;&amp;gt; decyzja &amp;gt;&amp;gt; a &amp;gt;&amp;gt; b;
        a--, b--;
        if (decyzja == &quot;INTERSECTION&quot;)
            cout &amp;lt;&amp;lt; (czy_mamy[a] &amp;amp; czy_mamy[b]).count() &amp;lt;&amp;lt; '\n';
        else
            cout &amp;lt;&amp;lt; (czy_mamy[a] | czy_mamy[b]).count() &amp;lt;&amp;lt; '\n';
    }

    return 0;
}&lt;/pre&gt;



&lt;p&gt;Z góry dziękuję za pomoc i poświęcony czas!&lt;/p&gt;</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/583263/zadanie-vasya-and-sets-eolymp-problem-z-bitsetem-maskami-bitowymi</guid>
<pubDate>Mon, 03 Apr 2023 22:52:28 +0000</pubDate>
</item>
</channel>
</rss>