LGOJ P1113 雜務 解題報告

2021-09-26 04:36:50 字數 2366 閱讀 1824

首先,我採用反向建邊的方式建一dag圖,然後跑dfs(其實就是反的拓撲序),記憶化搜尋,算出f[i

]f[i]

f[i]

,即完成任務i

ii所需的最短時間.

#define usefasterread 1

#define rg register

#define inl inline

#define debug printf("[passing [%s] in line %d.]\n", __func__, __line__)

#define putline putchar('\n')

#define putsp putchar(' ')

#define rep(a, s, t) for(rg int a = s; a <= t; a++)

#define repdown(a, t, s) for(rg int a = t; a >= s; a--)

typedef

long

long ll;

#include

#define rs freopen("test.in", "r", stdin), freopen("test.out", "w", stdout)

#if usefasterread

char in[

1<<20]

,*ss = in,

*tt = in;

#define getchar() (ss == tt && (tt = (ss = in) + fread(in, 1, 1 << 20, stdin), ss == tt) ? eof : *ss++)

#endif

struct io

template

<

typename t>

inline io r

(t& x)

const

template

<

typename t>

inline io w

(t x)

const

if(x >=10)

w(x /10)

;putchar

(x %10+

'0')

;return

*this;}

template

<

typename t>

inline io wl

(const t& x)

const

template

<

typename t>

inline io ws

(const t& x)

const

inline io l()

inline io s()

}io;

template

<

typename t>

inline t max

(const t& x,

const t& y)

template

<

typename t>

inline t min

(const t& x,

const t& y)

template

<

typename t>

inline

void

swap

(t& x, t& y)

const

int inf =

0x7f7f7f7f

;const

int maxn =

10005

;const

int maxm =

10000005

;int n, len[maxn]

;struct edge

e[maxm]

;int cnt, head[maxn]

;void

addedge

(int u,

int v)

int f[maxn]

;//任務的最早結束時間

voiddp(

int u)

f[u]

+= maxt;

}int

main()

}for

(rg int i =

1; i <= n; i++)if

(!f[i])dp

(i);

int mint =

-inf;

for(rg int i =

1; i <= n; i++

) mint =

max(mint, f[i]);

io.wl(mint)

;return0;

}

LGOJ P5461 赦免戰俘

乙個 2n 2n 2 n times2 n 2n 2 n 的矩陣,每個位置站著乙個作弊者,每次將正方形矩陣分割成4個更小的正方形矩陣,每個矩陣的邊長是原矩陣的一半。其中左上角那乙個矩陣的所有作弊者都將得到赦免,剩下的三個矩陣中,每乙個矩陣繼續分為 4 個更小的矩陣,然後以同樣的方式分割矩陣,以同樣的...

LGOJ P1018 乘積最大

lgoj p1018 乘積最大 首先不難想到狀態轉移方程 f i j max s in 0,i i in 1,n j in 1,k f i j 表示在 i 位置時已經用了 j 個乘號,表示當前的最大值。calc l,r 表示從 l 位置到 r 位置表示的數。數的全部型別都是bigint。不高精度會炸...

LGOJ P5463 小魚比可愛

by zhongzijun text zhongzijun 這是小魚比可愛的加強版。給你乙個正整數 n nn 和乙個序列 a 1a 1 a1 a na n an 定義 f i j f i,j f i,j 表示序列 a aa 在 l,r l,r l,r 內的逆序對對數。現在請你求出 i 1n j i ...