TYZ 8 / 25 LJM 교환!교환!
1925 단어 알고리즘
교환
[문제 설명]
어떤 가 무 는 물건 교환 을 좋아한다. 그 는 더 많은 사람들 과 좋 은 것 을 나 눌 수 있다 고 생각한다.
어느 날 쇠 흥 은 모 가 목 n 에 게 책 을 주 었 는데 이 n 권 책의 유익 도 는 각각 a [i] 로 일렬 로 서 있 었 다.그리고 쇠 흥 은 그 에 게 내 가 너 에 게 k 번 의 기 회 를 줄 수 있다 고 말 했다. 너 는 그 중의 k 대 책의 위 치 를 가장 많이 교환 한 다음 에 현재 의 배열 에서 그 중의 연속 적 인 부분 을 가 져 갈 수 있다.
어떤 가 무 는 긍정 적 인 에 너 지 를 가 진 사람 이다. 그 는 자신 이 가 져 간 이 책의 유익 도 를 최대한 높이 고 싶 어서 프로그램 을 써 서 계산 하기 로 결정 했다.
[형식 입력]
첫 줄 n, k.
두 번 째 줄 n 개의 숫자 는 각각 a [i] 이다.(-1000<=a[i]<=1000)
[출력 형식]
한 숫자 는 모 가 목 이 결국 가 져 간 이 책의 유익 도 를 나타 낸다.
[샘플 입력]
10 2
10 -1 2 2 2 2 2 2 -1 10
[출력 사례]
32
【 데이터 범위 와 약정 】
100% 의 데이터 에 대해 n < 200, k < = 10.
NOIP 는 항상 시 뮬 레이 션 을 본다. 이 문제 도 시 뮬 레이 션 이다. 뒤의 문제 가 만점 을 모 의 하지 못 할 때 시 뮬 레이 션 을 폭력 이 라 고 한다.
이거 어떻게 폭력 쓸 거 예요?
방법 은 각 구간, n ^ 2 를 매 거 한 다음 에 각 구간 에 앞 k 작은 강 구간 외 앞 k 큰 값 이 있 습 니 다.
그리고 매 거 진 교환 몇 번.
코드 는 다음 과 같다.
(여기 서 vector 를 사용 하지 마 세 요. 그렇지 않 으 면 메모리 가 새 는 것 이 귀 찮 습 니 다. mle 일 수 있 습 니 다)
#include
#include
#include
#include
#include
#include
using namespace std;
int k,n,a[300];
int t1,t2;
int dp[300][300][15];
const int inf=0x3f3f3f3f;
int ans=-inf;
int cmpup(int xxx,int yyy)
{
return xxx>yyy;
}
int cmpdown(int xxx,int yyy)
{
return xxxtout||i>tin)
break;
int nwsum=sumofq;
int moveout=0,movein=0;
for(int j=0;j>n>>k;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
for(int j=i;j<=n;j++)
deal(i,j);
cout<
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.