<?xml version="1.0"?>
<rss version="2.0">
   <channel>
      <title>Những lưu ý khi thi by LaoCaiNo1</title>
      <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08</link>
      <description></description>
      <language>en-us</language>
      <pubDate>2025-01-10 12:47:03 UTC</pubDate>
      <lastBuildDate>2026-01-09 08:08:52 UTC</lastBuildDate>
      <webMaster>hello@padlet.com</webMaster>
      <image>
         <url></url>
      </image>
      <item>
         <title>Khai báo mảng trong main không quá 10^5. Khai báo mảng ngoài main không quá 10^8</title>
         <author>trungcao89</author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3286559897</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2025-01-10 13:07:16 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3286559897</guid>
      </item>
      <item>
         <title>Cout&lt;&lt;&#39;\n&#39; nhanh hơn cout&lt;</title>
         <author>trungcao89</author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3286561612</link>
         <description><![CDATA[<p>Bài đọc và ghi nhiều bộ số luôn phải có tăng tốc chương trình</p><p>ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);</p>]]></description>
         <enclosure url="" />
         <pubDate>2025-01-10 13:09:11 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3286561612</guid>
      </item>
      <item>
         <title>Sàng nguyên tổ chỉ sàng với kiểm tra snt đến 10^7</title>
         <author>trungcao89</author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3286561998</link>
         <description><![CDATA[<p>Code tham kháo sàng đến 10^7</p><p>#include &lt;bits/stdc++.h&gt;</p><p>const int Mx=1e7;</p><p>using namespace std;</p><p>bool SNT[Mx+5];</p><p>void sang()</p><p>{</p><p>    SNT[0]=SNT[1]=1;</p><p>    for(int i=2; i&lt;=sqrt(Mx); i++)</p><p>        if(!SNT[i])</p><p>            for(int j=i*i; j&lt;=Mx; j+=i)</p><p>                SNT[j]=1;</p><p>}</p>]]></description>
         <enclosure url="" />
         <pubDate>2025-01-10 13:09:39 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3286561998</guid>
      </item>
      <item>
         <title>Chương trình sàng tổng ước dùng khi cần tính tổng ước của nhiều số </title>
         <author>trungcao89</author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3286607789</link>
         <description><![CDATA[<p>void sanguoc()</p><p>{</p><p>    fill(p+1,p+1000007+1,1);</p><p>    p[0]=0;</p><p>    for(int i=2;i*i&lt;=1e6;i++)</p><p>        for(int j=i*i;j&lt;=1e6;j+=i)</p><p>        {</p><p>            p[j]+=i;</p><p>            if(i*i!=j) p[j]+=j/i;</p><p>        }</p><p>}</p>]]></description>
         <enclosure url="" />
         <pubDate>2025-01-10 13:53:47 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3286607789</guid>
      </item>
      <item>
         <title>Lúy thừa nhanh, tính với trường hợp phải tính lũy thừa của số  có số mũ lớn. Chú ý luôn phải % cho 1 giá trị nào đó nếu không sẽ tràn số</title>
         <author>trungcao89</author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3286611088</link>
         <description><![CDATA[<p>Code tham khảo</p><p>// Hàm lũy thừa nhanh: tính (a^b) % m</p><p>long long luythua(long long a, long long b, long long m) {</p><p>    long long result = 1; // Kết quả ban đầu</p><p>    a = a % m; // Giảm a về modulo m để tránh số lớn</p><p>    while (b &gt; 0) {</p><p>        // Nếu b lẻ, nhân kết quả với a</p><p>        if (b % 2 == 1) {</p><p>            result = (result * a) % m;</p><p>        }</p><p>        // Tăng b lên 1 bậc và bình phương a</p><p>        a = (a * a) % m;</p><p>        b /= 2;</p><p>    }</p><p>    return result;</p><p>}</p>]]></description>
         <enclosure url="" />
         <pubDate>2025-01-10 13:56:47 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3286611088</guid>
      </item>
      <item>
         <title>2 con trò là bài dùng khá hay với việc xét đoạn thỏa mãn 1 điều kiện gì đó. Như bài Dãy con hôm trước thầy chữa.</title>
         <author>trungcao89</author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3286664154</link>
         <description><![CDATA[<p>Code tham khảo:</p><p>#include &lt;iostream&gt;</p><p>#include &lt;vector&gt;</p><p>using namespace std;</p><p>int main() {</p><p>    int n;</p><p>    long long M;</p><p>    cin &gt;&gt; n &gt;&gt; M;</p><p>    vector&lt;int&gt; A(n);</p><p>    for (int i = 0; i &lt; n; i++) {</p><p>        cin &gt;&gt; A[i];</p><p>    }</p><p>    long long current_sum = 0;</p><p>    long long count = 0;</p><p>    int start = 0;</p><p>    for (int end = 0; end &lt; n; end++) {</p><p>        current_sum += A[end];</p><p>        while (current_sum &gt; M &amp;&amp; start &lt;= end) {</p><p>            current_sum -= A[start];</p><p>            start++;</p><p>        }</p><p>        count += (end - start + 1);</p><p>    }</p><p>    cout &lt;&lt; count &lt;&lt; endl;</p><p>    return 0;</p><p>}</p><p><br/></p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2108275969/39d2483905bee9549cc6992f899dcfe1/image.png" />
         <pubDate>2025-01-10 14:41:18 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3286664154</guid>
      </item>
      <item>
         <title>Sàng đếm ước dùng khi phải đếm số lượng ước của nhiều số</title>
         <author>trungcao89</author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3286667315</link>
         <description><![CDATA[<p>Code tham khảo</p><p>vector&lt;int&gt; sieveCountDivisors(int n)</p><p>{</p><p>    vector&lt;int&gt; divisorCount(n + 1, 0); // Mảng đếm ước, khởi tạo tất cả bằng 0</p><p>    // Tìm ước cho từng số</p><p>    for (int i = 1; i &lt;= n; ++i)</p><p>        for (int j = i; j &lt;= n; j += i)</p><p>            divisorCount[j]++; // Tăng số lượng ước của j</p><p>    return divisorCount;</p><p>}</p>]]></description>
         <enclosure url="" />
         <pubDate>2025-01-10 14:43:43 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3286667315</guid>
      </item>
      <item>
         <title>tinh thần đi thi</title>
         <author></author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287077800</link>
         <description><![CDATA[<p>Không sợ địch giỏi, chỉ sợ ta run</p>]]></description>
         <enclosure url="" />
         <pubDate>2025-01-11 01:18:56 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287077800</guid>
      </item>
      <item>
         <title>Dãy con tăng không liên tục dài nhất. Một ví dụ vận dung QHD cơ bản.</title>
         <author>trungcao89</author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287102617</link>
         <description><![CDATA[<p>#include &lt;bits/stdc++.h&gt;</p><p>#define ll long long</p><p>using namespace std;</p><p>ll n,kq;</p><p>ll a[1000007],l[1000007],w[1000007];</p><p>int main()</p><p>{</p><p>    ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);</p><p>    cin&gt;&gt;n;</p><p>    for(int i=0; i&lt;n; i++)</p><p>    {</p><p>        cin&gt;&gt;a[i]&gt;&gt;w[i];</p><p>        l[i]=w[i];</p><p>    }</p><p>    for(int i=1; i&lt;n; i++)</p><p>        for(int j=0; j&lt;i; j++)</p><p>            if(a[i]&gt;a[j])</p><p>                l[i]=max(l[i],l[j]+w[i]);</p><p>    kq=0;</p><p>    for(int i=0; i&lt;n; i++)</p><p>        kq=max(kq,l[i]);</p><p>    cout&lt;&lt;kq;</p><p>}</p><p><br/></p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2108275969/c127bb97ff5518f3967d7d126ed7e6bf/T_ng_qu_.docx" />
         <pubDate>2025-01-11 02:41:19 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287102617</guid>
      </item>
      <item>
         <title>tốc độ thực tế của prinft và cout trong thực tế môi trường IDE của c++</title>
         <author></author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287695710</link>
         <description><![CDATA[<p>code sinh hoán vị cho thấy rằng tốc độ thực tế đáng bất ngờ của prinft và cout, code giám sát thời gian cho thấy, khi sinh hoán vị của 1 mảng có 8 phần tử khác nhau (chạy bằng đệ quy rút gọn - next_permutation) cho thấy rằng khả năng in ra của cout có tăng tốc nhanh hơn hẳn so với prinft thường!</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/3258000593/0e4c05de9c8c7e373e594f27a5b9b0ee/image.png" />
         <pubDate>2025-01-12 11:07:50 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287695710</guid>
      </item>
      <item>
         <title>code sàng ước nâng cấp</title>
         <author></author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287710584</link>
         <description><![CDATA[<p>code chạy sàng ước sẽ nhanh hơn khi không duyệt qua mảng +1 ban đầu và chỉ +1 khi có phần tử cần gọi</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/3258000593/ab312cb6a33b85430e329b4cc6953a65/image.png" />
         <pubDate>2025-01-12 11:42:32 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287710584</guid>
      </item>
      <item>
         <title>Nguyên nhân tại sao &quot;\n&quot; lại nhanh hơn &quot;endl&quot; mặc dù cùng là xuống dòng (chắc ai cũng biết nhưng cứ để đây cho đẹp lmao)</title>
         <author></author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287714056</link>
         <description><![CDATA[<p>Trong lập trình thi đấu, sử dụng endl thực sự khiến chương trình của chúng ta chạy chậm đi.</p><p>Lí do là vì cout &lt;&lt; endl tương đương với cout &lt;&lt; "\n" &lt;&lt; flush. Flush được dùng để đưa một output đang chứa trong bộ đệm ra ngay lập tức để đồng bộ với chương trình đang chạy. Tuy nhiên trong lập trình thi đấu thì việc chạy đồng bộ không cần thiết vì chúng ta sử dụng đọc xuất file. Việc sử dụng endl chỉ hữu dụng khi làm những bài có tag interactive chẳng hạn trên nền tảng codeforces.</p><p>Nếu bạn đã quen tay với việc sử dụng endl rồi, hãy sử dụng #define endl "\n" ở trên đầu đoạn code.</p>]]></description>
         <enclosure url="" />
         <pubDate>2025-01-12 11:50:27 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287714056</guid>
      </item>
      <item>
         <title>Bản C++ trong trình chấm thi Themis là C++14</title>
         <author></author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287719404</link>
         <description><![CDATA[<p>Năm ngoái, thầy Cao có bảo là sử dụng isdigit, to_string, stoi, và những hàm tiện ích xử lý xâu kí tự khi vào máy chấm sẽ bị lỗi. Nhưng đó là năm ngoái, còn năm nay đã được tính là legit khi trình chấm Themis đã chuyển từ C++11 -&gt; C++14 (một phiên bản chấm có thể nói là nhanh gấp bội và rất nhiều tiện ích so với bản cũ). Cho nên anh em cứ thoải mái dùng các hàm tiện ích nhé! (lưu ý là hàm lcm(a.b) - tìm bội chung nhỏ nhất không có trong C++14 mà phải tự anh em define nó)</p>]]></description>
         <enclosure url="" />
         <pubDate>2025-01-12 12:01:47 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287719404</guid>
      </item>
      <item>
         <title>code sàng tổng ước và sàng số các ước có 1 lưu ý nhỏ khi dùng</title>
         <author></author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287719724</link>
         <description><![CDATA[<p>bởi vì sàng ước tổng hợp của thầy là sàng nhanh, nên thầy chạy từ i^2 của số ấy, vậy nên khi tính tổng ước, thì hãy cộng bù cả chính số đấy vào, đối với cải tiến không fill, cộng thêm cả 1 vào nữa, vậy nên khi truy suất ra từ sàng tổng ước,hãy cộng thêm số đấy và 1. đối với sàng số các ước, vì số ấy thiếu 2 ước là chình nó và 1, vậy nên, với code không fill, chỉ cần +2 vào là xong</p><p><br/></p>]]></description>
         <enclosure url="" />
         <pubDate>2025-01-12 12:02:36 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287719724</guid>
      </item>
      <item>
         <title>code sàng số các ước</title>
         <author></author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287720320</link>
         <description><![CDATA[<p>void sanguoc()</p><p>{</p><p>    p[0]=0;</p><p>    for(int i=2; i*i&lt;=1e6; i++)</p><p>        for(int j=i*i; j&lt;=1e6; j+=i)</p><p>        {</p><p>            p[j]++;</p><p>            if(i*i!=j) p[j]++;</p><p>        }</p><p>}</p><p>dựa trên ý tưởng của thầy, code này hoạt động y như vậy nhưng là +1 khi quyét qua ước, lưu ý, khi truy suất nó ra, hãy cộng thêm 2 bù cho ước là 1 và chính nó</p>]]></description>
         <enclosure url="" />
         <pubDate>2025-01-12 12:03:58 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287720320</guid>
      </item>
      <item>
         <title>Khi có bài toán in ra số có phần thập phân thì hãy dùng printf thay cho setprecision</title>
         <author></author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287728307</link>
         <description><![CDATA[<p>Nếu nói F1 là cuộc đua tốc độ của chiếc xe thì LCOI cũng được ví như giải F1 của thuật toán. Đơn giản mà nói thì chỉ cần chệch 1 mili giây cũng làm thay đổi cả thế trận ngay cả khi in ra kết quả cũng đủ ảnh hưởng dẫn đến quá thời gian. Như Hoàng và Đạt cho ta thấy được thời gian thực sư giữa cout và printf in ra số nguyên thì cout đã chiếm ưu thế hơn so với printf nhưng khi in ra số có phần thập phân thì lại là một câu chuyện ngược lại khi printf lại nhanh hơn cả cout &lt;&lt; fixed &lt;&lt; setprecision. Nguyên nhân như sau:</p><ul><li><p><strong>printf</strong> nhanh hơn vì nó là một hàm cấp thấp, không sử dụng các lớp trừu tượng và chỉ thực hiện định dạng trực tiếp và in ra.</p></li><li><p><strong>setprecision</strong> trong cout có thêm các thao tác quản lý trạng thái luồng, thay đổi các thuộc tính định dạng, và điều này làm tăng overhead, dẫn đến hiệu suất chậm hơn một chút so với printf.</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/3258088329/434c2c4b373d9434ddad7873e808b2cc/image.png" />
         <pubDate>2025-01-12 12:16:29 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3287728307</guid>
      </item>
      <item>
         <title>tips phân biệt dạng bài</title>
         <author></author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3292279814</link>
         <description><![CDATA[<p>thường thì đối với xu hướng làm bài, đa số anh đều thấy và suy đoán từ kinh nghiệm của mình về cách để phân biệt hướng làm chuẩn bằng cách dựa vào phạm vi và độ lớn của số mà bài cho như sau:</p><ul><li><p>dưới 10^3: thường sẽ là chạy trâu đến siêu trâu, và cách chạy thường khó và cần dùng nhiều não, đề bài hay lừa</p></li><li><p>trong khoảng 10^3 đến 10^6: thường thì đây là phạm vi ta chạy thuật toán thông dụng và nâng cao tốt nhất (như sàng, đếm ước, phân tách số,... đến các thuật toán tự phát)</p></li><li><p>từ 10^6 đến 10^9: là phạm vi hết cỡ của các thuật toán thi đấu, nên vùng này sẽ ưu tiên các thuật toán tối ưu, có thể thông thường như tìm số nguyên tố 6k+-1 cho đến những thuật toán nâng cao như chặt nhị phân, hàng đợi, chuyển đổi xâu,...</p></li><li><p>từ 10^9 đến 10^12(có thể lên đến 10^18): đây là thường là vùng số học, logic, nơi ta phải vận dụng não để tìm ra cách tối ưu và đưa thuật toán trở về phạm vi hoạt động bé hơn hoặc đưa về dạng công thức gì gì đó. Ví dụ điển hình của vùng này chính là bài toán số 3 ước, khi mà ta phải luận từ số nguyên tố đến việc vận dụng căn bậc 2 để rút ngắn phạm vi hoạt động</p></li><li><p>từ 10^12 đổ lên: hoạt động tốt nhất ở đây thì chỉ có tối ưu (ít), công thức (ít nhưng xác suất cao hơn) và duyệt xâu string.</p><p>trên đây là tips bài do anh tự kiểm nghiệm và rút ra từ kinh nghiệm làm bài của anh, tất nhiên mấy đứa vẫn cần đọc kỹ và đưa ra hướng làm riêng phòng ngoại lệ, nhưng đa số bài anh đã làm đều hoạt động như thế cả.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2025-01-15 16:21:36 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3292279814</guid>
      </item>
      <item>
         <title>DA CAT = Nayn</title>
         <author></author>
         <link>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3745285015</link>
         <description><![CDATA[<p>mấy đứa cố lên nhé, nhớ đọc phần lưu ý kinh nghiệm làm bài mà anh đã để ở đây 1 năm trước, nó rất hữu dụng đấy</p>]]></description>
         <enclosure url="" />
         <pubDate>2026-01-09 08:08:51 UTC</pubDate>
         <guid>https://padlet.com/trungcao89/ojzd8shsaxqucs08/wish/3745285015</guid>
      </item>
   </channel>
</rss>
