Heim Web-Frontend HTML-Tutorial Codeforces Round #267 (Div. 2) E Alex and Complicated Task_html/css_WEB-ITnose

Codeforces Round #267 (Div. 2) E Alex and Complicated Task_html/css_WEB-ITnose

Jun 24, 2016 am 11:57 AM
round task

很不错的思维题,贪心

题目大意:给你n个数,你需要找到一个最长的子序列,使得这个子序列的第4k-4k+3项为a,b,a,b的形式(从0标号)。

牛逼的贪心啊,思维能力还是不行......

思路倒是能想一点,但是代码写下来不行...

参考了 http://www.cnblogs.com/shiina-mashiro/p/3981944.html

思路:

1、处理四个数相等的情况,直接输出四个数就行----其中记录数出现的次数用map,这样就不用离散化了(网上查的说map的查询时logn,离散化需要排序,nlogn,需要把大数映射成小数的时候 岂不是不需要离散化了。。。)

2、ABAB的情况

首先要想明白一点:两对数要满足形成ABAB那么必然是相邻的 ,最初没考虑到这点,以为要O(n^2)算法,不敢写了。

然后举出相邻两对数分析思路(a,b)  (c,d)。

d>b显然,因为d是当前读到的数,a,b,c,是之前读到的数

然后根据c与a,b关系分以下情况:

(1)c

(2)b>c>=a  形成ABAB,记录之

(3)c>=b  不知道(a,b) (c,d) 该取哪个  那么都存下先,等着下一个数读入作处理


//#pragma comment(linker, "/STACK:102400000,102400000")#include <cstdio>#include <cstring>#include <algorithm>#include <string>#include <iostream>#include <map>#include <vector>using namespace std;#define ls(rt) rt*2#define rs(rt) rt*2+1#define ll long long#define ull unsigned long long#define rep(i,s,e) for(int i=s;i<e repe for i="s;i<=e;i++)#define" cl memset in freopen out ll ll_inf="((ull)(-1))">>1;const double EPS = 1e-8;const int INF = 100000000;const int MAXN = 500000+100;struct Node{    int l,r;    int x;}nodes[MAXN];map<int int>pos,cnt;vector<int>b;int num[MAXN],n,top;void read(){    b.clear();    top=0;    for(int i=1;i0)            {                int bl=nodes[top-1].l, br=nodes[top-1].r, bx=nodes[top-1].x;                if(l>bl && l   <br>  <br>  <p></p>  <p><br> </p>  <p><br> </p> </int></int></e></vector></map></iostream></string></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)

Windows 11-Aufforderungen zum Herunterfahren des Task-Hosts. Der Fenster-Task-Host führt die Lösung für das Herunterfahren-Task aus Windows 11-Aufforderungen zum Herunterfahren des Task-Hosts. Der Fenster-Task-Host führt die Lösung für das Herunterfahren-Task aus Feb 12, 2024 pm 12:40 PM

In letzter Zeit haben viele Win11-Benutzer berichtet, dass sie beim Herunterfahren die Meldung erhalten, dass der Task-Host taskhostwindow die Aufgabe zum Herunterfahren ausführt. Was ist also los? Benutzer können den Desktop-Ordner im lokalen Registrierungseditor aufrufen und dann im rechten Fenster AutoEndTasks auswählen, um ihn festzulegen. Lassen Sie diese Website den Benutzern die Lösung für dieses Problem beim Herunterfahren sorgfältig vorstellen. Das Herunterfahren von Windows 11 zeigt an, dass der Task-Host „taskhostwindow“ die Shutdown-Aufgabe ausführt. Lösung: 1. Verwenden Sie die Tastenkombination Win-Taste + R-Taste, geben Sie „regedit“ ein und drücken Sie die Eingabetaste, wie in der Abbildung unten gezeigt. 2. Suchen Sie nach [HKEY

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

Detaillierte Erläuterung von C#Task Detaillierte Erläuterung von C#Task Mar 14, 2024 am 09:54 AM

Task ist ein Objekt, das zur Darstellung asynchroner Vorgänge in C# verwendet wird. Es befindet sich im Namespace System.Threading.Tasks. Task bietet eine High-Level-API für die Verarbeitung gleichzeitiger, asynchroner Vorgänge und erleichtert so das Schreiben von asynchronem Code in .NET-Anwendungen.

Verwenden von C#-Aufgaben Verwenden von C#-Aufgaben Feb 19, 2024 pm 12:16 PM

Die Verwendung von C#-Tasks erfordert einen Überblick über spezifische Codebeispiele: Task ist ein sehr häufig verwendeter Typ in C#. Er stellt einen ausführbaren Vorgang dar, der asynchron ausgeführt werden kann und Ergebnisse zurückgibt. Aufgaben spielen eine wichtige Rolle bei der Abwicklung asynchroner Vorgänge, der Parallelverarbeitung und der Verbesserung der Anwendungsleistung. In diesem Artikel wird die grundlegende Verwendung von Task vorgestellt und einige spezifische Codebeispiele bereitgestellt. Erstellen und Verwenden einer Aufgabe In C# können Sie die Task-Klasse verwenden, um eine asynchrone Aufgabe zu erstellen und zu verwenden. Hier ist eine Möglichkeit, Ta zu erstellen und zu verwenden

Erhalten Sie ein tieferes Verständnis für Aufgaben in C# Erhalten Sie ein tieferes Verständnis für Aufgaben in C# Feb 18, 2024 pm 12:03 PM

Detaillierte Erläuterung von C#Task, spezifische Codebeispiele sind erforderlich. Einführung: In der C#-Multithread-Programmierung ist Task ein häufig verwendetes Programmiermodell zur Implementierung asynchroner Vorgänge. Task bietet eine einfache Möglichkeit, gleichzeitige Aufgaben zu verarbeiten, kann asynchrone Vorgänge parallel in mehreren Threads ausführen und bequem Ausnahmen und Rückgabewerte verarbeiten. In diesem Artikel wird die Verwendung von C#Task ausführlich vorgestellt und einige spezifische Codebeispiele bereitgestellt. 1. Aufgaben erstellen und ausführen Methoden zum Erstellen von Aufgabenobjekten Es gibt viele Möglichkeiten, Aufgabenobjekte in C# zu erstellen.

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

See all articles