<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>隨手記 on Piau 的筆記本</title><link>https://piaublog.com/quick-notes/</link><description>Recent content in 隨手記 on Piau 的筆記本</description><generator>Hugo -- gohugo.io</generator><language>zh-tw</language><copyright>Licensed under CC BY-NC-SA 4.0 © 2024-2026 Piau.</copyright><atom:link href="https://piaublog.com/quick-notes/index.xml" rel="self" type="application/rss+xml"/><item><title/><link>https://piaublog.com/quick-notes/cpp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://piaublog.com/quick-notes/cpp/</guid><description>&lt;h2 class="relative group"&gt;奇怪的小技巧（毒瘤寫法）
 &lt;div id="奇怪的小技巧毒瘤寫法" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%a5%87%e6%80%aa%e7%9a%84%e5%b0%8f%e6%8a%80%e5%b7%a7%e6%af%92%e7%98%a4%e5%af%ab%e6%b3%95" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;這裡記錄一些我覺得很酷、第一次看到的時候讓我打開眼界的寫法&lt;br&gt;
比較主觀#&lt;/p&gt;

&lt;h3 class="relative group"&gt;void 的 return
 &lt;div id="void-的-return" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#void-%e7%9a%84-return" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;void f() {
 return void(cout &amp;lt;&amp;lt; &amp;quot;oh&amp;quot;);
}

void g() {
 return cout &amp;lt;&amp;lt; &amp;quot;uh&amp;quot;, void();
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;同理 多項 return
 &lt;div id="同理-多項-return" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%90%8c%e7%90%86-%e5%a4%9a%e9%a0%85-return" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;int f() {
 return cout &amp;lt;&amp;lt; &amp;quot;oh&amp;quot;, 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;輸入數字，執行 n 次迴圈
 &lt;div id="輸入數字執行-n-次迴圈" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%bc%b8%e5%85%a5%e6%95%b8%e5%ad%97%e5%9f%b7%e8%a1%8c-n-%e6%ac%a1%e8%bf%b4%e5%9c%88" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;int n;
for (cin &amp;gt;&amp;gt; n; n; n--) {}
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;計算總合為 m 的次數
 &lt;div id="計算總合為-m-的次數" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%a8%88%e7%ae%97%e7%b8%bd%e5%90%88%e7%82%ba-m-%e7%9a%84%e6%ac%a1%e6%95%b8" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;cnt += sum == m
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;兩數互換
 &lt;div id="兩數互換" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%85%a9%e6%95%b8%e4%ba%92%e6%8f%9b" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;int a = 10, b = 20;
a ^= b; b ^= a; a ^= b;
cout &amp;lt;&amp;lt; a &amp;lt;&amp;lt; &amp;quot; &amp;quot; &amp;lt;&amp;lt; b;
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;不用下標輸出陣列
 &lt;div id="不用下標輸出陣列" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%8d%e7%94%a8%e4%b8%8b%e6%a8%99%e8%bc%b8%e5%87%ba%e9%99%a3%e5%88%97" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;int arr[] = {1, 2, 3, 4, 5};
cout &amp;lt;&amp;lt; *(arr + 2);
*(arr+2) = 8;
cout &amp;lt;&amp;lt; *(arr + 2);
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 class="relative group"&gt;一些感覺不紀錄會忘記的正常寫法
 &lt;div id="一些感覺不紀錄會忘記的正常寫法" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%80%e4%ba%9b%e6%84%9f%e8%a6%ba%e4%b8%8d%e7%b4%80%e9%8c%84%e6%9c%83%e5%bf%98%e8%a8%98%e7%9a%84%e6%ad%a3%e5%b8%b8%e5%af%ab%e6%b3%95" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h3 class="relative group"&gt;輸出中文（一個中文字佔兩格英文字的空間）
 &lt;div id="輸出中文一個中文字佔兩格英文字的空間" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%bc%b8%e5%87%ba%e4%b8%ad%e6%96%87%e4%b8%80%e5%80%8b%e4%b8%ad%e6%96%87%e5%ad%97%e4%bd%94%e5%85%a9%e6%a0%bc%e8%8b%b1%e6%96%87%e5%ad%97%e7%9a%84%e7%a9%ba%e9%96%93" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;string s = &amp;quot;一二三四五六日&amp;quot;;
int i;
cin &amp;gt;&amp;gt; i;
cout &amp;lt;&amp;lt; s[2*i] &amp;lt;&amp;lt; s[2*i+1];
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;大數除法判倍數
 &lt;div id="大數除法判倍數" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%a4%a7%e6%95%b8%e9%99%a4%e6%b3%95%e5%88%a4%e5%80%8d%e6%95%b8" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;string s;
cin &amp;gt;&amp;gt; s;
for (auto c : s) {
 sum = (((c-'0') + sum) % n)*10
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;控制 range-based loop 空格換行
 &lt;div id="控制-range-based-loop-空格換行" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%8e%a7%e5%88%b6-range-based-loop-%e7%a9%ba%e6%a0%bc%e6%8f%9b%e8%a1%8c" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;vector&amp;lt;int&amp;gt; v;
for (auto &amp;amp;i : v) {
	cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; &amp;quot; \n&amp;quot;[&amp;amp;i == &amp;amp;v.back()];
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;輸出十進位整數的二進位型態
 &lt;div id="輸出十進位整數的二進位型態" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%bc%b8%e5%87%ba%e5%8d%81%e9%80%b2%e4%bd%8d%e6%95%b4%e6%95%b8%e7%9a%84%e4%ba%8c%e9%80%b2%e4%bd%8d%e5%9e%8b%e6%85%8b" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;int n;
bitset&amp;lt;32&amp;gt; b(n);
cout &amp;lt;&amp;lt; b.to_string().substr(b.to_string().find('1'));
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;計算十進位整數的二進位型態有幾個 1
 &lt;div id="計算十進位整數的二進位型態有幾個-1" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%a8%88%e7%ae%97%e5%8d%81%e9%80%b2%e4%bd%8d%e6%95%b4%e6%95%b8%e7%9a%84%e4%ba%8c%e9%80%b2%e4%bd%8d%e5%9e%8b%e6%85%8b%e6%9c%89%e5%b9%be%e5%80%8b-1" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;int n;
cout &amp;lt;&amp;lt; __builtin_popcount(n);
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;依序取出字元 range based for loop
 &lt;div id="依序取出字元-range-based-for-loop" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%be%9d%e5%ba%8f%e5%8f%96%e5%87%ba%e5%ad%97%e5%85%83-range-based-for-loop" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;for (auto &amp;amp;k : string(&amp;quot;ABCD1234&amp;quot;))
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;反向 range based for loop
 &lt;div id="反向-range-based-for-loop" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%8f%8d%e5%90%91-range-based-for-loop" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;vector&amp;lt;int&amp;gt; v;
for (auto &amp;amp;i : vector&amp;lt;int&amp;gt;(v.rbegin(), v.rend())) {

}
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 class="relative group"&gt;真的沒主題的亂筆記
 &lt;div id="真的沒主題的亂筆記" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%9c%9f%e7%9a%84%e6%b2%92%e4%b8%bb%e9%a1%8c%e7%9a%84%e4%ba%82%e7%ad%86%e8%a8%98" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h3 class="relative group"&gt;UVA 11150 Cola solve
 &lt;div id="uva-11150-cola-solve" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#uva-11150-cola-solve" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;

#define WA() cin.tie(0)-&amp;gt;sync_with_stdio(0);
#define int long long

signed main() { WA();
	int t;
	while (cin &amp;gt;&amp;gt; t) cout &amp;lt;&amp;lt; t + t/2 &amp;lt;&amp;lt; '\n';
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;快速冪
 &lt;div id="快速冪" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%bf%ab%e9%80%9f%e5%86%aa" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;// x^y
#define int long long
int f(int x, int y) {
 int ret = 1;
 for (; y; y&amp;gt;&amp;gt;=1, x*=x) if (y&amp;amp;1) ret *= x;
 return ret;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 class="relative group"&gt;樹壓平
 &lt;div id="樹壓平" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%a8%b9%e5%a3%93%e5%b9%b3" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;用 DFS 紀錄每個點的時間&lt;br&gt;
該節點的子樹權重和即為該進入時間~出去時間的區間和&lt;br&gt;
可用 BIT 或 seg-tree 維護&lt;/p&gt;</description></item><item><title/><link>https://piaublog.com/quick-notes/cyber-security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://piaublog.com/quick-notes/cyber-security/</guid><description>&lt;p&gt;SIEM 工具可以收集和分析日誌數據或事件紀錄&lt;/p&gt;
&lt;p&gt;IDS 可以監控繼統活動，並對入侵發出警報&lt;/p&gt;
&lt;p&gt;CompTIA Security+ 檢定&lt;/p&gt;</description></item><item><title/><link>https://piaublog.com/quick-notes/python/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://piaublog.com/quick-notes/python/</guid><description>&lt;h2 class="relative group"&gt;Special Methods
 &lt;div id="special-methods" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#special-methods" aria-label="定位點"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;__init__&lt;/code&gt;：初始化時的動作（&lt;code&gt;ref = cls()&lt;/code&gt;）&lt;br&gt;
&lt;code&gt;__str__&lt;/code&gt;：被轉換成字串時的動作（&lt;code&gt;str(obj)&lt;/code&gt;、&lt;code&gt;print(obj)&lt;/code&gt;）&lt;br&gt;
&lt;code&gt;__add__&lt;/code&gt;：運行加法時的動作（&lt;code&gt;obj + obj&lt;/code&gt;）&lt;br&gt;
&lt;code&gt;__len__&lt;/code&gt;：取長度時的動作（&lt;code&gt;len(obj)&lt;/code&gt;）&lt;br&gt;
&lt;code&gt;__getitem__&lt;/code&gt;：使用下標時的動作（&lt;code&gt;obj[key]&lt;/code&gt;）&lt;br&gt;
&lt;code&gt;__repr__&lt;/code&gt;：用於開發或除錯&lt;/p&gt;</description></item></channel></rss>