雅禮集訓 2017 Day4 洗衣服

2022-06-04 11:15:12 字數 1079 閱讀 7138

點這裡看題目。

首先考慮只有洗衣機的情況。我們可以想到,當前洗衣任務結束越早的洗衣機應該被先用,因此可以用堆來動態維護。

再考慮有烘乾機的情況。很顯然,越晚洗完的衣服應該越早烘乾。因此我們可以按照處理洗衣機的方法,給衣服按照結束洗衣時間從大到小分配烘乾機。

用乙個堆對洗衣機和烘乾機各維護一次,時間\(o(k\log_2n)\)。

#include #include using namespace std;

typedef long long ll;

const int maxn = 1e5 + 5, maxk = 1e6 + 5;

templatevoid read( _t &x )

while( s >= '0' && s <= '9' )

x *= f;

}templatevoid write( _t x )

if( 9 < x )

putchar( x % 10 + '0' );

}template_t max( const _t a, const _t b )

struct ele

ele( ll t, int i )

bool operator < ( const ele &b ) const

};priority_queueq;

ll resa[maxk], resb[maxk];

int a[maxn], b[maxn];

int k, n, m;

int main()

while( ! q.empty() ) q.pop();

for( int i = 1 ; i <= m ; i ++ ) q.push( ele( b[i], i ) );

for( int i = k ; i ; i -- )

ll ans = 0;

for( int i = 1 ; i <= k ; i ++ ) ans = max( ans, resa[i] + resb[i] );

write( ans ), putchar( '\n' );

return 0;

}

雅禮集訓Day4

今天炸的1p。t1,給你100次詢問,每次l,r,選 l,r 中的若干數進行異或,求有多少種結果,1 l r 1e18.做法 暴力很顯然是將l,r這些數加入線性基,然後算一下線性基里有多少個數。我們可以考慮線性基的每一位最早在多久被加入。這個就可以看l了,它二進位制的最高位很顯然是一開始就加入線性基...

雅禮集訓Day4

今天炸的1p。t1,給你100次詢問,每次l,r,選 l,r 中的若干數進行異或,求有多少種結果,1 l r 1e18.做法 暴力很顯然是將l,r這些數加入線性基,然後算一下線性基里有多少個數。我們可以考慮線性基的每一位最早在多久被加入。這個就可以看l了,它二進位制的最高位很顯然是一開始就加入線性基...

雅禮集訓 2017 Day5 珠寶

題目描述 miranda 準備去市裡最有名的珠寶展覽會,展覽會有可以購買珠寶,但可惜的是只能現金支付,miranda 十分糾結究竟要帶多少的現金,假如現金帶多了,就會比較危險,假如帶少了,看到想買的右買不到。展覽中總共有 n種珠寶,每種珠寶都只有乙個,對於第 i種珠寶,它的售價為 ci 萬元,對 m...