這題算是毒瘤吧,看到這個題我除了o(n^2)想不到別的方法
後來嘗試使用平方的方式亂搞,但是給出了反例
在看了國家集訓隊ysy的解題報告後方才明白
思路是一種放寬的思路
我們列舉每個差值的符號,在其中列舉最大值,就可以有效去除絕對值
最後按照第k位從小到大排序,來列舉
從小到大進行掃瞄,每次用當前的值減去他字首的最小值即可
但是在我看了部分題解後,我發現大家沒有寫什麼要排序
而我就正好卡在這了,我太弱了
按照第k位從小到大排序,是為了後面的數第k種屬性大於前面的
這樣減出來第k個屬性的差值一定是負值,滿足條件
實現如下:
#include #include#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
typedef
long
long
ll;inline ll read()
const
int n=100100
;int n,k,c[10
],minn,num,ans,minid,t1,t2;
struct
node
}po[n];
intmain()
}printf(
"%d %d\n%d
",t1,t2,ans);
return0;
}/**/
luogu4131 WC2005 友好的生物
wc2005 友好的生物 還有2006陳啟峰的 一張一弛,解題之道 part 2 先由簡,不考慮a k 那麼這樣直接求怎麼求呢?直接列舉o n2k 當然可以,只不過會超時 有沒有一種方法可以避免一些不必要的列舉呢?這道題最大的阻礙就是這個絕對值問題了,因為它只跟兩個生物的具體屬性的相對大小有關,所以...
友好的生物
問題描述 w 星球是乙個和地球一樣氣候適宜 物種聚集的星球。經過多年的研究,外星生物學 家們已經發現了數萬種生物,而且這個數字還在不斷增大。w 星球上的生物很有趣,有些生物之間很友好,朝夕相伴,形影不離 但有些卻很敵 對,一見面就難免發生戰鬥。為了能夠更好地了解它們之間的友好程度,外星生物學家希望 ...
WC2005 雙面棋盤 並查集 分治
題目描述 題解 唉,還是碼力不行,寫了乙個多小時發現想錯了又重構了乙個多小時。這道題意圖很顯然,動態維護聯通塊,有乙個經典做法就是用lct維護按照刪除時間維護的最大生成樹。網上還有一種神奇的做法,線段樹套並查集,蒟蒻表示不懂。這道題可以利用並查集操作可以撤銷這種性質來做。線段樹分治 線段樹分治可以分...