在高併發程式設計中,作者舉了乙個內部可變狀態escape的例子,不是很理解,自己又測試了一下,跟大家共享一下。
class unsafestates ;
public string getstates()
}public class unsafestatestest
}結果:
akl理解重點:
1.string的儲存方式
一般string類中字串值都是直接存值的。但像string str = "abc";這種場合下,其字串值卻是儲存了乙個指向存在棧中資料的引用!用new()來新建物件的,都會在堆中建立,而且其字串是單獨存值的,即使與棧中的資料相同,也不會與棧中的資料共享
2.unsafe的發布方式,將會使別的物件可以呼叫物件內部私有的屬性,導致私有變數失去意義。
HDU 3605 Escape 狀態壓縮最大流
題目鏈結 題意n個人 範圍10w m個星球 範圍10 每個人有對星球的不同喜好,每個星球有自己的容量,問能否讓所有人都在滿意的星球上?思路一眼就是最大流 二分匹配我沒學。樸素做法s向人連邊權1,人向感興趣星球連邊權1,星球向t連邊權為容量,跑dinic,一遍tle,蕪湖 最多只有10個星球,那麼對星...
HDU 3605 Escape(最大流 狀態壓縮)
題意 有n個人要去到m個星球上,這n個人每個人對m個星球有乙個選擇,即願不願意去,y or n 問是否可以全部人都順利到自己想去的星球。思路 很 有趣 的一道題目,n是1e5的大小,m只有10,沒有想到狀態壓縮,看到n這麼大肯定超時還是強行寫了一波,於是re tle 想了挺久還是不會。看別人的思路是...
HDU 3605 Escape 最大流,狀態壓縮
地球上有 n 1 leq n leq 100000 個人需要移居到 m 1 leq m leq 10 個外星球上,每個人只有特定的若干個外星球可供選擇,每個外星球有接受移居的人數上限,問能否讓所有人移居成功。由於 n 的範圍有 1e5 直接建圖的話邊可能達到 1e6 條,跑最大流會超時。考慮到 m ...