2018 10 9模擬考試

2022-03-30 06:43:01 字數 4919 閱讀 7024

看題請戳我!

t1 一道很水的貪心。(然而蒟蒻博主一如既往地沒a)

維護乙個小根堆,考慮在每次插入元素時:

1.若新元素比堆頂小,說明在此時**必然比在堆頂時**更優,因此把新元素直接插入堆中。

2.若新元素比堆頂大,說明在此時賣出必然能獲得收益,因此將收益累計入答案中,再把堆頂刪除。

同時還要把新元素兩次插入堆中。

原因:在最優解中,此元素可能並非作為「賣出」的一部分,而是作為「未進行操作」的一部分。插

入一次可以使此元素從「賣出」狀態反悔到「未進行操作」狀態。同樣,再次插入可以使此元

素從「未進行操作」狀態反悔到「**」狀態,從而保證了所有情況均被考慮。

#include//

stl通用演算法

#include//

stl位集容器

#include#include

#include

#include

#include

#include

#include

#include

//stl雙端佇列容器

#include//

stl線性列表容器

#include//

stl對映容器

#include#include

//stl佇列容器

#include//

stl集合容器

#include//

stl堆疊容器

#include//

stl通用模板類

#include//

stl動態陣列容器

#define inf 0x3f3f3f3f

#define ll long long

using

namespace

std;

ll n,ans;

priority_queue

,greater>que;

signed main()

printf(

"%lld\n

",ans);

return0;

}

t2 一道第一眼看不出正確演算法的題。

看一眼資料範圍,n<=10^5。顯然o(nlogn)(嗎?)

推一推式子,發現並沒有o(nlogn)的式子出現。

emmm...算了,還是打部分分吧。

看一眼部分分,嗯,前4個點暴力o(n^2)就能水過去。

等下...這中間6個點是怎麼回事?n全部相等?m全部相等?

瞬間茅塞頓開——莫隊。

這告訴我們要多關心部分分中的條件,也許正解就藏在其中。

沒什麼好說的,計算式也很好推,唯一要注意的就是要把所有除法替換成乘逆元。

#include//

stl通用演算法

#include//

stl位集容器

#include#include

#include

#include

#include

#include

#include

#include

//stl雙端佇列容器

#include//

stl線性列表容器

#include//

stl對映容器

#include#include

//stl佇列容器

#include//

stl集合容器

#include//

stl堆疊容器

#include//

stl通用模板類

#include//

stl動態陣列容器

#define inf 0x3f3f3f3f

#define ll long long

#define mod 1000000007

using

namespace

std;

ll t,q,n,m,siz,fac[

100001],inv[100001],blk[100001],ans[100001

];struct

uioqry[

100001

];ll qpow(ll x,ll y)

return

tmp;

}ll c(

int x,int

y)bool cmp(uio x,uio y)

void

init()

signed main()

for(ll i=1;i<=q;i++) printf("

%lld\n

",ans[i]);

return0;

}

t3 一道喪心病狂的題目...

對於第一種查詢,只需求出每行樓盤個數的字首和即可。可以開2個sum陣列分別表示"行字首和"和"列差分"。

對於第二種查詢,用並查集維護。可以開n個行vector和m個列vector,在插入完成後對每個vector統計。

具體操作步驟

請檢視**注釋。

#include//

stl通用演算法

#include//

stl位集容器

#include#include

#include

#include

#include

#include

#include

#include

//stl雙端佇列容器

#include//

stl線性列表容器

#include//

stl對映容器

#include#include

//stl佇列容器

#include//

stl集合容器

#include//

stl堆疊容器

#include//

stl通用模板類

#include//

stl動態陣列容器

#define inf 0x3f3f3f3f

#define ll long long

using

namespace

std;

typedef pair

pr;int id,n,m,k,q,sum1[100002],sum2[100002

];int lnsum=0,mgsum,fa[100002

];int ans1[100002],ans2[100002

];struct

uioprg[

100002

];struct

oiu};

vector

row[100002],col[100002

];vector

dsu[100002

];int find(int x)

void merge(int x,int

y)int

main()

; oiu lenx=,leny=;

row[lx].push_back(leny);

col[ly].push_back(lenx);

if(lx==rx) sum1[lx]+=(ry-ly+1);//

行數量

else sum2[lx]++,sum2[rx+1]--;//

列差分

}

for(int i=1;i<=n;i++) sort(row[i].begin(),row[i].end());

for(int i=1;i<=m;i++) sort(col[i].begin(),col[i].end());

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

;//第i條的右邊

int tmp=upper_bound(row[dwn].begin(),row[dwn].end(),range)

-row[dwn].begin()-1;//

l<=ry的第一條

for(;tmp>=0&&row[dwn][tmp].r>=prg[i].ly;tmp--)//

r>=ly

dsu[dwn].push_back(make_pair(i,row[dwn][tmp].id));//

在dwn行連線

}

int rgt=prg[i].ry+1;//

第i條的右邊一列

if(rgt<=m&&col[rgt].size())//

第i條的右邊一列作為某些條的左邊界

;//第i條的下面

int tmp=upper_bound(col[rgt].begin(),col[rgt].end(),range)

-col[rgt].begin()-1;//

l<=rx的第一條

for(;tmp>=0&&col[rgt][tmp].r>=prg[i].lx;tmp--)//

r>=lx

dsu[max(prg[i].lx,prg[col[rgt][tmp].id].lx)].push_back(make_pair(i,col[rgt][tmp].id));

//在 第i條的上邊界 與 該條的上邊界 的靠下者 連線

} }

for(int i=1;i<=n;i++) sum2[i]+=sum2[i-1];//

差分->數量

for(int i=1;i<=n;i++) sum2[i]+=sum2[i-1],//

數量->字首和

sum1[i]+=sum1[i-1],//

數量->字首和

ans1[i]=sum1[i]+sum2[i];//

第一種查詢

for(int i=1;i<=k;i++) fa[i]=i;

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

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

return0;

}

2017 9 7 模擬考試

問題描述 一張長度為 的紙帶,我們可以從左至右編號為0 紙帶最左端標號為 0 現在有 次操作,每次將紙帶沿著某個位置進行摺疊,問所有操作之後紙帶 的長度是多少。輸入格式 第一行兩個數字 如題意所述。接下來一行 個整數代表每次摺疊的位置。輸出格式 一行乙個整數代表答案。樣例輸入 5 2 3 5 樣例輸...

RHSCA模擬考試

開始考試 桌面是個黑框子 點選reboot按鈕,破解密碼 開機成功,輸入startx進入圖形介面 不能複製,要在物理機用ssh root 172.25.0.11 遠端連線,就可以複製貼上了 hostname server.reorigion5.example.com 四級網域名稱 有問題 10.配置...

2018 7 20模擬考試

這次的題.很水.然而還是差點爆零 t1 題目簡述 給定乙個序列,求區間最大子段和 帶修改操作 n 500000,m 100000 解題思路 線段樹維護即可。gss3原題.資料範圍都不變.出題人好懶 include include include include include include def...