자바 ACM 경기 IO 페 트 르 템 플 릿 최적화
8206 단어 misc
입력
수출
예.
입력
class InputReader{
private final static int BUF_SZ = 65536;
BufferedReader in;
StringTokenizer tokenizer;
public InputReader(InputStream in) {
super();
this.in = new BufferedReader(new InputStreamReader(in),BUF_SZ);
tokenizer = new StringTokenizer("");
}
private String next() {
while (!tokenizer.hasMoreTokens()) {
try {
tokenizer = new StringTokenizer(in.readLine());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return tokenizer.nextToken();
}
public int nextInt() {
return Integer.parseInt(next());
}
}
StringTokenizer BufferedReader
출력
출력 이 비교적 간단 하고 직접 사용 합 니 다.
public static InputReader in = new InputReader(System.in);
public static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
예시
CF 980 C. Posterized
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static final int INF = 0x3f3f3f3f;
public static InputReader in = new InputReader(System.in);
public static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
public static void main(String[] args) {
int n = in.nextInt();
int k = in.nextInt();
int[] p = new int[n];
for(int i=0 ; inew Solution(n, k, p);
solver.solve();
for(int i=0 ; i" ");
out.flush();
out.close();
}
}
class Solution{
int n,k;
int[] p;
int[] ans;
public Solution(int n, int k, int[] p) {
super();
this.n = n;
this.k = k;
this.p = p;
ans = new int[256];
Arrays.fill(ans, -1);
}
public void solve() {
ans[0] =0;
for(int i=0 ; iint ret =0;
if(ans[p[i]]!=-1)continue;
int lower = Math.max(-1, p[i]-k);
for(ret = p[i] ; ret >lower ; --ret){
if(ans[ret] !=-1){
if(ans[ret] > lower){
ret = ans[ret];
}else ret++;
break;
}
}
ret = Math.max(ret, lower+1);
for(int j=ret ; j<=p[i] ; ++j)ans[j] = ret;
}
}
}
class InputReader{
private final static int BUF_SZ = 65536;
BufferedReader in;
StringTokenizer tokenizer;
public InputReader(InputStream in) {
super();
this.in = new BufferedReader(new InputStreamReader(in),BUF_SZ);
tokenizer = new StringTokenizer("");
}
private String next() {
while (!tokenizer.hasMoreTokens()) {
try {
tokenizer = new StringTokenizer(in.readLine());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return tokenizer.nextToken();
}
public int nextInt() {
return Integer.parseInt(next());
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 ACM 경기 IO 페 트 르 템 플 릿 최적화ACMer 가 자바 를 사용 할 때 시간 초과 현상 을 많이 만 났 을 거 라 고 믿 습 니 다. 오늘 CF 를 할 때 만 났 습 니 다. $10 ^ 5 $Int 가 1s 를 초과 해서 참 을 수 없습니다. 여기에 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.