hihocoder50
n = int(raw_input())
a = map(int, raw_input().split(' '))
if sum(a)<=0:
print -1
else:
res, i, su = 0, 0, a[0]
while i+1
제목 2: 좌석 문제 우선 대기 열, 정렬 규칙 정의, Python 회 TLE, 아, 자바 다시 써 야 겠 다. C + + 다 까 먹 었 어.
import heapq
n,m,k = map(int, raw_input().strip().split(' '))
b=map(int, raw_input().split(' '))
b.sort()
q=[]
for i in range(m-1):
if b[i+1]-b[i]>1:
d = b[i+1]-b[i]-1
heapq.heappush(q, (-(d/2), -(d+1)//2,b[i]+1,b[i+1]-1))
if b[0]>1: heapq.heappush(q, (-(b[0]-1)/2, -(b[0])/2, 1, b[0]-1))
if b[-1]0:
k-=1
_,_,l,r=heapq.heappop(q)
mid=(l+r)/2
heapq.heappush(q, (-(mid-2-l)/2, -(mid-1-l)/2, l, mid-1))
heapq.heappush(q, (-(r-mid-2)/2, -(r-mid-1)/2, mid+1, r))
res.append(mid)
print('
'.join(map(str, res)))
package l502;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.PriorityQueue;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt(), m=sc.nextInt(), k=sc.nextInt();
int[] b = new int[m];
for(int i=0; i pq = new PriorityQueue(n, new Comparator(){
public int compare(int[] a1, int[] a2) {
int d1=a1[1]-a1[0], d2=a2[1]-a2[0];
if((d1+1)/2!=(d2+1)/2) return -(d1+1)/2+(d2+1)/2;
if((d1+2)/2!=(d2+2)/2) return -(d1+2)/2+(d2+2)/2;
return a1[0]-a2[0];
}
});
for(int i=0; i1) {
pq.add(new int[]{b[i]+1, b[i+1]-1});
}
if(b[0]>1) pq.add(new int[]{1, b[0]-1});
if(b[m-1] l = new ArrayList();
while(k-- > 0) {
int[] t = pq.remove();
int mid = (t[0]+t[1])/2;
pq.add(new int[]{t[0], mid-1});
pq.add(new int[]{mid+1, t[1]});
l.add(mid);
}
for(int i:l)
System.out.println(i);
}
}
제목 3: 끝 에 최대 0 의 곱 하기 통계 2, 5 의 개수 가 있 고 그 다음 에 DP, 2 와 5 사이 에 관련 이 있 기 때문에 DP 배열 2 개 로 나 누 어 계산 할 수 없습니다. dp [i] [j] [k] 는 i 위치 에 있 을 때 j 개 를 선 택 했 습 니 다. k 개 5 가 있 을 때 최대 몇 개의 2 가 있 습 니까? 사실은 5 의 개 수 를 매 거 했 습 니 다. 곰 곰 이 생각해 보 는 것 도 논리 에 부합 되 기 때문에 이전의 방식 에 얽 매 이지 말고 뛰 어 나 오 세 요.매 거 된 사고방식 에 따라 정상적으로 한 번 고려 하 다
package l503;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt(), m=sc.nextInt();
int[]a=new int[n];
for(int i=0;i0 && a[i]%2==0) {a[i]/=2; a2[i]++;}
while(a[i]>0 && a[i]%5==0) {a[i]/=5; a5[i]++;}
}
int s=0;
for(int i:a5) s+=i;
int[][][] dp = new int[n][m+1][s+1];
// ,
for(int[][] dp1: dp) for(int[] dp2: dp1) Arrays.fill(dp2, -99999999);
dp[0][0][0] = 0;
for(int k=0; k<=a5[0]; k++) dp[0][1][k]=a2[0];
for(int i=1; i=0 && k-a5[i]>=0))
dp[i][j][k]=Math.max(dp[i][j][k], dp[i-1][j-1][k-a5[i]]+a2[i]);
}
int res = 0;
for(int i=0; i
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.