白駿13335トラック
線.ほほほ
解けないから...解説を読んで解けた.
再び1号線に挑戦
https://www.acmicpc.net/problem/13335
問題の核心は以下の通りである.
三人橋を渡るのに何秒かかりますか?
答えは4秒かかります.
1秒上がって2秒移動して1秒降ります
では、実は、私は沈黙を守って、誰かが私を過去の状態にさせたことを考えて、以下のように表現します.
重さが0キロあると思うと気持ちいい
0キロ入れて押す過程=1秒と思ったら気持ちいい
しかもここでは0キロ押しではなく、今はトラックやトラックが押しますが、橋の限界容量が超えたら?この0キロで押すと、この問題は多少近づきやすい.
コードは以下の通りです.
また来ます.シルバー1 Qに再挑戦
解けないから...解説を読んで解けた.
再び1号線に挑戦
https://www.acmicpc.net/problem/13335
問題の核心は以下の通りである.
三人橋を渡るのに何秒かかりますか?
答えは4秒かかります.
1秒上がって2秒移動して1秒降ります
では、実は、私は沈黙を守って、誰かが私を過去の状態にさせたことを考えて、以下のように表現します.
重さが0キロあると思うと気持ちいい
0キロ入れて押す過程=1秒と思ったら気持ちいい
しかもここでは0キロ押しではなく、今はトラックやトラックが押しますが、橋の限界容量が超えたら?この0キロで押すと、この問題は多少近づきやすい.
コードは以下の通りです.
import java.util.*;
import java.io.*;
public class 트럭 {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int w = Integer.parseInt(st.nextToken());
int l = Integer.parseInt(st.nextToken());
int time= 0;
int cWeight = 0;
Queue<Integer> TruckList = new LinkedList<>();
st= new StringTokenizer(br.readLine());
for(int i=0;i<n;i++) {
int cur = Integer.parseInt(st.nextToken());
while(true) { // 1초 단위로 갱신해줄거임
if(TruckList.isEmpty()) { // 보드 위에 아무도없다면 바로 추가
time++;
cWeight+=cur;
TruckList.add(cur);
break;
}
// 0이라는 토큰을 넣고 빼는 역할을 한사이클로 해야되는데 꽉차면 빼고 그다음에 안꽉차면 넣는과정을해야됨
if(TruckList.size()==w) {
cWeight-= TruckList.poll();
continue;
}
if(cWeight+cur>l) { //무게를 초과해서 건널수없는경우 0토큰으로 1초가지남을표시해줌
time++;
TruckList.add(0);
}
else {
time++;
TruckList.add(cur);
cWeight+= cur;
break;
}
}
}
//이거 까지하면 결국 끝날때는 마지막트럭이 올라간상태로 끝난다
//그러면 그때의 time + 다리의 길이를 더하면 총시간이나옴
System.out.println(time+w);
}
}
また来ます.シルバー1 Qに再挑戦
Reference
この問題について(白駿13335トラック), 我々は、より多くの情報をここで見つけました https://velog.io/@tekies09/백준-13335-트럭テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol