웹 프론트엔드 HTML 튜토리얼 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>
로그인 후 복사

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Windows 11 종료 프롬프트 작업 호스트 창 작업 호스트가 종료 작업 솔루션을 실행 중입니다. Windows 11 종료 프롬프트 작업 호스트 창 작업 호스트가 종료 작업 솔루션을 실행 중입니다. Feb 12, 2024 pm 12:40 PM

최근 많은 Win11 사용자가 종료할 때 taskhostwindow 작업 호스트가 종료 작업을 실행하고 있다는 메시지가 표시된다고 보고했습니다. 무슨 일이 일어나고 있는 걸까요? 사용자는 로컬 레지스트리 편집기 아래 Desktop 폴더에 들어간 후 오른쪽 창에서 AutoEndTasks를 선택하여 설정할 수 있습니다. 이 사이트를 종료할 때 이 문제에 대한 해결책을 사용자에게 주의 깊게 소개하십시오. Windows 11 종료에서는 taskhostwindow 작업 호스트가 종료 작업을 실행 중이라는 메시지가 표시됩니다. 해결 방법 1. 아래 그림과 같이 win 키 + r 키 조합을 사용하여 "regedit"를 입력하고 Enter 키를 누릅니다. 2. [HKEY]를 검색하세요

PHP에서 라운드는 무엇을 의미합니까? PHP에서 라운드는 무엇을 의미합니까? Mar 10, 2023 am 10:04 AM

PHP에서 round는 "반올림"을 의미하며 부동 소수점 숫자를 정수로 변환하는 내장 함수입니다. 이 함수는 부동 소수점 숫자를 반올림하고 float 유형의 정수 값을 반환할 수 있습니다. 구문은 "round(number, Precision,mode)입니다. );".

PHP의 round() 함수를 사용하여 나누고 반올림하는 방법 PHP의 round() 함수를 사용하여 나누고 반올림하는 방법 Mar 21, 2023 pm 04:32 PM

round() 함수는 부동 소수점 숫자를 지정된 소수 자릿수로 반올림할 수 있는 PHP 숫자 형식 라이브러리의 매우 유용한 함수입니다. 그러나 PHP의 나눗셈 연산은 소수점이 무한하거나 정밀도가 손실될 수 있으므로 제수에 대한 반올림도 필요합니다. 다음으로 PHP의 round() 함수를 사용하여 나누기와 반올림하는 방법을 자세히 설명하겠습니다.

ROUND 함수를 사용하여 MySQL에서 소수점 자리를 가로채는 방법 ROUND 함수를 사용하여 MySQL에서 소수점 자리를 가로채는 방법 Jul 13, 2023 pm 09:21 PM

MySQL에서 ROUND 함수를 사용하여 소수 자릿수를 가로채는 방법 MySQL에서는 ROUND 함수를 사용하여 소수 자릿수를 가로챌 수 있습니다. ROUND 함수는 숫자를 지정된 소수 자릿수로 반올림합니다. 다음에서는 ROUND 함수의 사용법을 자세히 소개하고 코드 예제를 제공합니다. 구문: ROUND(X,D)X는 반올림할 숫자를 나타내고, D는 유지할 소수 자릿수를 나타냅니다. ROUND 함수를 사용하여 소수 자릿수를 가로채는 예: produc이라는 테이블이 있다고 가정합니다.

C#Task에 대한 자세한 설명 C#Task에 대한 자세한 설명 Mar 14, 2024 am 09:54 AM

Task는 C#에서 비동기 작업을 나타내는 데 사용되는 개체이며 System.Threading.Tasks 네임스페이스에 있습니다. Task는 동시 비동기 작업을 처리하기 위한 고급 API를 제공하므로 .NET 애플리케이션에서 비동기 코드를 더 쉽게 작성할 수 있습니다.

C# 작업 사용 C# 작업 사용 Feb 19, 2024 pm 12:16 PM

C#Task를 사용하려면 특정 코드 예제에 대한 개요가 필요합니다. Task는 C#에서 매우 일반적으로 사용되는 형식으로, 비동기적으로 실행되고 결과를 반환할 수 있는 실행 가능한 작업을 나타냅니다. 작업은 비동기 작업 처리, 병렬 처리 및 애플리케이션 성능 향상에 중요한 역할을 합니다. 이 문서에서는 Task의 기본 사용법을 소개하고 몇 가지 구체적인 코드 예제를 제공합니다. 작업 만들기 및 사용 C#에서는 Task 클래스를 사용하여 비동기 작업을 만들고 사용할 수 있습니다. Ta를 생성하고 사용하는 방법은 다음과 같습니다.

C#의 작업에 대해 더 깊이 이해하세요. C#의 작업에 대해 더 깊이 이해하세요. Feb 18, 2024 pm 12:03 PM

C#Task에 대한 자세한 설명, 특정 코드 예제가 필요합니다. 소개: C# 다중 스레드 프로그래밍에서 Task는 비동기 작업을 구현하기 위해 일반적으로 사용되는 프로그래밍 모델입니다. Task는 동시 작업을 처리하는 간단한 방법을 제공하고, 여러 스레드에서 비동기 작업을 병렬로 수행할 수 있으며, 예외 및 반환 값을 편리하게 처리할 수 있습니다. 이 기사에서는 C#Task의 사용법을 자세히 소개하고 몇 가지 구체적인 코드 예제를 제공합니다. 1. 태스크 생성 및 실행 태스크 객체 생성 방법 C#에서는 태스크 객체를 생성하는 방법이 많이 있습니다.

부동 소수점 수를 반올림하는 한 줄 C 함수 작성 부동 소수점 수를 반올림하는 한 줄 C 함수 작성 Aug 26, 2023 pm 01:53 PM

여기에서는 부동 소수점 수를 반올림할 수 있는 한 줄 C 함수를 작성하는 방법을 살펴보겠습니다. 이 문제를 해결하려면 다음 단계를 따라야 합니다. 숫자 얻기 숫자가 양수이면 0.5를 더하고 그렇지 않으면 0.5를 뺍니다. 유형 변환을 사용하여 부동 소수점 값을 정수로 변환합니다. 예 #include<stdio.h> intmy_round(floatnumber){ return(int)(number<0?number - 0.5:숫자+0.5);}intmain(){&nbsp

See all articles