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<

좋은 웹페이지 즐겨찾기