HDUマルチ学校第8フィールド1011(hdu6667)貪欲Roundgodとミルクティー

質問の意味:

いくつかのクラスがありますが、一部の人はミルクティーを飲みたい各クラスには、また、ドリンクのカップを、いくつかのお茶を提供していますが、人々の独自のクラスは、人々の最大数は、お茶を飲む持ってしようと、自分のミルククラスを飲むことはできません。

ソリューション:

クラスプレス降順の数。

人々の独自のクラスを防ぐためにお茶独自のクラス、クラスのドリンク茶の残りの部分の前にバッファストアの確立を飲みます。

教室の後ろにはお茶のお茶を持っていた場合、ドリンク、後でクラスをつかむ、背後にお茶を飲むのクラスならば、バッファは残りの牛乳を残していない見に行きました。

自国民の最後のクラスは、飲んだか飲まする必要はありませんでした、そして彼自身のチームは、ミルクバッファを盗むクラスの前に配置されていません。

そして、上記の手順を実行し、その後、次のシフトに向けます。

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
typedefの長い 長いLL。
typedefの長い 長いLL。
typedefのペア < int型、LL> P;
const  int型 M = 4E5 * 4 + 5 ;
CONST LLのMOD = 1E9 + 7 constの LL LINF = 0x3f3f3f3f3f3f3f3f #define LS(RT << 1)
 の#define RS(RT << 1 | 1)
LLのGCD(LL、LL b)は{ 戻り B?GCD(B、%のB)。} 
    LL RES 
LLのquickpow(LLのA、LLのB、LLのMOD)
{ = 1 一方、(b)は、
    { 
        もし、(B&1 
            RES =(RES * A)%MOD。=(* A)%MOD。
        B >> = 1 
    } 
    戻りRESと、
} 
構造体ノード{ 
    LL、B。
} TR [M]。
int型のトン。
int型のn; 
LLのCNT; 
ANS LL; 
int型の蓋。
BOOL CMP(ノードX、ノードY)
{ 
    戻り XB> YB。
} 
int型)(主 
{ 
    scanf関数(" %のD "、&T)。
    一方、(t-- 
    { 
        scanf関数(" %のD "、&N)
        以下のためにint型私= 1 ; iが<= N; iが++ 
        { 
            scanf関数(" %のLLDの%のLLD "、&​​TR [I] .A、&TR [I] .B)。
        } 
        ソート(TR + 1、TR + 1 + N、CMP)。
        ANS = CNT = 0  = 2 ;
        にとってint型 i = 1 ; iが<= N; iが++ 
        { 
            一方(LID < I)
            { 
                CNT + = TR [蓋] .A。 ++ ; 
            } 
            であれば(蓋== I) ++ 一方、(TR [I] .B)
            { 
                場合(LID <= N)
                { 
                    LL TMP = 分([I] .B TR TR [蓋] .A)。
                    ANS + = TMP;
                    TR [i]は.B - = 
            }TMP; 
                    TR [蓋] .A - = TMP。
                    もし(!TR [蓋] .A) ++ ; 
                } 
                
                { 
                    LL TMP = 分(TR [I] .B、CNT)。
                    ANS + = TMP; 
                    TR [I] .B - = TMP。
                    CNT - = TMP;
                    もし(!CNT)
                         ブレーク
                } 
            CNT + = TR [I] .A。
            TR [I] .A = 0 
        } 
        のprintf(" %LLDする\ n " 、ANS)。
    } 
}

 

おすすめ

転載: www.cnblogs.com/isakovsky/p/11355201.html