原创 EOJ 1748 Box Walking

題目簡介 給定長方體的長寬高以及長方體表面的一個點(x,y,z),求從點(0,0,0)出發到(x,y,z)的最短距離的平方。 說明 這是個看似簡單實際上也簡單的問題。首先如果該點在(0,0,0)所在的三個平面之一之內,那麼顯然

原创 EOJ 3497/EOJ Monthly 2018.2 D.黑心的出租車

題目簡介 給定一個樹/森林,從1號點出發,遍歷森林中所有的點最後回到1號點。 大巴可以在有邊相連的兩點間往返,而出租車可以在任意兩點間往返。 要求:乘出租車次數最少的情況下,乘大巴次數也最少,求兩個次數。 說明 官方題解:

原创 博客遷移,不再更新

博客已遷移至這裏。

原创 《Python編程技術》課程綜述——(二)高級特性及OOP

(強調:這是期末作業,不是Python教程) 隨後的課程內容包括了一部分Python高級特性,包括迭代器、生成器、異常處理、面向對象編程、匿名函數等等。 首先,我們需要理解迭代的概念:所謂迭代,即用循環來遍歷可迭代對象。判斷對象是否可

原创 《Python編程技術》課程綜述——(一)基礎特性

(忙了一年又回來寫博客了。這次是Python課的期末作業。。寫綜述有點無聊。) 本學期學習了Python語言。由於之前已經學習過C, C++, Java(以及VB, Pascal, 前端三件套)等較難的編程語言,Python語言的學習

原创 AVL樹

數據結構上機課花了點時間實現的AVL樹,基本上在抄書。。 包含了二叉樹、二叉查找樹和AVL樹的實現,不過畢竟沒有真正學過C++,對OOP也還不算很熟悉。。碰到了一些問題: 繼承的類也不能訪問父類的private成員,不過可以用using

原创 圖論練習

https://www.luogu.org/problemnew/show/P2661 把同學看作點,傳信息看作連一條邊,那麼遊戲結束當且僅當圖中存在環,這題中即是求最小環。 DFS當然是可以的,出於偷懶這裏用了帶權並查集,在路徑壓縮和合

原创 EOJ 3272 核反應控制

http://acm.ecnu.edu.cn/problem/3272/ 最近學校OJ需要掛VPN才能進…… 有集合 A={a1,a2,…,an},如果存在 i,j,k(i≠j,i≠k,j≠k) 使得 ai+aj=ak,則輸出 NO;

原创 B-Tree

#include <iostream> using namespace std; template <class Record, int order> struct B_node { int cnt; Record da

原创 zkw線段樹

關於zkw線段樹是啥,參見他本人的ppt:統計的力量 (相比遞歸版線段樹:) 優點:代碼量較少,空間需求略少(實際上不需要4倍),運行效率較高(非遞歸); 缺點:應用範圍有限制.儘管可以稍加修改就支持單點更新/單點查詢/區間更新/區間

原创 EOJ 2887 指針

https://acm.ecnu.edu.cn/problem/2887/ 指針確實令人頭疼…這題最終還是問了同學才做出來,可能是CSAPP沒學好?? 因爲最短的類型是兩個字節的char,所以讀入內容的時候用的char數組,之後的指針也聲

原创 EOJ 2155/UVA 529/POJ 2248/Ulm Local 1997 Addition Chains

https://cn.vjudge.net/problem/UVA-529 容易想到用搜索做.比較難想的是:構造一個a數組記錄每個小於n的數要經過多少個數列項之後才能到達n.這樣做的好處是便於最優性剪枝:如果發現[當前數列長度]加上[至少

原创 EOJ 1418/POJ 2566 Bound Found

題目簡介 給定一個數列和t,求總和最接近t的一段連續子序列及其和。 說明 由於n達到了1e5不能採用n^2算法,因此考慮用前綴和+尺取法(滑動窗口法/two pointers)降低複雜度。 #include <bits/stdc++.

原创 EOJ 2616 遊黃山

https://acm.ecnu.edu.cn/problem/2616/ 分別對x和y利用前綴和求帶權中位數。這類題不是經常遇到,所以記錄一下。 #include <bits/stdc++.h> using namespace std;

原创 EOJ 1718/POJ 3134/UVA 1374 Power Calculus

https://cn.vjudge.net/problem/UVA-1374 LRJ紫書說要用IDA*,粗略想了想似乎是可以不用的.這裏就簡單dfs了一下+照搬紫書剪枝,代碼意外地短. 還可以進一步優化,不過考慮到這題的數據量,已經沒有必