USACO 金髮姑娘和N頭牛 解題報告

2021-06-27 14:57:38 字數 989 閱讀 1580

這道題可以轉化為hash+差分序列模型,但我所要說的是在常數上的優化。

考慮轉化為差分序列時,我們在其左端點加上y-x,在右端點的下一位加上z-y;並且對於所有牛都是一樣的。所以我們交換兩個牛的右端點,對答案不會有任何影響。那麼我們乾脆就把左右端點分開來考慮好了。

有什麼好處?

考慮普通的hash,需要先排序再二分≈t(4nlog(2n)+9n);而根據上述思想,我們完全可以做到排序+線性掃瞄≈t(2nlogn+7n),可以大大削減常數。

寫的時候犯了一些錯誤:

①把y當z使了。。

②沒有把右端點+1

③沒有處理邊界。

④用乙個變數表示好多意思的時候,沒有分清其在某個時刻的意義到底是什麼。

#includeusing namespace std;

#include#include#include#include#includeint a[20001],b[20001];

char * ptr=(char *)malloc(300000);

inline void in(int &x)

int main(){

freopen("milktemp.in","r",stdin);freopen("milktemp.out","w",stdout);

int n,x,y,z,i;

fread(ptr,1,300000,stdin);

in(n),in(x),in(y),in(z);

for(i=n;i;--i)in(a[i]),in(b[i]),++b[i];

a[0]=a[n],b[0]=b[n];

sort(a,a+n),sort(b,b+n);

int now=x*n,ans=max(now,z*n),j=0,k;

z=z-y,y=y-x,i=0;

a[n]=-1,b[n]=-1;

while(i

①尋找題目中的等價關係往往能給我們一些優化。

②處理邊界的時候一定要頭腦清晰。

USACO NOV 金髮姑娘和N頭牛解題報告

你可能已經聽說了金髮姑娘和3隻熊的經典故事。鮮為人知的是,金髮姑娘最終經營了乙個農場。在她的農場,她有乙個穀倉含n頭奶牛 1 n 20000 不幸的是,她的奶牛對溫度相當敏感。第i頭奶牛必須在指定的溫度範圍內a i b i 才感覺舒適 0 a i b i 1,000,000,000 如果金髮姑娘在穀...

美國和中國老師講灰姑娘的故事

美國版 上課鈴響了,孩子們跑進教室,這節課老師要講的是 灰姑娘 的故事。老師先請乙個孩子上台給同學講一講這個故事。孩子很快講完了,老師對他表示了感謝,然後開始向全班提問。老師 你們喜歡故事裡面的哪乙個?不喜歡哪乙個?為什麼?學生 喜歡辛黛瑞拉 灰姑娘 還有王子,不喜歡她的後媽和後媽帶來的姐姐。辛黛瑞...

USACO 1 1 我的題解和程式

usaco這個東西,有很多大牛已經 通關 了,還有的大牛有三天做了兩大章的事蹟,像我這樣的小菜,就慢慢從1.1往後來吧 1.1.1 ride 這個是第一題,純水,但是因為不知道usaco對輸出的回車符敏感,必須用writeln,所以交了好多次才ac,唯一注意的是關於乘的變數別忘了初始化成1 prog...