hani_verse :: aim_higher
article thumbnail

μ•ˆλ…•ν•˜μ„Έμš” aim_higher μž…λ‹ˆλ‹€.

μ½”λ“œν¬μŠ€ Round #839 (Div. 3) μ½”λ“œλ¦¬λ·° 및 μ—…μ†”λΉ™μž…λ‹ˆλ‹€.


A. A+B?

https://codeforces.com/contest/1772/problem/A

  • String(λ¬Έμžμ—΄)

 

{a}+{b}의 λ¬Έμžμ—΄ ν˜•νƒœλ‘œ μž…λ ₯이 λ“€μ–΄μ˜€λ―€λ‘œ,

μ•„μŠ€ν‚€ μ½”λ“œκ°’μΈ a+b에 -'0'μ”© λ‘λ²ˆ ν•΄μ£Όμ‹œλ©΄ 정닡이 λ‚˜μ˜΅λ‹ˆλ‹€.


B. Matrix Rotation

https://codeforces.com/contest/1772/problem/B

  • Implementation(κ΅¬ν˜„)

2x2의 이산적인 μ •μˆ˜λ‘œ κ΅¬μ„±λœ 행렬이 μžˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒ 두 쑰건을 λ§Œμ‘±ν•΄μ•Ό "아름닡닀"라고 ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 - 각 열에 λŒ€ν•΄, 첫번째 μ›μ†Œ < λ‘λ²ˆμ§Έ μ›μ†Œ

 - 각 행에 λŒ€ν•΄, 첫번째 μ›μ†Œ < λ‘λ²ˆμ§Έ μ›μ†Œ

2x2의 ν–‰λ ¬μ˜ μ›μ†Œλ₯Ό μ‹œκ³„λ°©ν–₯으둜 μž¬μ •λ ¬ μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

2x2μ΄λ―€λ‘œ 4개의 경우λ₯Ό νŒλ³„ν•΄λ³΄λ©΄ λ˜κ² μŠ΅λ‹ˆλ‹€.


C. Different Differences

https://codeforces.com/contest/1772/problem/C

  • Constructive(ꡬ성적)

1λΆ€ν„° nκΉŒμ§€ 수 쀑 k개의 μ •μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 강단쑰증가 μˆ˜μ—΄μ„ λ§Œλ“­λ‹ˆλ‹€.

μ΄λ•Œ, [a2 - a1, a3 - a2, ... , ak - ak-1]와 같이 μΈμ ‘ν•œ 수의 μ°¨λ₯Ό uniqueν•˜κ²Œ μ…‰λ‹ˆλ‹€.

μΈμ ‘ν•œ 수의 μ°¨λ₯Ό uniqueν•˜κ²Œ countν•œ μˆ˜κ°€ maxκ°€ λ˜λ„λ‘ ν•˜λ©΄ λ©λ‹ˆλ‹€.


1λΆ€ν„° μ‚¬μš©ν•  수 μžˆμœΌλ―€λ‘œ 각각에 ν…ŒμŠ€νŠΈμΌ€μ΄μŠ€μ— μΌκ΄„μ μœΌλ‘œ 적용될 수 μžˆλŠ” "λͺ¨λ²” μ…‹"이 μžˆμŠ΅λ‹ˆλ‹€.

λ°”λ‘œ [1, 2, 4, 7, 11, 16, 22, 29, 37] μž…λ‹ˆλ‹€.

1λΆ€ν„° μ‹œμž‘ν•˜μ—¬ 인접 수의 μ°¨λ₯Ό 1, 2, 3, ... μ΄λ ‡κ²Œ uniqueν•˜κ²Œ κ°€μ Έκ°€λŠ” 이상적인 μ…‹μž…λ‹ˆλ‹€.

μ΄λŸ¬ν•œ λͺ¨λ²” μ…‹μ—μ„œ μ €ν¬λŠ” 각 ν…ŒμŠ€νŠΈμΌ€μ΄μŠ€μ— ν• λ‹Ήλœ nκ³Ό kλΌλŠ” μ œν•œμ„ κ±Έμ–΄μ€˜μ•Ό ν•©λ‹ˆλ‹€.

 

μš°μ„  각각의 ν…ŒμŠ€νŠΈμΌ€μ΄μŠ€μ— λŒ€ν•΄μ„œ 크기 40짜리의 색칠 κ°€λŠ₯ν•œ 배열을 λ§Œλ“€μ–΄ μ€λ‹ˆλ‹€.

N : μ‚¬μš©ν•  수 μžˆλŠ” μ •μˆ˜μ˜ μ΅œλŒ€ λ²”μœ„

K : 색칠 ν•΄μ•Όν•˜λŠ” 횟수

 

1. μœ„ λͺ¨λ²” μ…‹μ—μ„œ N보닀 큰 κ²½μš°λŠ” λ°°μ œν•˜μ—¬ μƒ‰μΉ ν•΄μ€λ‹ˆλ‹€

break point) λ¬Όλ‘  색칠 횟수 kκ°€ λͺ¨λ‘ 떨어지면 κ·Έλ§Œλ‘‘λ‹ˆλ‹€.

 

2. μœ„ 1λ²ˆμ„ ν†΅κ³Όν•˜κ³  λ„˜μ–΄μ™”λ‹€λ©΄ k - {λͺ¨λ²” μ…‹ 크기}만큼 색칠 νšŸμˆ˜κ°€ λ‚¨μ•˜μ„ κ²λ‹ˆλ‹€.

μ €ν¬λŠ” uniqueν•œ 인접 수의 μ°¨λ₯Ό μ΅œλŒ€ν•œ μžƒκ³  싢지 μ•ŠμœΌλ―€λ‘œ λ§¨λ’€μ—μ„œλΆ€ν„° μ±„μ›Œλ‚˜κ°‘λ‹ˆλ‹€.

μ™œλƒν•˜λ©΄ μ•žμ—μ„œλŠ” μ΄˜μ΄˜ν•˜κ³  λ’€μ—μ„œλŠ” λ„λ„ν•˜λ―€λ‘œ λ’€μ—μ„œλΆ€ν„° μƒ‰μΉ νšŸμˆ˜λ₯Ό μ΅œλŒ€ν•œ λ‹€μ¨λ²„λ¦¬λŠ” 게 μ’‹μŠ΅λ‹ˆλ‹€.

break point) λ¬Όλ‘  μ—¬κΈ°μ„œλ„ 색칠 횟수 kκ°€ λͺ¨λ‘ 떨어지면 κ·Έλ§Œλ‘‘λ‹ˆλ‹€.

 

ν•΄λ‹Ή μˆ˜μ—΄μ„ 좜λ ₯ν•΄μ£Όλ©΄ μ •λ‹΅μž…λ‹ˆλ‹€.


D. Absolute Sorting

https://codeforces.com/contest/1772/problem/D

 

  • Mathematics(μˆ˜ν•™)

μˆ˜μ—΄μ΄ μ£Όμ–΄μ§‘λ‹ˆλ‹€. xλΌλŠ” μ •μˆ˜λ₯Ό μ„ νƒν•˜μ—¬ λͺ¨λ“  μ›μ†Œμ— λŒ€ν•΄ |ai - x|둜 λŒ€μ²΄ν•˜λŠ” μ‹œν–‰μ„ 1회 μ§„ν–‰ν•©λ‹ˆλ‹€.

이 μˆ˜μ—΄μ΄ 단쑰증가 μˆ˜μ—΄μ΄λ©΄ xλ₯Ό 좜λ ₯, λΆˆκ°€λŠ₯ν•˜λ©΄ -1을 좜λ ₯ν•˜λ©΄ λ©λ‹ˆλ‹€.


고등학ꡐ μˆ˜ν•™μ‹œκ°„μ— μ ˆλŒ“κ°’ 가지고 λ°μΉΌμ½”λ§ˆλ‹ˆμ²˜λŸΌ μ ‘μœΌλ©΄μ„œ λ†€λ˜κ²ƒμ΄ κΈ°μ–΅λ‚˜λ„€μš”.

인접 μˆ˜κ°€ μ‹œν–‰ 후에 단쑰증가λ₯Ό μœ μ§€ν•˜λ €λ©΄ λŒ€μΆ© μ€‘κ°„μ μ—μ„œ ν•©μ˜λ³΄κ³  INF(인접 수 κ°„ 관계에 따라 λΆ€ν˜Έ 달라짐)κΉŒμ§€ 날렀보내면 λ κ²λ‹ˆλ‹€.

각 인접관계에 λŒ€ν•΄μ„œ 뢀등식을 μΆ”μΆœν•œ λ’€ μ·¨ν•©ν•˜λ©΄ x의 후보가 λ‚˜μ˜΅λ‹ˆλ‹€.

 

인접 수λ₯Ό λ‘κ°œ μž‘μ•˜μ„ λ•Œ μΌ€μ΄μŠ€λŠ” 총 3κ°œμž…λ‹ˆλ‹€.

a = b : 항상 단쑰증가λ₯Ό μœ μ§€ν•©λ‹ˆλ‹€. λ²”μœ„μ— 영ν–₯을 주지 μ•ŠμŠ΅λ‹ˆλ‹€.

a < b : μ²˜μŒλΆ€ν„° 단쑰증가 μƒνƒœμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ κ³Όν•˜κ²Œ xλ₯Ό λΊ€λ‹€λ©΄ ν•˜κ·Ήμƒμ΄ 일어날 수 μžˆμŠ΅λ‹ˆλ‹€.

λ”°λΌμ„œ xκ°€ λ„ˆλ¬΄ 크면 μ•ˆλ©λ‹ˆλ‹€. xλŠ” 쀑간점보닀 μž‘κ±°λ‚˜ κ°™μœΌλ©΄ λ©λ‹ˆλ‹€.

a > b : 빨리 뒀집어 μ€˜μ•Όκ² λ„€μš”... xλ₯Ό κ³Όκ°ν•˜κ²Œ 크게 μž‘μ•„λ΄…μ‹œλ‹€. xλŠ” 쀑간점보닀 μ»€μ•Όν•˜μ§€λ§Œ κ°™...으면 λ κΉŒμš”?

μ •ν™•νžˆ λ§ν•˜λ©΄ 쀑간점이 μ •μˆ˜λ‘œ λ‚˜λˆ„μ–΄ 떨어지지 μ•Šμ„ λ•Œ(a+b κ°€ ν™€μˆ˜μΌ λ•Œ), κ°€μš°μŠ€λ‘œ μ˜¬λ €μ€˜μ•Ό ν•©λ‹ˆλ‹€.

λ‹€μ‹œ λ§ν•˜λ©΄, a+bκ°€ ν™€μˆ˜μΌ λ•Œ xλŠ” 쀑간점보닀 μ»€μ•Όν•©λ‹ˆλ‹€. 짝수일 λ•ŒλŠ” 같아도 λ¬΄κ΄€ν•©λ‹ˆλ‹€.

 

각 인접관계에 λŒ€ν•΄μ„œ min maxλ₯Ό μ‚¬μš©ν•˜μ—¬ 뢀등식을 κ°±μ‹ ν•΄μ£Όλ©΄

$$ x \leq \alpha, x \geq\beta $$

ν˜•νƒœλ‘œ λ‚˜μ˜΅λ‹ˆλ‹€.

닡을 μ—¬λŸ¬κ°œκ°€ 될 수 μžˆμœΌλ‹ˆ, 후보가 μžˆλ‹€λ©΄ xλ₯Ό κ΅¬ν•˜κ³  μ•ˆλ˜λ©΄ -1을 좜λ ₯ν•˜λ©΄ λ©λ‹ˆλ‹€.

profile

hani_verse :: aim_higher

@aim_higher

ν¬μŠ€νŒ…μ΄ μ’‹μ•˜λ‹€λ©΄ "μ’‹μ•„μš”β€οΈ" λ˜λŠ” "κ΅¬λ…πŸ‘πŸ»" ν•΄μ£Όμ„Έμš”!