原创 鏈式前向星理解

    在初學數據結構時,“如何存邊”或許是大部分Oier關注的事情。我在最初學時,常常使用鄰接矩陣存圖,8000*8000已經是極限,這意味着我所能處理的圖,點的最大規模也只能在10000左右。     這種存圖方式的最大弊端在於,它雖

原创 關於KM算法及其延伸的一些解題研究

關於KM算法及其延伸的一些解題研究 KM算法作爲一種簡潔明瞭的算法,巧妙地解決了帶權二分圖在特定條件(帶權最大匹配一定是完備匹配的圖)下的求解問題,規避了網絡流費用流算法較爲繁瑣的代碼,在信息學競賽具有相當的地位。爲增加本文的可讀性,筆者

原创 關於樹形dp的一些解題研究

關於樹形dp的一些解題研究 江蘇省海門中學 邱江傑 施逸凡 樹形dp作爲動態規劃與圖論的交集,在信息學競賽中有着重要的地位,有必要通過幾道例題進一步探討研究。爲增加本文的可讀性,筆者已經將輸入輸出和初始化的代碼隱去。 第一題 題目描述 某

原创 AC自動機理解

對於AC自動機可能有的疑問。 首先上代碼,該代碼使用char型數組保存,事實上string也完全可以。 #include<bits/stdc++.h> using namespace std; char s[1000005]; stru

原创 排序分析

(1)冒泡排序 冒泡排序就是把小的元素往前調或者把大的元素往後調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。所以,如果兩個元素相等,我想你是不會再無聊地把他們倆交換一下的;如果兩個相等的元素沒有相鄰,那麼即使通過前面的兩兩交換

原创 最大正方形(square)

最大正方形(square) 【問題描述】 給一個 N*N 的 01 矩陣, 求一個面積最大的全爲 1 的正方形子矩陣. 輸出它的面積. 【輸入文件】 輸入文件 square.in 的第一行包含一個正整數 N. 接下來 N 行, 每行 N

原创 基數排序

int maxbit(int data[],int n) //輔助函數,求數據的最大位數 { int d = 1; //保存最大的位數 int p =10; for(int i = 0;i < n; ++i) { while

原创 單調棧 POJ2559

POJ2559 維護單調棧 POJ數據神坑 #include<iostream> #include<cstdio> #include<cstring> using namespace std; __int64 a[100015],s[10

原创 莫隊算法

轉載自https://www.cnblogs.com/Paul-Guderian/p/6933799.html 原文更爲清晰仔細,並同時解釋帶修莫隊與樹上莫隊。 自己學習。 目前的題型概括爲三種:普通莫隊,樹形莫隊以及帶修莫隊。 若談及入

原创 最短路 dijkstra

最短路徑問題題目描述平面上有 n 個點(n<=100),每個點的座標均在-10000~10000 之間。其中的一些點之間有連線 。若有連線,則表示可從一個點到達另一個點,即兩點間有通路,通路的距離爲兩點間的

原创 拓撲排序

字母排序問題總時間限制: 10000ms 單個測試點時間限制: 1000ms 內存限制: 65536kB描述G教授是xoi的負責人,有一天他竟然發現自己的計算機染上了一種不常見的病毒。這種病毒的名字叫做ALPHABETVIRUS,當它發作

原创 模擬1

數的劃分(轉載)問題描述將整數n分成k份,且每份不能爲空,任意兩種分法不能相同(不考慮順序)。例如:n=7,k=3,下面三種分法被認爲是相同的:1,1,5; 1,5,1; 5,1,1。問有多少種不同的分法。輸入:n,k(6<n<=200,

原创 迷之階梯(ladder.???)

迷之階梯(ladder.???) 問題描述: 在經過地球防衛小隊的數學家連續多日的工作之後,外星人發的密碼終於得以破解。它 告訴我們在地球某一處的古老遺蹟中,存在有對抗這次災難的祕密道具。防衛小隊立刻派出 了一個直升機小分隊,迅速感到了這

原创 揹包1

P01: 01揹包問題 題目 有N件物品和一個容量爲V的揹包。第i件物品的費用是c[i],價值是w[i]。求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。 基本思路 這是最基礎的揹包問題,特點是:每種物品僅有一