省選專練 POI2014 RAJ Rally

2021-08-21 11:26:04 字數 1202 閱讀 7073

又是一道神仙題

太神仙了

第一步:考慮這是有向無環圖,故思考topsort????我真是想不到

由於這是有向無環圖

定義f(i)為到達i的最長路徑

g(i)為從i出發的最長路徑

故:f(u)+g(v)+1為最長鏈

用乙個可刪除堆優化一下就好了

#includeusing namespace std;

const int n=2e6+100;

inline void read(int &x)

ch=getchar();

} while(ch>='0'&&ch<='9')

x*=f;

}struct front_stare[n*3*2];

int cnt=0;

int firsts[n]={};

int firstt[n]={};

void add(int u,int v,int *first)

int f[n]={};

int g[n]={};

int d[n]={};

int q[n]={};

int head=0;

int tail=0;

int n,m;

struct priority_queue

void delete(int x)

int top()

return ins.top();

}}que;

int main()

for(int i=1;i<=n;i++)

while(head!=tail)

} for(int i=1;i<=n;i++)

for(int i=1;i<=n;i++)

} for(int i=n;i>=1;i--)

} int ans=1e9,pos;

for(int i=1;i<=n;i++)

for(int i=1;i<=n;i++)

que.delete(g[x]);

// cout

for(int j=firsts[x];j;j=e[j].nxt)

que.insert(f[x]);

} cout<

}

省選專練POI2015Kinoman

小目標 高考假以內,做完poi2015 和poi2014的一半 怎麼搞?實際套路也挺簡單的。你看 l,r。這是n n的演算法 一般來說1e6 怎麼搞是on 但是onlogn 卻必須得跑過 原因是一般來說解決是列舉乙個l 或者是中位數。但是必須得log 那麼毒瘤卡常數 你用乙個後向星記錄乙個 pre即...

省選專練SCOI2005掃雷

這是乙個智商檢測題 狀壓dp。如果你玩過掃雷,並且內心有一棵平衡樹 bb數 你就會發現答案只有0,1,2共計三種。於是法一 模擬。答案對不對只會取決於第乙個是什麼。模擬兩邊就好了。includeusing namespace std int i,j,k,m,n,ans 2,a 10001 b 100...

省選專練ZJOI2005午餐

這是個好題 考察dp優化,dp,貪心,01揹包變種。好首先對吃飯時間從大到小排序,因為一隊人打飯時長總和一樣。dp i,j 表示前i個人,第一組用j的時間。放第乙個揹包 dp i j min max dp i 1 j a i w j a i v 放第二個揹包 dp i j min max dp i ...