原创 P1137 旅行計劃(拓撲排序&dp)

P1137 旅行計劃(拓撲排序&dp)傳送門思路:顯然是用拓撲排序,又因爲要記錄以每個結點爲終點的拓撲排序最大結點數,顯然可以用一個簡單dpdpdp轉移實現。即:dp[v]=max(dp[v],dp[u]+1)dp[v]=max(dp[v]

原创 P3243 [HNOI2015]菜餚製作(拓撲排序&反圖)

P3243 [HNOI2015]菜餚製作(拓撲排序&反圖)傳送門思路:因爲題意是要在滿足限制的情況下,讓數字的小的在前,注意不是字典序最小,ep:1,2,3,4(2,4),(3,1)ep:1,2,3,4 (2,4),(3,1)ep:1,2,

原创 P4017 最大食物鏈計數(拓撲排序+簡單dp)

P4017 最大食物鏈計數(拓撲排序+簡單dp)傳送門思路:拓撲排序+簡單dpdpdp。顯然每個最大食物鏈起點爲是入度爲0的點,終點是出度爲0的點,這樣我們只需要統計每個出度爲0的點的最大食物鏈貢獻,最後求和。設ans[i]ans[i]an

原创 P1983 車站分級(拓撲排序)

P1983 車站分級(拓撲排序)傳送門思路 :將每個車次車站的關係抽象化爲邊的關係,不停靠的車站等級肯定比停靠的車站等級低,因此可以建立一條邊,然後就用拓撲排序搞搞就行了,注意判斷重邊。#include<bits/stdc++.h>usin

原创 港口(差分數組)

港口(差分數組)傳送門思路:因爲是區間加減,所以考慮差分數組,題意變爲:要求差分數組d[2],d[3]…d[n]d[2],d[3]\dots d[n]d[2],d[3]…d[n]全爲0.每次區間加或減會使差分數組一個加1,一個減1,因爲要用

原创 F. Spy-string(暴力)

F. Spy-string(暴力)傳送門思路:暴力枚舉,因爲答案字符串與nnn個字符串中任何一個都最多有一位不同。所以任選一個字符串作爲答案字符串,然後對每一位進行從[a,z][a,z][a,z]暴力枚舉。時間複雜度:O(26nm2)O(2

原创 集合操作(STL&逆向)

集合操作(STL&逆向)傳送門如果正向儲存當前集合的元素的話,查詢時會很麻煩。所以我們反向考慮,我們用一個集合SSS儲存集合中每個元素的最小未出現的元素(即x+1)然後我們需要用一個mapmapmap來標記該元素是否在題意的集合中。對於操作

原创 H. Binary Median (貪心)

H. Binary Median (貪心)傳送門思路:因爲要找到去除nnn個字符串後第k−12\dfrac{k-1}{2}2k−1​小的字符串。考慮在不去除任何字符串的時候第k−12\dfrac{k-1}{2}2k−1​小的字符串轉爲十進制

原创 異或生成樹(樹形dp)

異或生成樹(樹形dp)傳送門題意:給定nnn個結點的權值ai∈[1,127]a_i\in[1,127]ai​∈[1,127].求最大異或和生成樹。思路:答案的範圍爲[0,127][0,127][0,127].考慮樹形dpdpdp, 設dp[

原创 Python中冪的關聯性

Python中冪的關聯性同一行上具有相同優先級的運算符遵循從左到右應用,除了冪運算。因爲在數學上xyz\large x^{y^z}xyz是讀作x(yz)\large x^{(y^z)}x(yz)而不是(xy)z(x^y)^z(xy)z所以冪

原创 A - Pay to Win(記憶化搜索)

A - Pay to Win(記憶化搜索)傳送門思路:將問題倒着考慮,從nnn到0. 顯然每一步有4種方式。但是對於k=2,3,5k=2,3,5k=2,3,5要滿足2∣n,3∣n,5∣n2|n,3|n,5|n2∣n,3∣n,5∣n才行。所以

原创 中位因數(數論)

中位因數(數論)思路:分析可知:除了完全平方數外,因數肯定是成對出現。設a[i]a[i]a[i]爲iii的中位因數。所以當nnn爲完全平方數時,顯然因數個數爲奇數個,顯然a[i]=ia[i]=\sqrt{i}a[i]=i​當nnn不爲完全平

原创 C++之設置背景圖片(Easyx)

C++之設置背景圖片(Easyx)#include<easyx.h>#include<conio.h>intmain(){initgraph(600,600);//創建一個窗口IMAGE background;//定義一個圖片名.loadi

原创 寶石裝箱(容斥原理)

寶石裝箱(容斥原理)傳送門ans=總方案數−不可行的方案數=anssum−ansnoans=總方案數-不可行的方案數=ans_{sum}-ans_{no}ans=總方案數−不可行的方案數=anssum​−ansno​anssum=ans_{

原创 煩人的依賴(拓撲排序)

煩人的依賴(拓撲排序)傳送門思路:拓撲排序,因爲要滿足最小字典序,所以可以用優先隊列進行實現。先將每個字符串轉換爲一個結點,這裏用哈希表即可,然後將每個結點的邊也進行排序,最後用拓撲排序的板子即可。AC代碼:#include<bits/st