Heim Datenbank MySQL-Tutorial Codeforces Round #FF (Div. 2) 题解

Codeforces Round #FF (Div. 2) 题解

Jun 07, 2016 pm 03:31 PM
round Vergleichen

比赛链接:http://codeforces.com/contest/447 A. DZY Loves Hash time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output DZY has a hash table with p buckets, numbered from 0 to p ?-?1 . He

比赛链接:http://codeforces.com/contest/447

A. DZY Loves Hash

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

DZY has a hash table with p buckets, numbered from 0 to p?-?1. He wants to insert n numbers, in the order they are given, into the hash table. For the i-th number xi, DZY will put it into the bucket numbered h(xi), where h(x) is the hash function. In this problem we will assume, that h(x)?=?x mod p. Operation a mod b denotes taking a remainder after division a by b.

However, each bucket can contain no more than one element. If DZY wants to insert an number into a bucket which is already filled, we say a "conflict" happens. Suppose the first conflict happens right after the i-th insertion, you should output i. If no conflict happens, just output -1.

Input

The first line contains two integers, p and n (2?≤?p,?n?≤?300). Then n lines follow. The i-th of them contains an integer xi (0?≤?xi?≤?109).

Output

Output a single integer — the answer to the problem.

Sample test(s)

input

10 5
0
21
53
41
53
Nach dem Login kopieren

output

4
Nach dem Login kopieren

input

5 5
0
1
2
3
4
Nach dem Login kopieren

output

-1
Nach dem Login kopieren

链接:http://codeforces.com/contest/447

题意:找出hash时第一次产生冲突的位置。

解题思路:用一个数组表示是否存放有hash之后的元素,0表示这个位置还没有使用过,1表示这个位置上有hash之后的元素(即产生了冲突)。

代码:

#include <cstdio>
#include <cstring>

const int MAXN = 305;
int a[MAXN], p, n, ans = -1;

int main()
{
    bool flag = true;
    scanf("%d%d", &p, &n);
    for(int i = 0; i <br>


<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
B. DZY Loves Strings</p>
<p>
</p>
<p>
time limit per test</p>
1 second
<p>
</p>
<p>
memory limit per test</p>
256 megabytes
<p>
</p>
<p>
input</p>
standard input
<p>
</p>
<p>
output</p>
standard output

<p>
</p>
<p>DZY loves collecting special strings which only contain lowercase letters. For each lowercase letter<span> </span><span><em>c</em></span><span> </span>DZY
 knows its value<span> </span><span><em>w</em><sub><em>c</em></sub></span>.
 For each special string<span> </span><span><em>s</em>?=?<em>s</em><sub>1</sub><em>s</em><sub>2</sub>...<span> </span><em>s</em><sub>|<em>s</em>|</sub></span><span> </span>(<span>|<em>s</em>|</span><span> </span>is
 the length of the string) he represents its value with a function<span> </span><span><em>f</em>(<em>s</em>)</span>, where</p>
<center><img  src="/static/imghw/default1.png" data-src="/inc/test.jsp?url=http%3A%2F%2Fespresso.codeforces.com%2F47c9783b69409ca6ade8e93f7d51bed11f430539.png&refer=http%3A%2F%2Fblog.csdn.net%2Fu010084308%2Farticle%2Fdetails%2F37758201" class="lazy" alt="Codeforces Round #FF (Div. 2) 题解" ></center>
<p>Now DZY has a string<span> </span><span><em>s</em></span>. He wants to
 insert<span> </span><span><em>k</em></span><span> </span>lowercase letters into this string in order to get the largest possible value of the resulting
 string. Can you help him calculate the largest possible value he could get?</p>

<p>
</p>
<p>
Input</p>
<p>The first line contains a single string<span> </span><span><em>s</em> (1?≤?|<em>s</em>|?≤?10<sup>3</sup>)</span>.</p>
<p>The second line contains a single integer<span> </span><span><em>k</em> (0?≤?<em>k</em>?≤?10<sup>3</sup>)</span>.</p>
<p>The third line contains twenty-six integers from<span> </span><span><em>w</em><sub><em>a</em></sub></span><span> </span>to<span> </span><span><em>w</em><sub><em>z</em></sub></span>.
 Each such number is non-negative and doesn't exceed<span> </span><span>1000</span>.</p>

<p>
</p>
<p>
Output</p>
<p>Print a single integer — the largest possible value of the resulting string DZY could get.</p>

<p>
</p>
<p>
Sample test(s)</p>
<p>
</p>
<p>
</p>
<p>
input</p>
<pre class="brush:php;toolbar:false">abc
3
1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Nach dem Login kopieren

output

41
Nach dem Login kopieren

Note

In the test sample DZY can obtain "abcbbc", value?=?1·1?+?2·2?+?3·2?+?4·2?+?5·2?+?6·2?=?41.


链接:http://codeforces.com/contest/447/problem/B

题意:在给出的字符串中增加k个字符,求可以得到的最大权值和。

解题思路:找出最大的位权,将k个有最大位权的字符放到原字符串的末尾,求权值和。ps:答案可能会超出int,要用long long

代码:

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s;
    int k, a[27], imax = -1;
    cin >> s >> k;
    for(int i = 0; i > a[i];
        if(a[i] > imax)
        {
            imax = a[i];
        }
    }
    long long ans = 0;
    int len = s.length();
    for(int i = 0; i <br>

<p>
</p>
<p>
C. DZY Loves Sequences</p>
<p>
</p>
<p>
time limit per test</p>
1 second
<p>
</p>
<p>
memory limit per test</p>
256 megabytes
<p>
</p>
<p>
input</p>
standard input
<p>
</p>
<p>
output</p>
standard output

<p>
</p>
<p>DZY has a sequence<span> </span><span><em>a</em></span>, consisting of<span> </span><span><em>n</em></span><span> </span>integers.</p>
<p>We'll call a sequence<span> </span><span><em>a</em><sub><em>i</em></sub>,?<em>a</em><sub><em>i</em>?+?1</sub>,?...,?<em>a</em><sub><em>j</em></sub></span><span> </span><span>(1?≤?<em>i</em>?≤?<em>j</em>?≤?<em>n</em>)</span><span> </span>a
 subsegment of the sequence<span> </span><span><em>a</em></span>. The value<span> </span><span>(<em>j</em>?-?<em>i</em>?+?1)</span><span> </span>denotes
 the length of the subsegment.</p>
<p>Your task is to find the longest subsegment of<span> </span><span><em>a</em></span>,
 such that it is possible to change at most one number (change one number to any integer you want) from the subsegment to make the subsegment strictly increasing.</p>
<p>You only need to output the length of the subsegment you find.</p>

<p>
</p>
<p>
Input</p>
<p>The first line contains integer<span> </span><span><em>n</em> (1?≤?<em>n</em>?≤?10<sup>5</sup>)</span>.
 The next line contains<span> </span><span><em>n</em></span><span> </span>integers<span> </span><span><em>a</em><sub>1</sub>,?<em>a</em><sub>2</sub>,?...,?<em>a</em><sub><em>n</em></sub> (1?≤?<em>a</em><sub><em>i</em></sub>?≤?10<sup>9</sup>)</span>.</p>

<p>
</p>
<p>
Output</p>
<p>In a single line print the answer to the problem — the maximum length of the required subsegment.</p>

<p>
</p>
<p>
Sample test(s)</p>
<p>
</p>
<p>
</p>
<p>
input</p>
<pre class="brush:php;toolbar:false">6
7 2 3 1 5 6
Nach dem Login kopieren

output

5
Nach dem Login kopieren

Note

You can choose subsegment a2,?a3,?a4,?a5,?a6 and change its 3rd element (that is a4) to 4.

链接:http://codeforces.com/contest/447/problem/C

题意:从一串数字中选出一个子串,可以改变子串中一个数字的值得到一个新的子串,求最大的递增新子串的长度。

解题思路:

将原数组分割成递增的子串,记录下每个子串的开始和结束位置,以及长度。接下来要分几种情况讨论:1.相邻的两个子串改变一个数字之后,可以合并形成新的递增子串,2.相邻的3个子串,中间子串长度为1,改变中间的数字后可以形成新的递增子串,3.相邻的子串不能合并形成新的递增子串,但是可以在原串的基础上,得到一个长度增加1的新的递增子串(在子串开头位置前有数字,或是结束位置后有数字)。

代码:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

const int MAXN = 100010;
int a[MAXN];
struct P
{
    int l, len, r;
};
P p[MAXN];
int n;

int main()
{
    memset(p, 0, sizeof(p));
    scanf("%d", &n);
    int t = 0;
    for(int i = 0; i  a[p[i - 1].r - 1] + 1 ||
           a[p[i].l + 1] > a[p[i - 1].r] + 1)
        {
            ans = max(ans, p[i].len + p[i - 1].len);
        }
        if(i >= 2 && 1 == p[i - 1].len &&
           a[p[i].l] > a[p[i - 2].r + 1])
        {
            ans = max(ans, p[i].len + p[i - 2].len + 1);
        }
     //   printf("%d \n", p[i].len);
    }
    printf("%d\n", ans);
    return 0;
}
</algorithm></cstring></cstdio>
Nach dem Login kopieren


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was bedeutet rund in PHP? Was bedeutet rund in PHP? Mar 10, 2023 am 10:04 AM

In PHP bedeutet „runden“ „Rundung“ und ist eine integrierte Funktion, die Gleitkommazahlen in Ganzzahlen umwandelt. Diese Funktion kann Gleitkommazahlen runden und einen ganzzahligen Wert vom Typ „float“ zurückgeben );".

So dividieren und runden Sie mit der PHP-Funktion „round()'. So dividieren und runden Sie mit der PHP-Funktion „round()'. Mar 21, 2023 pm 04:32 PM

Die Funktion „round()“ ist eine sehr nützliche Funktion in der PHP-Bibliothek zur Zahlenformatierung, die Gleitkommazahlen auf eine angegebene Anzahl von Dezimalstellen runden kann. Da die Divisionsoperation von PHP jedoch unter unendlichen Dezimalzahlen oder einem Genauigkeitsverlust leiden kann, ist auch eine Rundung des Divisors erforderlich. Als nächstes erklären wir im Detail, wie man die PHP-Funktion „round()“ zum Teilen und Runden verwendet.

So verwenden Sie die ROUND-Funktion, um Dezimalstellen in MySQL abzufangen So verwenden Sie die ROUND-Funktion, um Dezimalstellen in MySQL abzufangen Jul 13, 2023 pm 09:21 PM

So verwenden Sie die ROUND-Funktion in MySQL, um die Anzahl der Dezimalstellen abzufangen. In MySQL können Sie die ROUND-Funktion verwenden, um die Anzahl der Dezimalstellen abzufangen. Die ROUND-Funktion rundet eine Zahl auf eine angegebene Anzahl von Dezimalstellen. Im Folgenden werden Sie ausführlich in die Verwendung der ROUND-Funktion eingeführt und Codebeispiele bereitgestellt. Syntax: ROUND(X,D)X steht für die zu rundende Zahl und D für die Anzahl der beizubehaltenden Dezimalstellen. Beispiel für die Verwendung der ROUND-Funktion zum Abfangen der Anzahl der Dezimalstellen: Angenommen, es gibt eine Tabelle mit dem Namen produc

Wählen Sie die richtige Maus für Ihren Laptop Wählen Sie die richtige Maus für Ihren Laptop Jan 02, 2024 pm 09:54 PM

Welche Art von Maus sollte ich mit meinem Laptop verwenden? Am besten verwende ich eine kabellose Maus. 1. Bei der kabellosen Maus besteht kein Problem, dass sich Kabel verheddern, was die Bedienung komfortabler macht. 2. Ausgestattet mit einer kabellosen Maus vermeiden Sie Kabelsalat und sorgen für mehr Bewegungsfreiheit. 3. Es ist nicht erforderlich, ein Kabel zu verwenden, um die kabellose Maus mit dem Notebook zu verbinden, und das Kabel lässt sich nicht leicht herausziehen, was das Nutzungserlebnis verbessert. 4. In Situationen wie Geschäftsreisen sind kabellose Mäuse bequemer zu tragen. Wenn Sie eine Maus mit einem Laptop verwenden, sollten Sie sich für eine kabellose Maus entscheiden. Da für eine kabellose Maus kein Kabel erforderlich ist, ist sie bequemer zu verwenden und kann Kabelsalat vermeiden. Gleichzeitig sind Empfindlichkeit und Reaktionsgeschwindigkeit einer kabellosen Maus besser als die einer kabelgebundenen Maus, was die Arbeitseffizienz verbessern kann. Wenn Sie es längere Zeit verwenden müssen, empfiehlt es sich, eine Aufladung zu wählen

Welche Art von Laptop sollten Studenten wählen? (Welche Art von Laptop sollten Studenten wählen?) Welche Art von Laptop sollten Studenten wählen? (Welche Art von Laptop sollten Studenten wählen?) Dec 30, 2023 pm 09:27 PM

Welche Art von Laptop ist für College-Studenten geeignet? Wenn Sie während des Studiums einen Gaming-Laptop mit Grundkonfiguration kaufen, liegt der Preis bei Marken wie Savior, Flying Fortress und Shadow Elf Für alle gibt es eine passende Low-End-Version. Bitte beachten Sie bei der Auswahl, dass Sie sich am besten für die CPU von Intel entscheiden, da diese stabiler und zuverlässiger ist. Darüber hinaus sollten Sie auch die Low-End-Version mit 16 GB Speicher wählen. Mit dieser Speicherkapazität können Sie jede Software ohne Druck ausführen. Bezüglich der Grafikkarte empfehle ich, ein normales und gewöhnliches Produkt zu wählen, beispielsweise das 1650er-Modell aus dem letzten Jahr. Ich rate vom Kauf des diesjährigen Laptops ab, da die derzeit auf dem Markt erhältlichen Computer nicht sehr kostengünstig sind. Warum wird die Wahl eines Gaming-Laptops der Einstiegsklasse empfohlen? Denn nach dem Abschluss darfst du

Top10 Digital Currency Exchange Ranking Top10 Digital Currency Exchange Ranking Mar 14, 2025 pm 05:36 PM

Empfohlene Top -Ten -Handelsplattformen für digitale Asset im Jahr 2024, wodurch Sie sicher und bequem in die Kryptowährungswelt eintreten! Basierend auf mehrdimensionalen Indikatoren wie Transaktionsvolumen, Sicherheit, Benutzererfahrung und Handhabungsgebühren wählt dieser Artikel zehn hervorragende Plattformen (unabhängig vom Ranking) aus, die verschiedene Transaktionstypen wie Spot und Verträge abdecken und für Anfänger und professionelle Anleger unterschiedliche Möglichkeiten bieten. Bei der Auswahl einer Plattform müssen Sie Faktoren wie Ihre eigenen Investitionsziele, die Risikotoleranz, das Erlebnisstufe, die Sicherheitsplattformsicherheit und die Kundenbetreuung berücksichtigen. Dieser Artikel ist nur als Referenz.

Schreiben Sie eine einzeilige C-Funktion zum Runden von Gleitkommazahlen Schreiben Sie eine einzeilige C-Funktion zum Runden von Gleitkommazahlen Aug 26, 2023 pm 01:53 PM

Hier sehen wir, wie man eine einzeilige C-Funktion schreibt, die Gleitkommazahlen runden kann. Um dieses Problem zu lösen, müssen wir die folgenden Schritte befolgen. Holen Sie sich eine Zahl. Wenn die Zahl positiv ist, addieren Sie 0,5, andernfalls subtrahieren Sie 0,5. Verwenden Sie die Typkonvertierung, um den Gleitkommawert in eine Ganzzahl umzuwandeln. Beispiel #include<stdio.h> intmy_round(floatnumber){ return(int)(number<0?number - 0.5:number+0.5);}intmain(){&nbsp

Empfohlene Top-Ten-Bitcoin-Handelsplattformen im Jahr 2025, empfohlene Apps für den Handel mit digitalen Währungen für Anfänger Empfohlene Top-Ten-Bitcoin-Handelsplattformen im Jahr 2025, empfohlene Apps für den Handel mit digitalen Währungen für Anfänger Dec 14, 2024 am 09:09 AM

Dieser Leitfaden bietet einen detaillierten Einblick in die zehn vertrauenswürdigsten Bitcoin-Handelsplattformen im Jahr 2025 mit Mitgliedschaftsoptionen, Gebührenstrukturen und Sicherheitsmaßnahmen, die für Entwickler wichtig sind, und bietet gleichzeitig eine Einführung in den Handel mit digitalen Währungen für Anfänger.

See all articles