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

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

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

A - Apple Pie

	private void solveA() {

		out.println((nextInt() * 3 + nextInt()) / 2);
	}

B - Guidebook

	private void solveB() {
		int n = nextInt();
		String[][] s = new String[n][3];

		for (int i = 0; i < n; i++) {
			s[i][0] = next();
			s[i][1] = next();
			s[i][2] = Integer.toString(i + 1);
		}
		Arrays.sort(s,
				(x, y) -> {
					if (x[0].compareTo(y[0]) < 0) {
						return -1;
					} else if (x[0].compareTo(y[0]) > 0) {
						return 1;
					} else {
						return -Integer.compare(Integer.parseInt(x[1]), Integer.parseInt(y[1]));
					}
				});

		for (int i = 0; i < s.length; i++) {
			out.println(s[i][2]);
		}
	}

C - Switches

--Schalter 1-5, die Anzahl der Schalter, die eingeschaltet sein müssen \ Schalternummer

Glühbirnennummer\Nummer wechseln 1 2 3 4 5
1 0
2 1

Es gibt also so viele Optionen wie $ 2 ^ {Anzahl der Schalter} $

Versuchen Sie insbesondere das folgende Muster ($ 2 ^ {Anzahl der Schalter} $) Am Beispiel von Ausgabebeispiel 3

Muster\Schalter 1 2 3 4 5
1 1 einschalten
Die Glühbirnen 1 und 2 sind aus
2 Schalter 1,2 EIN
Die Glühbirnen 1 und 2 sind eingeschaltet
3 Schalter 1,2,3 EIN
Glühbirne 1 leuchtet. Glühbirne 2 ist AUS
xxx Schalter 1,5 EIN
Glühbirne 1 leuchtet. Glühbirne 2 ist AUS
	private void solveC() {
		int n = nextInt();
		int m = nextInt();
		int[] k = new int[m];

		List<List<Integer>> s = new ArrayList<List<Integer>>();
		for (int i = 0; i < k.length; i++) {
			k[i] = nextInt();
			List<Integer> temp = new ArrayList<Integer>();
			for (int j = 0; j < k[i]; j++) {
				temp.add(nextInt());
			}
			s.add(temp);
		}
		int[] p = IntStream.range(0, m).map(i -> nextInt()).toArray();

		long res = 0;
		for (int i = 0; i < 1 << n; i++) {
			boolean isResult = true;
			for (int j = 0; j < m; j++) {
				//Holen Sie sich die Schaltflächenliste für Glühbirne j
				List<Integer> sList = s.get(j);
				//Ist es gerade oder seltsam, dass die Glühbirne j eingeschaltet sein muss?
				int compareBase = p[j];
				//Wie viele der zum Einschalten der Glühbirne j erforderlichen Tasten sind eingeschaltet?
				int compare = 0;
				for (Integer buttonNum : sList) {
					/*
					 *Suchen Sie die EIN-Taste in der Tastenliste der Glühbirne j
					 * buttonNum - 1 ->Tastennummer(Nach Absprache-1)
					 * (i & (1 << (buttonNum - 1)) ->Befindet sich an der Position der Tastennummer eine Flagge?
					 */
					if ((i & (1 << (buttonNum - 1))) >= 1) {
						compare++;
					}
				}
				//Beurteilen Sie die Anzahl der Quoten und Quoten, bei denen der Knopf eingeschaltet war, und beurteilen Sie, ob die Anforderung der Glühbirne j erfüllt ist.
				if (compareBase != compare % 2) {
					isResult = false;
					break;
				}
			}
			if (isResult) {
				//Bei diesem Muster sind alle Glühbirnen eingeschaltet
				res++;
			}

		}

		out.println(res);
	}

D - equeue

	private void solveD() {
		int n = nextInt();
		int k = nextInt();
		long[] wk = new long[n];
		for (int i = 0; i < n; i++) {
			wk[i] = nextInt();
		}
		long res = 0;
		//Nimm so viel wie möglich von links
		for (int l = 0; l <= k; l++) {
			//Nimm so viel wie möglich von rechts
			for (int r = 0; r <= k; r++) {
				//Unterbrechen Sie, wenn die Anzahl der Operationen k überschreitet
				if (l + r > k) {
					break;
				}

				//Insgesamt zur Hand
				long now = 0;
				List<Long> s = new ArrayList<Long>();
				int pickCount = 0;
				//Fügen Sie nur die Menge hinzu, die Sie von der linken Seite erhalten haben
				for (int i = 0; i < Integer.min(l, n); i++) {
					long tmp = wk[i];
					now += tmp;
					s.add(tmp);
					pickCount++;
				}
				/*
				 *Fügen Sie nur die Menge hinzu, die Sie von der rechten Seite erhalten haben
				 *Ich spiele mit Max auf der rechten Seite
				 * 	-Weil die Anzahl der Operationen (K) größer als N sein kann
				 *  -Es gibt zwei Schleifen, eine von der linken Seite und die andere von der rechten Seite.
				 *Wenn K größer als N ist, kann es dasselbe dauern
				 *Daher werden die ursprüngliche maximale Erfassungsnummer von r und die Erfassungsnummer von l verglichen.
				 *   e.g.K>=Wenn N, l Integer.min(l, n)Und n wird zurückgegeben.
				 */
				for (int i = n - 1; i > Integer.max(n - 1 - r, Integer.min(l, n)); i--) {
					long tmp = wk[i];
					now += tmp;
					s.add(tmp);
					pickCount++;
				}
				//Ordne sie so an, dass du sie nicht brauchst, um die Extras wegzuwerfen
				Collections.sort(s);

				//Die Häufigkeit, mit der Sie zusätzliche Akquisitionen wegwerfen können
				int d = k - pickCount;
				//Sie können nicht mehr als so oft wegwerfen, also brechen Sie
				for (int i = 0; i < Integer.min(d, s.size()); i++) {
					//
					//Wenn der Wert des entfernten Schmuckstücks nicht negativ ist, muss es nicht weggeworfen werden
					if (s.get(i) > 0) {
						break;
					}

					//Wirf Juwelen mit negativem Wert weg
					now -= s.get(i);
				}
				res = Long.max(res, now);
			}
		}
		out.println(res);
	}

Recommended Posts

ABC - 013-A & B & C.
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 - 017 - A & B & C.
ABC - 029 - A & B & C.
ABC - 022 - A & B & C.
ABC - 019 - 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 - 129 - 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 Anfängerwettbewerb 169 A, B, C mit Rubin
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"