[JAVA] ABC - 127 - A & B & C.

AtCoder ABC 127 A&B&C&D AtCoder - 127

Ich werde in naher Zukunft zurück sein, um E & F zu lösen.

2019/05/27 B-Code-Fix

A - Ferris Wheel

	private void solveA() {
		int a = nextInt();
		int b = nextInt();

		if (a <= 5) {
			out.println(0);
		} else if (a <= 12) {
			out.println(b / 2);
		} else {
			out.println(b);
		}
	}

B - Algae

	private void solveB() {
		int r = nextInt();
		int d = nextInt();
		int x2000 = nextInt();

		int pre = x2000;
		for (int i = 1; i <= 10; i++) {
			pre = r * pre - d;
			out.println(pre);
		}

	}

C - Prison

4 2 1 3 2 4

Key:1 Key:2 Key:3 Key:4
Gate:1 O O O
Gate:2 O O O
Der Schlüssel, um alles zu öffnen

Ich habe es durch eine Nummer ersetzt.

Key:1 Key:2 Key:3 Key:4
Gate:1 1 1 1
Gate:2 1 1 1
gesamt 1 2 2 1

Ein Schlüssel mit total = Anzahl der Tore kann alle Türen öffnen. Die Imosu-Methode ist schneller für die Verarbeitung, z. B. das Hinzufügen von einem bestimmten Bereich zu einem bestimmten Bereich.

Also werde ich die übliche Referenz-Site-Liste veröffentlichen

		int n = nextInt();
		int m = nextInt();

		//Für Memos, welche Zifferntaste an jedem Tor benötigt wird
		int[] wk = new int[n];

		for (int i = 0; i < m; i++) {
			int l = nextInt() - 1;
			int r = nextInt() - 1;
			wk[l] += 1;
			if (r + 1 < n) {
				wk[r + 1] -= 1;
			}
		}

		//
		for (int i = 1; i < n; i++) {
			wk[i] += wk[i - 1];
		}
		int cnt = 0;
		for (int i = 0; i < n; i++) {
			if (wk[i] == m) {
				cnt++;
			}
		}

		out.println(cnt);

D - Integer Cards

  1. Ordnen Sie A (eingelegte Karten) an (hier in aufsteigender Reihenfolge)
  2. Ordnen Sie B (Anzahl der Blätter) und C (Ganzzahl) in der Reihenfolge C an (absteigende Reihenfolge hier).
  3. Vergleiche mit [B, C] in aufsteigender Reihenfolge von A.
  4. Vergleichen Sie bis zu B Blätter, um festzustellen, ob C größer als A ist, und schreiben Sie A neu, wenn C größer ist
  5. Wiederholen Sie 3-4

――Für Teil 3 wird im Code die folgende Verarbeitung ausgeführt. Dies ist jedoch "Da B und C in absteigender Reihenfolge angeordnet sind, wird der Teil, der einmal mit C umgeschrieben wurde, danach nicht umgeschrieben (wenn er umgeschrieben wird)." C größer als C erscheint nicht) " ――Wenn Sie dies nicht tun, wird Ihnen aufgrund zusätzlicher Verarbeitung die Zeit ausgehen.

 //Es macht keinen Sinn, dieselbe Stelle neu zu schreiben (zu vergleichen), also verschieben Sie den Start
        int start = 0;
	private void solveD() {
		int n = nextInt();
		int m = nextInt();
		long[] a = LongStream.range(0, n).map(i -> nextLong()).toArray();

		//In aufsteigender Reihenfolge sortieren
		Arrays.sort(a);

		int[][] bc = IntStream.range(0, m).collect(() -> new int[m][2],
				(t, i) -> {
					t[i][0] = nextInt();
					t[i][1] = nextInt();
				},
				(t, u) -> {
					Stream.concat(Arrays.stream(t), Arrays.stream(u));
				});

		//Sortieren Sie in absteigender Reihenfolge von C.
		Arrays.sort(bc, (x, y) -> -Integer.compare(x[1], y[1]));
		//Es macht keinen Sinn, dieselbe Stelle neu zu schreiben (zu vergleichen), also verschieben Sie den Start
		int start = 0;
		for (int j = 0; j < m; j++) {
			int max = Integer.min((start + bc[j][0]), n);
			for (int k = start; k < max; k++) {
				if (bc[j][1] > a[k]) {
					//a[i]Ist kleiner wird umgeschrieben
					a[k] = bc[j][1];
					//Vorbereitung für den nächsten Start
					start = k + 1;
				} else {
					//Bereits sortiert, also a[i]Keine Notwendigkeit mehr zu vergleichen, wenn größer ist
					break;
				}
			}

		}
		//gesamt
		long res = Arrays.stream(a).sum();

		out.println(res);
	}

Recommended Posts

ABC - 023 - A & B & C.
ABC - 036-A & B & C.
ABC - 010 - A & B & C.
ABC - 028 - A & B & C.
ABC - 015 - A & B & C.
ABC - 128 - A & B & C.
ABC - 012-A & B & C.
ABC - 018 - A & B & C.
ABC - 054 - A & B & C.
ABC - 029 - A & B & C.
ABC - 022 - A & B & C.
ABC - 020 - A & B & C.
ABC - 030 - A & B & C.
ABC - 127 - A & B & C.
ABC - 007 - A & B & C.
ABC - 132 - A & B & C.
ABC - 026 - A & B & C.
ABC - 014 - A & B & C.
ABC - 016 - A & B & C.
ABC - 011-A & B & C.
ABC - 031 - A & B & C.
ABC - 021 - A & B & C.
ABC - 025 - A & B & C.
ABC - 024 - A & B & C.
ABC - 027 - A & B & C.
ABC - 080 - A & B & C.
ABC - 133 - A & B & C & D.
ABC - 122 - A & B & C & D.
ABC - 125 - A & B & C & D.
ABC - 130 - A & B & C & D.
ABC - 126 - A & B & C & D.
ABC - 134 - A & B & C & D & E.
ABC - 131 - A & B & C & D & E.
diverta 2019 Programmierwettbewerb A & B & C & D.
atcoder ABC113 C Problem
ABC093 C - Gleiche Ganzzahlen
atcoder ABC115 C Problem
AtCoder Anfängerwettbewerb 170 A, B, C bis Rubin
Eine Person, die C ++ schreibt, hat versucht, Java zu schreiben
Machen Sie einen SOAP-Aufruf in C #
Rufen Sie C-Sprachfunktionen von Swift aus auf
NLP4J 100 Sprachverarbeitungsklopfen mit NLP4J # 34 "A B"