(Jizhong) 2200. [Training] GDKOI Kartenspiele (Karte) [gierige]

(File IO): Eingang: card.in Ausgang: card.out
Zeitlimit: 1000 ms Platzbeschränkungen: 262144 KB spezifische Beschränkungen
Goto ProblemSet


Titel Beschreibung
B e s s ich e Bessie ist sehr ähnlich wie ein Karten Kuh, obwohl sie nicht Daumen taten, aber sie hat eine nahezu Besessenheit mit der Liebe von Spielkarten. Leider andere Rinder in der Herde sind nicht gutspielen. Ihre Höhe ist wirklich schlecht. Sie sind immer in einer völlig vorhersagbaren Weise zu spielen Karten! Dennoch B e s s ich e Bessie kann immer noch entscheidenwie man gewinnt.
B e s s ich e Bessie und ihre Freundin Elsie ein einfaches Kartenspiel spielen, haben sie zu zahlen einen bekam 2 n 2n KartenKarten, digitale Zahlen auf der Karte 1 - 2 n 1- 2n und werden in zwei Teile geteilt, auf einer Karte B e s s ich e Bessie und eine Karte zu E l s ich e Elsie .
Dann begannen sieKarten zu spielen, insgesamt Verhalten n n - Rad, in jeder Runde B e s s ich e Bessie E l s ich e Elsie spielt eine Karte, die Kartendie einen großen Punkt.
Magie B e s s ich e Bessie kann vorhergesagt werden E l s ich e Elsie - KartenSequenz und dergleichen als zu gewinnen. Stellen Sie sicher B e s s ich e Bessie die maximale Anzahl der Punkte verdient werden kann.


Geben Sie
die erste Zeile eine ganze Zahl N ( 1 N 50 . 000 ) N (1≤N≤50,000) .
Die nächste N N Leitung E l s ich e Elsie die kontinuierliche Spielkarten abzurunden. Bitte beachtendass es leicht von den Informationen zu bestimmen B e s s ich e Bessie - Karte.

Ausgangsleitung
gegeben B e s s ich e Bessie kann die maximale Anzahl der Punkte.


Probeneingabe
. 3
. 1
. 6
. 4

Beispielausgabe
2


Datenbereichsgrenze


Tipp
Bessie Hände von Karten sind 2 . 3 . 5 2,3,5 , je nach ihrer 2 . 3 . 5 2,3,5 aufeinanderfolgende 2 Punkte Karten erhalten werden.


Ideen zur Problemlösung
gierig.
Bereiten Sie zwei geordnete Warteschlangen, mit dem Prinzip der Tian Ji das Pferd.


Code

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;
int n,m,a[100010],b[50010],c[50010],x,ans,k,k1,j;
int main(){
 freopen("card.in","r",stdin);
  freopen("card.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&x);
        a[x]=1;
    }
    k=0,k1=0;
    for(int i=1;i<=n*2;i++)
        if(!a[i])
            b[++k]=i;
        else
            c[++k1]=i;
    j=1,ans=0;
    for(int i=1;i<=n;i++)
    {
        if(c[j]<b[i])
        {
            j++;
            ans++;
            if(j>n)
            {
                printf("%d",ans);
                return 0;
            }
        }
    }
    printf("%d",ans);
}
Veröffentlicht 119 Originalarbeiten · erntete Lob 8 · Ansichten 4912

Ich denke du magst

Origin blog.csdn.net/kejin2019/article/details/104975652
Empfohlen
Rangfolge