2017.08.25 19:38

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2017.08.25 04:04



너무 생각안하고 푼 문제. 앞으로는 이러지 말기. 


당연히 dynamic programming 을 써야한다고 생각했는데, 많이 잘못 생각했다. 이 문제만 2시간 넘게 잡은것 같음. 


다음에는 펜으로 좀 더 생각하고 하자. 


window 사이즈를 L 으로 잡고 sliding 시키는게 가장 빠를 것 같다. 


그런데 좀 더 빠르게 하고 싶다면


A B C D E F G H 


에서, L이 4라고 할 경우에

A+B+C+D 를 다 더한 값을 구하고, 이를 KKK 라 하면

KKK 에 A 를 뺀 값과, 뒤에 있을 E를 더하면 한 슬라이드 앞으로 나가게 되는 것이 된다. 

여기서 중요한점은 E 가 A보다 작으면, 의미가 없다. 더하는 것 자체가. 어차피 아니기 때문에


그럼 2칸은? A+B 가 E+F 보다 큰지에 대한 문제이다. 


난 대체 뭐한건지 모르겠다. 더 생각하면서 살아야지 





import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.StringTokenizer;


public class Main {

public static void main(String[] args) throws IOException{

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

int C, N, L;

C = 0;

N = 0;

L = 0;

String temp = br.readLine();

C = Integer.parseInt(temp);

for(int i = 0; i < C; i++){

temp = br.readLine();

StringTokenizer st = new StringTokenizer(temp);

if(st.hasMoreTokens()){

N = Integer.parseInt(st.nextToken());

if(st.hasMoreTokens()){

L = Integer.parseInt(st.nextToken());

}

}

temp = br.readLine();

st = new StringTokenizer(temp);

ArrayList<Integer> al = new ArrayList<Integer>();

while(st.hasMoreTokens()){

al.add(Integer.parseInt(st.nextToken()));

}

int[][] arr = new int[al.size()][al.size()];

for(int s = 0; s < al.size(); s++){

arr[s][s] = al.get(s);

}

for(int j = 0; j < al.size(); j++){

for(int k = j+1; k < al.size(); k++){

arr[k-(j+1)][k] = arr[k-(j+1)][k-1] + arr[k-(j+1)+1][k] - arr[k-(j+1)+1][k-1];

// System.out.println("k-(j+1)="+(k-(j+1))+"k="+k+" "+arr[k-(j+1)][k]);

}

}

//

// for(int j = 0; j < arr[0].length; j++){

// for(int k = 0; k < arr[0].length; k++){

// System.out.print(arr[j][k]+"\t");

// }

// System.out.println("");

// }


int[] arrayL = new int[al.size() - (L - 1)];

for(int j = 0; j < al.size() - (L - 1); j++){

arrayL[j] = arr[j][j+(L-1)];

// System.out.println(arrayL[j]);

}

Arrays.sort(arrayL);

// for(int j = 0; j <arrayL.length ; j++){

// System.out.println("ArrayL="+arrayL[j]);

// }

System.out.println((double)((double)arrayL[0]/(double)L));

}

}

}

저작자 표시 비영리
신고
Posted by 김정훈 염정
2017.08.24 12:15

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2017.08.21 04:31

tt

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2017.08.14 14:59

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2017.08.06 23:58

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2017.08.04 14:15

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2017.08.03 18:42

ContentServer.pdf

[Foundations of Computing and Decision Sciences] Influence of th

1304.4137.pdf

DASFAA06Outlier.pdf

p817-zheng.pdf

p913-Huang.pdf


저작자 표시 비영리
신고
Posted by 김정훈 염정
2017.08.01 10:04

10.1.1.725.2057.pdf

cocktail.pdf

p276-huang.pdf


저작자 표시 비영리
신고
Posted by 김정훈 염정
2017.07.31 15:14

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.