oj2401: Wasserproblem

Fragen
, jede Person zu leben in dem Dorf alles , wie teuer die Dinge in der Stadt kennen. Jeder in der Stadt leben alle wissen , wie teuer die Dinge im Dorf. Allie beschlossen , diese Beobachtungen zu machen , Geld zu verwenden. Sie wird in einer Stadt oder ein Dorf starten, wo billige Sachen zu kaufen, gehen Sie in die entgegengesetzten Art von Ort (wenn sie in der Stadt zu beginnen, ist es ein Dorf, oder wenn Sie im Dorf beginnen, es ist die Stadt), wo dann Geld mit dem Verkauf aufzuzukaufen, die nächst neue Stelle etwas (oder das Gegenteil Art der Sache), und so weiter. Sie verließ bald die Stadt oder einem Dorf, die Bewohner erkennen , wie sie sie betrog und war wütend auf sie, so dass sie nicht zweimal an denselben Ort gehen. Elly kann sie nicht den tatsächlichen Gewinn vorhersagen , wann mit dieser Strategie erhalten. So entschied sie sich zu gehen , nur um so viele Orte. Natürlich müssen sie zwischen dem Zugang zu dem Land wechseln und die Stadt besuchen, aber sie zweimal am gleichen Ort nicht besuchen können. Das System wird Sie mit einem String - Position zur Verfügung stellen, beschreiben alle Standorte Elly zugänglich. Wenn der i-ten Platz ist das Dorf, die i-te Zeichen „V“, wenn die Stadt ist, für den „C“. Nach den Regeln, sie gibt die größte Anzahl von Websites , auf die zugegriffen werden kann.
Eingang
mehr Sätze von Daten.
Jeder Satz von Daten ist eine Zeichenkette mit einer Länge von 1 bis 100, und nur die ‚V‘ und ‚C‘ zwei Zeichen.
Der Ausgang
der Sample der Eingang
Raw
CVVVC
VVV
VVVVCVV
CVCVCVC
V
die Probe der Ausgänge
Raw
5
1
3
7
1
Titel einer Person benötigt , um die Stadt zu gehen - die Land - Stadt - Land abwechselnd hin und her und bat um mehrere Städte auf.
Da die Stadt mit der geringsten Anzahl von städtischen und ländlichen Gebieten zugeordnet zu einem Maximum gehen, wo die Beurteilungsbedingungen
两个数字之间关系 .
n n + 1 und ein Maximalwert 2n + 1;
n und n maximal 2 N;
N + S (eine willkürliche Zahl) , und der maximale Wert von n 2n + 1;
if 0 , die digital ist, ist der Maximalwert nur einer.

if (c == 0 || v == 0)
            ans = 1;
        else if (c == v)
            ans = 2 * v;
        else if (c >= v + 1)
            ans = 2 * v + 1;

Der vollständige Code

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<math.h>
#include<stdio.h>
#include<string.h>
using namespace std;
int main(void)
{
    string str;
    string a[110];
    int c, v,ans ,t;
    while (cin >> str)
    {
        ans = 0;
        c = 0, v = 0;
        for (int i = 0; i < str.size(); i++)
            if (str[i] == 'C')
                c++;
            else
                v++;
        if (c <= v)
        { 
            t = v;
            v = c;
            c = t;
        }
        if (c == 0 || v == 0)
            ans = 1;
        else if (c == v)
            ans = 2 * v;
        else if (c >= v + 1)
            ans = 2 * v + 1;
        cout << ans << endl;
    }
    return 0;
}
Veröffentlicht 38 Originalarbeiten · erntete Lob 27 · Ansichten 3190

Ich denke du magst

Origin blog.csdn.net/qq_45891413/article/details/104803695
Empfohlen
Rangfolge