暑假第十六測

2022-05-29 05:06:10 字數 3046 閱讀 7646

題解:第一題:大模擬,先把在乙個迴圈裡的連續k個相同都去掉,然後算出頭和尾能消去的個數,然後就是每個迴圈剩餘長度*(m-1)+僅去掉同一迴圈的剩餘數的個數。

#includeusing

namespace

std;

#define ll long long

const

int m = 1e5 + 10

;ll st[m][2];

ll ans, tot;

intmain()

else st[cnt][1]++;

if(st[cnt][1] >= k)st[cnt][1] -=k;

if(!st[cnt][1])cnt--;

}for(int i = 1; i <= n; i++)tot += st[i][1

];

int h = 1, t =cnt;

while(h != t && st[h][0] == st[t][0

]) }

if(h !=t)

else

}printf(

"%i64d\n

",ans);

}

view code

第二題:

當m<=2時,列舉分界點,預處理字首和就好了

對於另外20%,直接dp[i][j]表示到點i,j的最優答案

對於100%,我們要求黃色部分:

黃+藍-第二行,我們先處理藍-第二行,然後找到乙個黃色模意義下第三行的最優貢獻就好了,這個就可以用set維護,找前驅;

最優 兩個數加起來

#includeusing

namespace

std;

const

int m = 100005

;#define ll long long ll p;

intn, m, tot;

ll sum[m], now[m], sum2[m], sum4[m], sum3[m], a[m], b[m], c[m], t[m];

set::iterator it, itt;

setst;

intmain()

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

%i64d

", &b[i]);

for(int i = n; i > 0; i--) sum2[i] = (sum2[i + 1] + b[i]) %p;

if(m == 2

)

else

for(int i = n; i > 0; i--)

printf(

"%i64d\n

", ans);}}

view code

第三題:

通過題目可以發現,我們要求的就是在使用最小的點權的情況下選中所有邊,每條邊都可以被他的兩個端點擊中,且出入點權可能不同,於是就可以發現這是乙個最小點權覆蓋。 

建邊: 

1>   先建立虛擬源s和匯t,把每個點拆成兩個,ia,ib。

2>   從s向ia連一條流量為wi-的邊,從ib向t連一條流量為wi+的邊。

3>   原圖中的邊從ua向vb連一條流量無窮大的邊。 

4>  然後跑最大流即可。

#includeusing

namespace

std;

const

int m = 205, me = 2e4, inf =2e9;

inth[m], tot, d[m], hh[m], n, m, s, t;

struct edgeg[me];

intread()

while(c>='

0'&&c<='9')

return x*=f;

}struct

netflow

void add(int u, int v, int

f)

bool

bfs()

}return d[t] != -1

; }

int dfs(int u, int

q)

return

ret;

}intdinic()

return

ans;

}}tr;

intmain()

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

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

int ans =tr.dinic();

printf(

"%d\n

", ans);

}

view code

第十六單元

possess v 擁有 to possess highter authority 擁有更高權威 possessive adj 佔有慾強的 own v 擁有 adj 自己的 ownership n 所有權 boast v 吹噓,誇口 boastful adj 自吹自擂的 occupy v 居住 占用...

第十六周 OJ Money Problem

問題及 檔名稱 mian.cpp 作 者 李楠 完成日期 2014年12月15日 版 本 號 v1.0 問題描述 周一小明要乘坐計程車外出,已知,計程車收費標準為不超過3km的部分收8元,超過3km的部分每增加1km加收1元 不足1km按1km計算 那麼,現在請同學們幫小明算出他坐車共需要花多少錢吧...

第十六周計畫

想一想,接下來的一周事情有很多,列個計畫吧。1 周一之前務必完成物聯網課程的ppt 2 周一之前務必寫完2000字的學習總結 3 每天堅持做兩篇六級真題的英語閱讀,準備六級考試,一般是在當天的晚上完成 4 周二開始學習android的專案 5 每天晚上抽時間讀5頁機器學習這本書 6 周一導師可能要開...