原创 NOIP模擬賽地球發動機

題解: 這道題顯然可以看出是DP因爲不難觀察出是要繼承對吧,然後呢發現每個去繼承前面的複雜度會爆掉,所以就從最後一個開始維護啦 #include<bits/stdc++.h> using namespace std; long

原创 【NOIP模擬賽】小凱學數學

題解: 自己手模一下就很容易就發現所謂的小凱運算就是兩數之和除以二嘛,然後呢我們就考慮亂搞一下,因爲如題所述每次合併的只能是相鄰的兩個,然後我們叫考慮枚舉區間中點點然後一直分下去直到只有一個或連個元素,然後再自下向上維護就OK,

原创 【NOIP模擬賽】相交

題解: 因爲是樹所以路徑一定唯一,那麼我們先算出a,b的lca爲f1再算出c,d的lcaf2那麼不難發現是求是否有重合路徑,我們先把a到b的路徑拆成a到f1和b到f1兩條路徑,那麼就是求c到f2和前兩個是否有重合或者d到f2是否

原创 【NOIP模擬賽】林下風氣

題解 : dp維護亂搞,強行枚舉最小值,然後算出聯通塊滿足的值f[i][1]和不滿足的值f[i][0]; #include<bits/stdc++.h> #define ll long long using namespace

原创 【NOIP模擬賽】最大序列

題解 #: 這道題需要的是字典序最大那麼顯然可以知道對於一個點i它後面的最大點可以直接獲取,然後將i賦值爲那個點座標,如果後面最大都不如i-1大那麼就往前找i=i-1; #include<bits/stdc++.h> usin

原创 【NOIP模擬賽】列隊

這道題就很玄學了,我們將行看做一羣點集,把列又看做一羣點集,然後所謂的不好惹的同學就是該行和該列只能選一個,那麼我們將這兩個點連起來,然後呢就發現是一個二分圖的最大獨立集,然後呢用匈牙利算出最大點集然後呢剪一下就OK #incl

原创 【NOIP模擬賽】food

題解:把草和牛放在一起存再根據價格排序,然後再從小到大判斷,如果是牛就存鮮美程度,不是就在已有牛中查找鮮美程度最接近的那個小於 #include<bits/stdc++.h> using namespace std; struc

原创 【NOIP模擬賽】刺客信條(AC)

題解 :枚舉主教的攻擊範圍,再用並查集看兩個主教中有沒有路可以走,因爲攻擊範圍必然是個圓 #include<bits/stdc++.h> using namespace std; int x,y,n; int a[2005]

原创 【NOIP模擬賽】圖

題解: 這道題先考慮會有幾種情況,顯然只有兩種對吧1ab一組cd一組2全部一組,那麼我們就先跑n遍bfs那麼就可以求出任意兩點間距離,然後呢就枚舉ab和cd兩組間重合長度,重合就可以減去嘛 #include<bits/stdc+

原创 【NOIP模擬賽】死宅與陷阱

死宅與陷阱 題解: 這是一道很簡單的dfs,只需要從s把圖跑一遍算出,每個點的到達概率。把他們存入一個數組,然後從大到小sort一遍,顯然概率越大的權值越應該加P,然後就把每個點的概率*權值就OK了。 #include<bit

原创 【NOIP模擬】number

題解: 先枚舉出所有數可能搭配出的最小公倍數,再二分一下答案,進行判斷是否合法,判斷就用容斥原理亂搞就行了 #include<bits/stdc++.h> using namespace std; long long n,k;

原创 【NOIP】test

【題目背景】 Tom在學寫動態樹,但是做題時過了樣例,提交RE。Tom抓住Jerry要他寫個暴力來對拍。Jerry覺得這任務太簡單了,就讓你來完成一下。 【題目描述】 有一棵n個節點的樹,初始時根節點爲1。現在要支持如下操作——

原创 【NOIP模擬賽】小貓爬山

Description Freda和rainbow飼養了N只小貓,這天們要去爬山。經歷了千辛萬苦,小貓們終於爬上了山頂,但是疲倦的它們再也不想徒步走下(嗚咕><><)。 Freda和rainbow只好花錢讓它們坐索道下山。索道上的

原创 【NOIP模擬賽】鐵路運輸

題解: 先用跑一次最短路,記錄每個點的所有最短路的入度節點,以及會給別的節點造成最短路的出度,然後呢就是每次每次改邊就是將深度大的那個點減去深度小的入度,如果有個點沒有了入度就ans++,然後再去修改他的所有出度; #inclu

原创 正睿OIday5

正睿OIday5 今天感覺學得還很正常因爲沒有出現太多“相信你們都會吧”,“相信大家都聽明白了吧”之類的大佬眼中世界的話,這次算是從零基礎講的網絡流,不過後面證明什麼 O(n32) O(n^\tfrac{3}{2}) O(n2