-
Notifications
You must be signed in to change notification settings - Fork 0
ABC lessons learned2
ABC 6,8ๅไฝๅถ(126..ๆๆฐ)ใฎDๅ้กใใ ใใใ่งฃใใใฎใงใใใใใๅพใๆ่จใใพใจใใฆใใใพใใ
ใณใผใใฏใใกใ
ใในใ้ ็นใใฟใชใใฆใใใใในใใไปใฎใในใธใฎๆ็ญ่ท้ขใๆฑใใใ126-DใจๅๆงใซBFSใงๆฑใพใใๆจใงใฏใชใใฎใงใๆข็ฅใฎๆ็ญ่ท้ขใงใฏใชใใในใฏ็งปๅใใชใ(็งปๅใใใจ็ก้ใซใผใใซใชใ)ใ
ใณใผใใฏใใกใ
Nใ200000ใจ่ชญใใงใใใใใๆข็ดขใใใใๆฐใไธใใๆนใๆฉใๅฎ่ฃ ใงใใใใจๅใฅใใ
ๅ
้ ญใจๆซๅฐพใฎ็ตใฏ9x9=81้ใใใใชใใฎใงใ
ใณใผใใฏใใกใ
ไธๆใ็ถๆ ้ท็งปใใพใจใใใฐใ็ถๆ ๆฐใๆๆฐใซใชใใฎใ้ฒใใใ
ใขใณในใฟใผใใฉใใใ้ ็ชใงๆปๆใใฆใใไฝๅใ0ใซใชใใพใงใฎไฝๅใฎๆธใๆนใฏๅใใใจใใใใจใ้่ฆใงใใใใใฃใฆไฝๅใฎๆธใๆนใฎ็ต่ทฏใฏไธ้ใใ ใ(2ใง็นฐใ่ฟใๅฒใ)ใงใใใไฝๅใฎใขใณในใฟใผใไฝไฝใใใใ ใๆฐใใใฐๆปๆๅๆฐใซใชใใ
ใณใผใใฏใใกใ
Greedyใ ใจๆใฃใใDPใ ใฃใใ
ใจใใใใจใงDPใง่งฃใใใใฎใจใใ
ใณใผใใฏใใกใ
ๆๅพ ๅคใฎๅ ๆณๆงใไฝฟใใ
้ฃๆฅใใKๅใฎใตใคใณใญใจใใใฎใงใใตใคใณใญKๅใฎๆๅพ ๅคใฏใใตใคใณใญใ1ๅๅ ใใฆK+1ๅใซใชใฃใใใๆๅพใซๅ ใใใตใคใณใญใฎๆๅพ ๅคใๆธใใใๆๅพ ๅคใฎๅ ๆณๆงใใใใใๆใ็ซใคใ็งปๅๅนณๅใฎๆฑใๆนใจไธ็ทใงใใใ
ใณใผใใฏใใกใ
ๅฐใฃใใไบๅๆข็ดขใ
ไบๆฐใๆธใใ็ตๆใใๆญฃใใผใญใ่ฒ ใฎไธ้ใใซๅใใฆใ
ใณใผใใฏใใกใ
ไบ้ ๅฎ็ใซๅฏพใใๅบๆฌ็ใช็ฅ่ญใๅใใใใใใใจใใใชใณใฐใฎไฝฟใใฉใใใงใใใ
Nใใ0..N้ใ้ธใถ็ตใฟๅใใใฎ็ทๅใฏ
nใ
ใใใพใงใใใ
ใณใผใใฏใใกใ
Union-findๆจใ็ฅใฃใฆใใใจ่งฃใใใ็ฅใใชใใจ่งฃใใชใใๅฎ่ฃ ใๅคงๅคใชๅ้กใงใใใ
ๅ้ใฎๅ้ใฏๅ้ใจใใๆจ็งป้ขไฟใฏใๅ้้ขไฟใใฐใฉใใง่กจ็พใใๆใฎ้ฃ็ตๆๅใงใใใใชใฎใงใใใใใฎ้ฃ็ตๆๅใฎ้ ็นๆฐใใใๆขใซๅ้ใงใใ้ขไฟใฎๆฐใจใ ๅใ้ฃ็ตๆๅใง ใใญใใฏใใฆใใ้ขไฟใฎๆฐใๅผใใ็ฐใชใ้ฃ็ตๆๅใงใใญใใฏใใฆใใ้ขไฟใฏใๅ้ใฎๅ้ใฏๅ้ใจใใๆจ็งป้ขไฟใฏๆใ็ซใใชใใฎใงๅผใใชใใ
ใณใผใใฏใใกใ
ใณใฌใฏใทใงใณใๅ่ปขใใใฎใฏใณในใใ้ซใใใๅ่ปขใใใจใฟใชใใฎใใฉใฐ1ๅๆธใๆใใใ ใใงใใใๆๅ ใฎๅใซๅฏพใใฆใ
- ๆๅ ใฎๅใๅ่ปขใใฆใใชใใจใใซๅ ้ ญใซ่ฟฝๅ ใใใฎใฏใๅใฎๅ ้ ญใซ่ฟฝๅ ใใ
- ๆๅ ใฎๅใๅ่ปขใใฆใใชใใจใใซๆซๅฐพใซ่ฟฝๅ ใใใฎใฏใๅใฎๆซๅฐพใซ่ฟฝๅ ใใ
- ๆๅ ใฎๅใๅ่ปขใใฆใใใจใใซๅ ้ ญใซ่ฟฝๅ ใใใฎใฏใๅใฎๆซๅฐพใซ่ฟฝๅ ใใ
- ๆๅ ใฎๅใๅ่ปขใใฆใใใจใใซๆซๅฐพใซ่ฟฝๅ ใใใฎใฏใๅใฎๅ ้ ญใซ่ฟฝๅ ใใ
ๅ่ปขใใฆใใใๅฆใใๅ ้ ญใจๆซๅฐพใฎใฉใกใใซ่ฟฝๅ ใใใ ifๆใง4้ใใซๅใใฆใใใใใxorใๅใฃใฆ2้ใใซใพใจใใฆใใใใ
ใณใผใใฏใใกใ
ๅ จ้จใฎ็ตใฟๅใใใฎๅๆฐใๆใใฆใใใใใ็จฎใฎ็ตใฟๅใใใฎๅๆฐใๅผใใ
ๆดๆฐ
ๅพใฏใใผใซใไธๅ (
ใณใผใใฏใใกใ
ๅ ฅๅใตใคใบใใ่จ็ฎ้ใ่ฆๅใใใจใๅคงไบใงใใใ
้ ็นใฎไฝ็ฝฎใใXใใๅณใX-Y้ใYใใๅทฆใซๅ ดๅๅใใใฆ่งฃใใจใจใฆใใใใฉใใใใBFSใง่ท้ขใๆฑใใใจ็ฐกๅใงใใใใใใใใจใใฏ
่พบใฎ้ทใใๅบๅฎใฎใจใใซBFSใง่ท้ขใๆฑใใๆนๆณใฏๆขๅบใชใฎใง็็ฅใใใ
ใณใผใใฏใใกใ
std::vector::resize()
ใไฝฟใ
ๅ้กๆใใ X<A, Y<B ใชใฎใงๅ ดๅๅใใๆธใใใใ็ก่ฒใฎใชใณใดใ่ฃๅ
ใใชใใใฐใชใใชใ็ถๆณใฏใชใใ็ฝฎใๆใใใ ใใงใใใใจใๅใใใใชใณใดใ่ฒๅฅใซใ็พๅณใใใฎ้้ ใซใฝใผใใใฆใ่ตคใใชใณใดใฏๅ
ใ
std::vector::resize()
ใฏไฝๅใช่ฆ็ด ใๅใๆจใฆใใฎใงไพฟๅฉใงใใใ
็ฝฎใๆใใใชใๆใใใใใใชใ่ตคใจ็ทใฎใชใณใดใใๆใ็พๅณใใใชใณใดใซ็ฝฎใๆใใใฐใใใ ใใใใใใฏๅฐบๅใๆณใงใงใใใ่ตคใจ็ทใฎใชใณใดใใในใฆ็ฝฎใๆใ็ตใใฃใใใใใงใใใใจใฏใชใ(ใใฃใจ็พๅณใใ็ก่ฒใฎใชใณใดใซ็ฝฎใๆใใใฏใใ ใใ)ใฎใงใๅฐบๅใๆณใฎใคใณใใใฏในใซๆฐใไปใใใ
ใณใผใใฏใใกใ
ใใใ 160-Dใจๅๆงใซใๅ ฅๅใตใคใบใใ่จ็ฎ้ใ่ฆๅใใใจใๅคงไบใงใใใ
ๅๅธฐใจใกใขๅใงๅใใใ็ตใฟๅใใใ็ดฏ่จใใใจใใใฉใใใใใงใใใใใใ10้ฒๆฐ5ๆกใใใชใใฎใ ใใใไธใฎๆกใซไธใฎๆก(0ใซใฏ0ใจ1ใ9ใซใฏ8ใจ9ใใใไปฅๅคใฎ
ใณใผใใฏใใกใ
ใใใ 160-D, 161-Dใจๅๆงใซใๅ ฅๅใตใคใบใใ่จ็ฎ้ใ่ฆๅใใใจใๅคงไบใงใใใ้ ๅใฎๆทปใๅญใใฏใฟๅบใใชใใใใซๅ จๆข็ดขใใใฐใใใ
ใณใผใใฏใใกใ
ๅทจๅคงใชๆฐ
ใใใใใใใใฐใ
- ๅใฎๆๅฐๅคใฏไฝใ้ธใฐใชใ0ใๆๅคงๅคใฏๅ
จ้จ้ธใถ
$sum(i=0..{N})$ ใงใใใ -
$s = sum(i=0..{K-1})$ ใๆๅฐๅคใชใฎใงใใใใใๅฐใใๆฐ$S$ ๅใฏๅใซใชใใใชใใ - ่ถณใๆฐใใใใใ
$N-i$ ใจใใใฐๅทฆๅณๅ่ปขใใฆใ$sum(i=0..{N})$ ใพใงใฎ$S$ ๅใฏๅใซใชใใใชใใ - ใใไปฅๅคใฎๅใฏ่กจ็พๅฏ่ฝใงใใ(ๅใซใใๆฐใฎ้ๅใซๅฏพใใฆใใใๆฐใจใใใใ1ๅคใๆฐใไบคๆใใใฐใใใใใฎใใใชๆฐใฏๅฟ ใใฟใคใใ)
ใณใผใใฏใใกใ
- ้ๅๆฌใฎใ8.6 ๆๅญๅใฎใใใทใฅใๅ้ก A56ใ็ฅใฃใฆใใใจ่งฃใใ
- ็ดฏ็ฉๅใใ้จๅๅใฎ็ทๅใๅใๆนๆณใไฝฟใใ
ๆๅญๅใใ้จๅๆๅญๅใๅใฃใฆใใใจใใซใ้จๅๆๅญๅใใๅพใใใใใใทใฅใฎใใใชๆ
ๅ ฑใๅพใใใใๆฐใ2019ใงๅฒใใใใฉใใใฏใ2019ใฎใในใฆใฎ็ด ๅ ๆฐ(3ใจ673)ใงๅฒใใใใฉใใใจๅใใงใใใใคใพใ3ใงๅฒใฃใไฝใใจ673ใงๅฒใฃใไฝใใใๆๅญๅใฎๆซๅฐพใใๅ
้ ญใซๅใใฃใฆๅใฃใฆใใใ่ชฌๆใฎ้ฝๅไธใๆๅญๅใ std::reverse
ใง้้ ใซใใฆๆใไธใฎๆกใๆๅญๅใฎๅ
้ ญใจใใใ
...abcdef ใจๆกใใใใใใใๆดๆฐใฎใใกใไธไฝ1,2,3...ๆกใ673ใงๅฒใฃใไฝใ(mod 673)ใซใคใใฆ่ใใใ3ใงๅฒใฃใไฝใใๅๆงใงใใใ
- f mod 673ใฏใๅฎ้ใซๅฒใใฐๅใใ
- ef mod 673ใฏใ(e*10 + (f mod 673)) mod 673
- def mod 673ใงๅฒใฃใไฝใใฏใ(d*100 + (ef mod 673)) mod 673
- cdef mod 673ใงๅฒใฃใไฝใใฏใ(c*1000 + (def mod 673)) mod 673
ใใใใฆๆไธไฝใฎๆกใพใงใๆใไธใฎๆกใใ้ฃ็ถใใๆกใ673ใงๅฒใฃใไฝใใ่จ็ฎใงใใใ10, 100, ... ใจ
ๆฌกใซไธใฎๆกใใ้ ใซ0ใซ็ฝฎใๆใใฆใใใ
- ๆๅใฏไฝใ็ฝฎใๆใใชใใใใฎใจใf, ef, def, ... ใ673ใงๅฒใๅใใใใฉใใใฏๆขใซ่ชฟในใฆใใ
- ๆไธไฝใฎๆกใ0ใซ็ฝฎใๆใใใไพใใฐcdefใcde0ใซ็ฝฎใๆใใใcde0ใ673ใงๅฒใๅใใใใฉใใใฏใ
$(cdef - f) : mod : 637 \equiv 0$ ใคใพใ$f$ ใ673ใงๅฒใฃใไฝใใจ$cdef$ ใ673ใงๅฒใฃใไฝใใ็ญใใใจใใใใจใงใใใใใใง f mod 7 ใๅบๅฎใใฆใf mod 7 ใจ็ญใใ f, ef, def, ... ใๆฐใใใฐใ้กๆใฎ็ทๆฐใฎไธ้จใๆฑใพใใ - ไธ่ฌ็ใซใฏใไธใฎๆกใใ้ฃ็ถใใ
$i (\geq 0)$ ๅใฎ0ใ็ฝฎใๆใใใไธiๆก mod 7 ใจ็ญใใ f, ef, def, ... ใๆฐใใใฐใ้กๆใฎ็ทๆฐใๆฑใพใใไธiๆกใฎๅคใฏๅๆๅคใ0ใจใใ$i$ ใๆดๆฐใใใใจใซ$10^{i}$ * iๆก็ฎใฎๆฐๅญ mod 673 ใ่ถณใใ - f, ef, def, ... mod 673 ใจ f, ef, def, ... mod 3 ใใใ f, ef, def, ... mod 2019 ใๆฑใพใใใใใฏ
$i$ ใจ้ขไฟใชใใฎใงใmod 2019ใใญใผใจใใฆ่ฉฒๅฝใใไฝใใฎๅบ็พๅๆฐใไธๅบฆๆฐใใฆ้ฃๆณ้ ๅใซไฟๅญใใฆใใใ
ใใฎ่ใๆนใฏใ้จๅๅใฎ็ทๅใๆฑใใใฎใซ็ดฏ็ฉๅใไฝฟใๆนๆณใจใใไผผใฆใใใๅใไฝใใซ็ฝฎใๆใใใ ใใชใฎใงใ
Mod 3ใจmod 673ใฏACLใไฝฟใใจๆธใใใใใ
#include <atcoder/all>
using ModInt3 = atcoder::static_modint<3>;
using ModInt673 = atcoder::static_modint<673>;
ใณใผใใฏใใกใ
ใณใผใใฏใใกใ
็ด่ฆณ็ใซใฏใAใๅขใใใปใฉBใงๅฒใฃใไฝใใๆบใพใฃใฆใใฃใฆใBใซใชใใจไฝใใ0ใซๆปใใใจใใใใจใงใใใ
ใณใผใใฏใใกใ
ไธๆฌกไปฅไธใฎๅค้ ๅผใฎๅ้กใฏใnๆกๆ นใๅใใจๅคๆฐใฎๅใ้ ๅใใใใปใฉๅคงใใใชใใฎใง็ทๅฝใใใงใใใ
็ดๆฐใๆฑใใใฏ้ ปๅบใชใฎใงใณใผใในใใใใใๆธใใฆใใใๅนณๆนๆฐใฎ็ดๆฐใไบๅบฆๆฐใใฆใใพใใใกใงใใใ
ใณใผใใฏใใกใ
็ตถๅฏพๅคใฏ้ ๅบใๅบๅฎใใใฐๅคใใใ
็ตใฟๅใใใๅๆใใใฎใงใไธ่ฌๆงใๅคฑใใ
้กๆใใ
ๅฎ้ใงใใใฎใงใใใ
ใณใผใใฏใใกใ
้จๅฑ1ใใไปใฎ้จๅฑใฎ่ท้ขใBFSใงๆฑใใใๆนๆณใฏๆขๅบใฎ้ใใ
ใณใผใใฏใใกใ
็ด ๅ ๆฐๅ่งฃใใฆใ็ด ๆฐpใง1ๅใ2ๅใ3ๅ... ๅฒใฃใฆใฟใใ็ด ๅ ๆฐใจใใฎๆฐใใณใผใในใใใใใๆธใใฆใใใ
ใณใผใใฏใใกใ
ไปปๆใฎ็ตใฟๅใใใๆฐใไธใใใฎใซใใฝใผใใใฆใไธ่ฌๆงใๅคฑใใชใใ ใใใใ
ๅฐใใชๆฐใงใใใใๅคงใใชๆฐใๅฒใใใจใฏใงใใชใใใใฃใฆๆ้ ใซใฝใผใใใฆใ่ชๅใใๅคงใใชๆฐใงๅฒใๅใใใใฉใใ็ขบใใใใใใฎใพใพๅฎ่ฃ
ใใใจ
ใชใๅใๅคใฎๆฐใ่คๆฐใใๅ ดๅใฏไบใใซๅฒใๅใใใฎใงใ็ญใใฎๅๆฐใซใฏๅซใใชใใ
ใณใผใใฏใใกใ
่ฆ็ด ใไฝๅใใใใฏๆฐใซใใชใใ
ใชใฎใง
ใณใผใใฏใใกใ
Aใใใไฝๅ่ชญใใๆฑบใใใใBใใๆๅคงไฝๅ่ชญใใใฏไธๆใซๆฑบใพใใฎใงใๅฐบๅใๆณใงๆฑใพใใ
ใณใผใใฏใใกใ
็ธฆใฎ็ฉใๆจชใซใใใ
ใใๆฐใซ็ดๆฐใไฝๅใใใใ่ชฟในใใฎใฏๅคงๅคใงใใใใใใ
ใณใผใใฏใใกใ
ใใใใๆฉใใใใๆใๅใใใฆ่ฉฆใใๆนใๆฉใใ
ๆๅพใฎไธไบบใฏ่ชฐใใซใจใฃใฆๅฟๅฐใใใฏไธใใชใใฎใงใใใฌใณใใชใผใใๆๅคงใฎไบบใใ้้ ๅฐ็ใใใฎใใใใจๅใใใใฉใใซๅ ฅใใใใงใใใใNใๅๅๅคงใใใจใใใใฌใณใใชใผใใไธไฝไบๅใฎ้ใซๅ ฅใใใฐใใใฎๅฟๅฐใใใๆๅฐใซใชใใใคใพใ N, N-1, N-1, N-2, N-2, ... ใจใชใใ
ใณใผใใฏใใกใ
ใณใผใใฏใใกใ
้ธๆ่ขใไบใคใใใใ็ๆนใใใใฐใใ็ๆนใฏ่ฆใใชใใจใใใใจใใใใ
RWใฎไธฆใณใฏใใใWRใฎไธฆใณใฏใใใชใใฎใงใWRใๆธใใใฐใใใใชใใฐRใ ใๅทฆใซใใใฃใจไธฆในใฆใWใ ใๅณใซใใใฃใจไธฆใถใใใWใๅณใซๅฏใใใฐใใใจๅใใใใคใพใๆๅทฆใฎWใจๆๅณใฎRๅ ฅใๆฟใใใฐใใใใใฎๅๆฐใๆฑใใใใใใฏๅฐบๅใๆณใงใงใใใฎใง O(N)ใง่งฃใใใ
็ณใๅ ฅใๆฟใใใฐ็ฝใใฏ1ใพใใฏ2ๆธใใใใใใใใชใใใ็ณใฎ่ฒใๅคใใฆใ1ใใๆธใใชใใฎใงใ็ณใฎ่ฒใๅคใใๆๅณใฏใชใใ
ใณใผใใฏใใกใ
่งฃใฎๆน้ใฏ็ซใคใใๅฎ่ฃ ใ้ๅธธใซ่พใใ
ใพใ็ถๆ ้ท็งปใใซใผใๆๅใซๅ่งฃใใใDFSใงใใใใใใ ใใunion-findๆจใฎไปฃ่กจๅ ใไฝฟใใจ็ฐกๅใงใใใใใใใใฎใซใผใๆๅใใจใซในใณใขใๆฑใใฆใใใฎๆๅคงๅคใ็ญใใงใใใ
ๅ้กใฏในใณใขใฎๆฑใๆนใงใใใไธๅจใใใจในใณใขใๆญฃใฎๅคใซใชใใชใใใงใใใ ใใใใใๅจๅใใใใใใงใใใงใชใใใฐไธๅจใใชใใใฐใใใไธๅจใซๆบใใชใๅ ดๅใฎในใณใขใฏ่ตท็นใ็ต็นใฎ็ตใ็ทๅฝใใใใฆ
ใจๆธใใจ็ฐกๅใซ่ฆใใใใWAใใชใใใใซๅฎ่ฃ ใใใฎใใใฎใใใๅคงๅคใงใใใไบๅจๅใฎในใณใขใฎ็ดฏ็ฉๅใๆฑใใฆใใในใฆใฎ่ตท็นใจ้ทใใ็ทๅฝใใใใใฐใใใฏใใชใฎใ ใใใใใ ใใงใฏใฉใใใฆใWAใๅใๅใใชใใ
ใณใผใใฏใใกใ
ๆฎ้ใซBFSใง่งฃใใใ
ใจใๅ ฌๅผ่งฃ่ชฌใซๆธใใฆใใใใใใใใใฎๆนใๅฎ่ฃ ใ็ฐกๅใชใฎใ ใใใ็งใฎ่งฃใๆนใฏๅฐใๅใใใฉใใไปฅไธใฎ้ใใงใใใ
- ใในใฆใฎใในใใใฏใผใใชใใง่กใใ็ฏๅฒใง้ฃ็ตๆๅๅ่งฃใใใUnion-findๆจใไฝฟใใจใงใใใ
- ้ฃ็ตๆๅใ้ ็นใใฏใผใใง่กใใ้ฃ็ตๆๅใ่พบใจใใใฐใฉใใๆงๆใใใ้ ็น็ชๅทใฏ้ฃ็ตๆๅใฎไปฃ่กจๅ ( $x + y * 1000 $ ใงใใ)ใใฏใผใใง่กใใใใฉใใใฏๅ้ ็นใใ25้ใ่ฉฆใใฐใใใๅไธ้ฃ็ตๆๅๅๅฃซใ่พบใงใคใชใใชใใใใซๆณจๆใใใ
- ใใฎใฐใฉใใซใคใใฆใๅบ็บ็นใฎ้ฃ็ตๆๅใใ็ฎ็ๅฐใฎ้ฃ็ตๆๅใพใงใซ็ต็ฑใใใๆ็ญ่ท้ขใคใพใๆๅฐใฎ่พบใฎๆฐใBFSใงๆฑใใใๅฐ้ไธๅฏ่ฝใชใ่ท้ขใฏ็ก้ๅคงใงใใใ
ๅค้่พบใไฝใใชใใใใฐใฉใใฏ std::map<Num, std::set<Num>>
ใซใใใใ้ ็นใใๅปถใณใ่พบใฏ edges[current]
ใงๅใๅบใใ edges.at(current)
ใ ใจใ่พบใใชใใจใใซไพๅคใ้ฃใใงใใญใปในใ็ตไบใใฆใใพใใ
ใณใผใใฏใใกใใ
ใฐใซใผใๅใใจใใใฐunion-findๆจใงใใใ
ๅ้ใฎๅ้ใฏๅ้ใจใใๆจ็งป้ขไฟใฏ้ฃ็ตๆๅใซๅ่งฃใงใใใใใใใใฉใใฉใซใใใซใฏใ้ฃ็ตๆๅใฎๆฐใ ใใฐใซใผใใไฝใฃใฆใ็ใช้ฃ็ตๆๅใฎไบบใใใใใใฎใฐใซใผใใซ้ใใใฐใใใใใฃใฆๆๅฐใฎใฐใซใผใๆฐใฏๆๅคงใฎ้ฃ็ตๆๅใฎ่ฆ็ด ๆฐใงใใใใใใฏๆฐใไปใใชใใฃใใ
ๅฝๆใฏ่ชๅใงๅฎ่ฃ ใใUnion-findๆจใไฝฟใฃใฆใใใไปใฏACLใไฝฟใฃใฆใใใ
ใณใผใใฏใใกใ
็จ่ชใฎๅฎ็พฉใ่ฝใก็ใใฆ็่งฃใใใฐๅใใใ
Pairwise coprime ใชใๅฟ
ใ setwise coprime ใ ใ้ใฏๆใ็ซใใชใใฎใงใ pairwise coprime ใงใฏใชใไพใไธใคใงใใฟใคใใใ setwise coprime ใจๅบๅใใใใใงใชใใใฐ pairwise coprime ใงใใใใใใฏ
ใณใผใใฏใใกใ
DFS(ๅน ๅชๅ ๆข็ดข)ใฏในใฟใใฏใฎๆทฑใใซๆณจๆใใใฐใใใใซๅๅธฐใงๆธใใใ
ๆฐๅใฏ้ ๅบใ็ฐใชใใฐ้ใใใฎใจๆฐใใใฎใงใ3ไปฅไธใฎๆฐใ
ใณใผใใฏใใกใ
45ๅบฆๅ่ปขใ
ใใใๅผๅคๅฝขใใใชใใฆใ็ด่ฆณ็ใซ็่งฃใใๆนๆณใใใใxใๅทฆใyใไธใซๅขใใๅบงๆจ็ณปใงใx+y็ญ้ซ็ทใฏๅทฆไธ-ๅณไธ้ขไฟใใจใใใx-y็ญ้ซ็ทใฏๅณไธ-ๅทฆไธ้ขไฟใๆใใใจๆใใฐใไบ็นใฎใใณใใใฟใณ่ท้ขใฏใไบ็นใซใใใ็ญ้ซ็ทใฎๅทฎใฎๅคงใใๆนใจไธ่ดใใใ
ใณใผใใฏใใกใ
่ฒฐใDPใง่งฃใใ
้
ใDPใงใ่งฃใใใใใ ใใ่ฒฐใDPใง่งฃใใใใพใๅบ้ใ
- ๅบ้ใฎ็ตใใ
$i - R < 1$ ใชใใใใ - ใใใงใชใใใฐๅบ้
$\lbrack max(1, i-L), i-R \rbrack$ ใฎใในใซ่กใๆนๆณใๅ จ้จ่ถณใ
ๅบ้ใซใใ่ฒฐใใในใซ่กใๆนๆณใ็ดฏ็ฉๅใง็ฎก็ใใใฐใๅบ้ใฏ10ไปฅไธใชใฎใง่จ็ฎ้ใฏ
ใณใผใใฏใใกใ
ๅณๅฏ่งฃใๆฑใใใใใ้ณฉใฎๅทฃๅ็ใง่งฃใใ
ไฝใใฏ
- ๅจๆใซๅ ฅใๅ
- ๅจๆใ็นฐใ่ฟใ
- ๅจๆใฎ้ไธญใง
$n$ ใซ้ใใ
ใซใคใใฆๅใๆฑใใใใใ ใๅจๆใซๅ
ฅใๅใซ
ใณใผใใฏใใกใ
ใธใ ใซ้ใใจๅผทใใใฉใๅคใใใใฏไปใฎๅผทใใจไป้ใใธใ ใ ใใงๆฑบใพใใใใใพใงใฉใ้ใใใใซใฏ้ขไฟใชใใใใใใใซใณใๆงใจใใใ
ใชใฎใงไธกๆนใฎใธใ ใซ้ใฃใใจใใฆๅผทใใไฝใใชใๆนใ้ธในใฐใใใๅผฑใใใกใฏๅผทใใAๅใซใใใใฎๅพใฏBๅขใใใจใใใใใ ใใใใใพใง่ๅฏใใชใใฆใ่งฃใใใ
ใณใผใใฏใใกใ
็ฎๆฐ็ใชๆนๆณใง่งฃใใใNใๅคงใใใฎใงใ้ ๅใๆฐใไธใใใจTLEใใใ
็ฎๆฐ็ใชๆนๆณใฏใๆฐๅญใใใๆใใซ็ตใฟๅใใใใจใไธใใ3ๆก็ฎใๅถๆฐใๅฅๆฐใใจใไธใใ1,2ๆก็ฎใฎ็ตใไฝฟใฃใฆ8ใฎๅๆฐใซใชใใใฉใใ่ชฟในใใ่ฆใฏ000, 008, ..., 192 ใใฉใใ่ชฟในใใ้้ใ็กใใใณใผใ้ใๅคงใใใ
ๅฎใฏไธไธๆกใๆฑใใๆนใ็ฐกๅใงใใใใใกใใฎ่จไบใๅ็ งใ
ใณใผใใฏใใกใ
ๆฐๅญฆ็่ๅฏใๅฟ ่ฆใ
่งฃใๆบใใ็ตใฏใๅฐใใๅคใใ้ ใซไบใคใใคๅใใใงใใใๆใๅคงใใๅคใจๆใๅฐใใๅคใ็ตใใใงใฏใชใใใใฎๅๆใ้้ใฃใฆใใใจใฉใใซใใชใใชใใใใใๅใใใฐ็ดฏ็ฉๅใใคใใฃใฆ่จ็ฎ้ใๆธใใใใ
ใณใผใใฏใใกใ
ๅ้กใใใ่ชญใๅฟ
่ฆใใใใๅใใใฆใใใฎใฏๆๅคง็ฌ้ๅบงๆจใงใใฃใฆใ
็ดฏ็ฉๅใ็ดฏ็ฉใใใฎใฏ้ ญใใใใใใใใใใณใผใใซ่ฝใจใ่พผใใฐใใฎใพใพใงใใใ
- ๅบ็บ็น(ๅณๅดใซใใ่กใใชใๅ ดๅ)
-
$A_i$ ใ ใ้ฒใพใใซ่กใใๅ ดๆ(ใใใพใงใฎๆๅคง็ฌ้ๅบงๆจ) -
$A_i$ ้ฒใใใจใงๅใใฆ่กใใๆๅคง็ฌ้ๅบงๆจ
ใใฎๅพใไฝ็ฝฎใซ็ดฏ็ฉๅใจ
ใณใผใใฏใใกใ
ๅธฐ็ดๆณใ็ธฆๆจชใ็ฌ็ซใชๅ้กใจใใฆ่ใใใ
็ธฆๆนๅใซๅ ใๅฑใใใจใๆจชๆนๅใซๅ ใๅฑใใฏ็ฌ็ซใชใฎใงๅฅใ ใซ่ใใใๅ ฌๅผ่งฃ่ชฌใซใใ้ใใใใงใซๅ ใๅฝใใฃใฆใใใในใฏใใฎ้ฃใใใฃใฆใใใใจใๅฉ็จใใฆ่จ็ฎ้ใๆธใใใใ
ใณใผใใฏใใกใ
ใใใๆณ(Imos method)ใไฝฟใใ
NใจSใจTใๅคงใใใฎใงใใในใฆใฎๆดๆฐๆๅปใซใคใใฆใๆนฏใฎ้ใๆฑใใใจTLEใใใใ ใๅคๅ็นใ ใใใฎ็ดฏ็ฉๅใๆฑใใใใจใงใ่จ็ฎ้ใ
- S, T, P ใๅพใฆใๅ ฅใใฎๅคๅ็นSใงใๆนฏใฎ้ใ +P, ๅบใฎๅคๅ็นTใงใๆนฏใฎ้ใ -P ใใใคใใณใใไฝใ
- ใคใใณใใๆๅปใฎๆ้ ใซไธฆในๆฟใใ
- ๅไธๆๅปใฎใคใใณใใซใคใใฆใๆนฏใฎ้ใใพใจใใ
- ใใๆๅปใฎใๆนฏใฎ้ใๅฎน้Wใ่ถ ใใฆใใไพ็ตฆไธ่ฝใใใใงใชใใใฐไพ็ตฆๅฏ่ฝใงใใ
ใณใผใใฏใใกใ
็ขบ็DPใจๅผใฐใใใ
ๆๅพ ๅคใฎๅ ๆณๆงใใใๅๅฒ็นใฎใใฎๅ ใซ่กใ็ขบ็ใ้ๆฌก็ใซๆฑใใใDPใฎๆดๆฐๅผใฏๆกไปถไปใ็ขบ็ใใฎใใฎ(A,B,CๆใใใจใใซA,B,Cใไธๆๅผใ็ขบ็ใฏA:B:C)ใงใใใ็งใฎ่งฃๆณใฏๅบ็บ็น(A,B,Cๆ)ใใ้ ใDPใๅ ฌๅผ่งฃ่ชฌใฏ็ต็็น(ใใใใใฎ็กฌ่ฒจใ100ๆ)ใใใกใขๅๅๅธฐใงๅฎ่ฃ ใใฆใใใ
ใณใผใใฏใใกใ
ๅ้กๆใๅถ็ดใซ่ฝใจใ่พผใใ
่ตคใใใณใณใ้ใใใณใณใซ้ใชใฃใฆใฏใใใชใใใ่ตคใใใณใณใๆผใๅ ดๆๅๅฃซใ้ใชใฃใฆใใใใใจใใใใจใฏไปฅไธใฎๅถ็ดใซใชใใ
- ้ฃ็ถใใ็ฝใฎใในใฎๆๅฐๅคใใ่ตคใใใณใณใฎ้ทใใฎๆๅคงๅค
$l$ ใซใชใ - ้ฃ็ถใใ็ฝใฎ
$n$ ใในใซๆผใๅๆฐใฏใ$\lfloor l/n \rfloor$ ใงใใ
ใณใผใใฏใใกใ
ใปใฐใกใณใๆจใไฝฟใใ
ๅ ๆณ +
ใจๅๆงใซ XOR ใใปใฐใกใณใๆจใซ่ผใใใใใ่ชๅใงๅฎ่ฃ
ใใใปใฐใกใณใๆจใไฝฟใฃใใใACLใไฝฟใฃใฆใใใใ
ใณใผใใฏใใกใ
็ตถๅฏพๅคใใใใจไธๆใๅคใใพใจใใใใชใใฎใงใ็ตถๅฏพๅคใๅคใใ
-
$i < j$ ใใค$A_i < A_j$ ใชใใฝใผใใใฆใ$i < j$ ใชใฎใงใ$i,j$ ใฎ็ธๅฏพ็ใชไฝ็ฝฎใฏๅใใ -
$i < j$ ใใค$A_i \geq A_j$ ใชใไฝ็ฝฎใๅ ฅใๆฟใใใฎใงใฝใผใๅใฎ$|A_j - A_i|$ ใ่ถณใใใจใซ็ญใใใใ็ตถๅฏพๅคใชใฎใงๅคใฏๅคใใใชใ
่จ็ฎ้ใๆธใใใใใซ็ดฏ็ฉๅใๅใใใใ่ฆ็ด ใฎๅทฎใ ใใซๆๅณใใใใฎใงใๆๅฐๅคใ0ใซใใฆใๅใใงใใใใใฃใฆ
ไบ้
ใณใผใใฏใใกใ
ๅคๆฐๆฑบใฏใๅพ็ฅจๆฐใงใฏใชใใๅพ็ฅจๆฐใฎๅทฎใง่ใใใ
ๅพ็ฅจๅทฎใฏๅ
จใๆผ่ชฌใใชใใจใใๆๅฐ(ๆใไธๅฉ)ใงใใใๅพ็ฅจๆฐใฎๅทฎใๅขใใๆนๆณใ่ใใใๆผ่ชฌใใใจ
ใณใผใใฏใใกใ
ใใใๆณใไฝฟใใ
ๆข่ฟฐใฎ้ใๆๅปใใจใฎใคใใณใใไฝใใๅไธๆๅปใฎใคใใณใใใพใจใใใๅพใฏใคใใณใใๆๅป้ ใซใฟใฆใๅใฎใคใใณใใใใฎๆ้ใซใคใใฆใ1ๆฅใใใใใฉใคใ ๆ้ใๆๅคงใจใใฆๆฏๆใใฐใใใ
ใณใผใใฏใใกใ
DAGใงใใใ
ใจใใใใจใงใin-degreeใ0ใฎ้ ็นใใ้ ็ชใซๆๅฎๅคใไผๆฌใใใฐใใใใใใญใธใซใซใฝใผใใไฝฟใฃใใใๅ ใ ๅ ฅๅใใใใญใธใซใซใฝใผใๆธใชใฎใ ใใใใฃใจใใฃใใใใ็ทๅฝขๆ้ใฎๅฎ่ฃ ใใใฃใใ
ใณใผใใฏใใกใ
ใฉใณใฌใณใฐในๅง็ธฎใๅฎ่ฃ ใใใใใฎไธใงใใใใๆไฝใฎๆๅณใ่ใใใ
- ใใใๆไฝใฎANDใฏใๅบๅใTrueใซใใใใชใใๅ ฅๅใTrueใซใใใใจๆใใ
- ใใใๆไฝใฎORใฏใๅ ฅๅใใชใใงใใใๅบๅใTrueใซใใใใชใใใใงใใใใจๆใใ
- ใใฎ run ใง
$y_N$ ใTrueใซใใใฎใงใใใไปฅๅใฎ$y$ ใฏไฝใงใใใใ็ตใฟๅใใใฏ$(2^{len-1}) * 2^{pos}$ ้ใ - ใใฎrunใงใฏTrueใซใใใใใไปฅๅใฎ run ใงTrueใซใใใใใฎrunใซใคใใฆใฏๅ จFalseใฎไธ้ใใงใ็ตใฟๅใใใฎๆฐใฏไปฅๅใฎrunใงๆฑบใพใใ
ใฎใงใๅพใใฎrunใใ้ ใซ่ชฟในใฆ็ตใฟๅใใใๅ ็ฎใใฆใใใ
ใณใผใใฏใใกใ
็ญๅทฎๆฐๅใฎๅ ฌๅผใๅ ๆฐๅ่งฃใใใ
็ญๅทฎๆฐๅใฎๅ
ฌๅผ std::set
ใง้่จใใใ
ใณใผใใฏใใกใ
่พบใงใฏใชใ้ ็นใซๆณจ็ฎใใใ
่พบใซๆณจ็ฎใใใจใๅนใฎ้จๅใงไธๆใๅคใๆฑใพใใชใใชใใใใฃใฆ้ ็นใ90ๅบฆๆฒใใ็ฎๆใๆฐใใใใใ็นใฎๅจ่พบ4ใในใซใคใใฆใ็ฝ้ปใฎใในใฎๆฐใ1ใพใใฏ3ใชใใใใง่พบใๆฒใใใจใใใใ
ใณใผใใฏใใกใ
ๆตฎๅๅฐๆฐใง็ฐกๅใซ่งฃใใใจๆใฃใใใ็ฒพๅบฆใซๆณจๆใใใ
XๅบงๆจใๆฑใพใใฐYๅบงๆจใฏไธ่ง้ขๆฐใใๆฑใพใใฎใงใYๅบงๆจใฎไธไธ้ใๅผใใฆ(ไธก็ซฏใๆดๆฐใฎๅ ดๅใซๆณจๆใใ)ๆฐใใใใฎใ ใใๆตฎๅๅฐๆฐใงๅฎ่ฃ ใใใจไธธใ่ชคๅทฎใๅๅ ใงWAใใใๅ้กๆใใใ่ชญใฟ่ฟใใจใ
$|X|,|Y|,|R| \leq 10^5$ - X,Y,R ใฏ้ซใ ๅฐๆฐ็ฌฌ4ไฝใพใงไธใใใใ
ใชใฎใงใ1+52ใใใ็ฒพๅบฆใฎๆตฎๅๅฐๆฐใงใฏ็ฒพๅบฆใ่ถณใใชใใใใใ64-bitใงใฏใฎใชใฎใช็ฒพๅบฆใ่ถณใใใใใฎใใๆตฎๅๅฐๆฐใๅบๅฎๅฐๆฐ(ๆดๆฐ้จx10000+ๆตฎๅๅฐๆฐ้จ)ใจใใฆๆฑใใใใใง10้ฒๆฐ18ๆก(9ๆกใฎไบไน)ใ่ชคๅทฎใชใๆฑใใใจใใงใใใ
ใณใผใใฏใใกใ
็ญใใๆดๆฐ
ๆดๆฐใฎไบๅๆข็ดขใฏใ็ด ๆดใซๅฎ่ฃ ใใใจๅบ้ใ2ไปฅไธใฎใจใใซ็ก้ใซใผใใซ้ฅใใใใใฎใงใใใฟใผใณใ็ขบ็ซใใใ
ใณใผใใฏใใกใ
ใใคใฏในใใฉๆณใงใใใ
่ท้ขใฎๅฎ็พฉใๆๅปใซใใใฐใใใฎใพใพใใคใฏในใใฉๆณใง่งฃใใใBFSใงๆ็ญ่ท้ขใๆฑใใใจใใซๅชๅ ๅบฆใญใฅใผใซ่ฟฝๅ ๆ ๅ ฑใ่ถณใใใใซใ็ฎ็ๅฐใจ็งปๅๆ้(ใใใใ่ท้ข)ใฎไปใซ็บ่ป้้ใใญใฅใผใซ่ผใใใฐใใใ
ใณใผใใฏใใกใ
ๆกไปถไปใ็ขบ็ใฎๅฎ็พฉใใฎใใฎใงใใใใใๆฐๅญใ่กจใซๆธใใใใซใผใใงๅบๅฐฝใใใๅ ดๅใ่ๆ ฎใใใ
ใณใผใใฏใใกใ
็ขบ็ใฎๅ ๆณๆงใใๆใใใ
ใณใผใใฏใใกใ
Binary Indexed Tree (Fenwick Tree) ใไฝฟใฃใฆใฟใใใใใใฏ็ธฆใฎ็ฉใๆจชใซใใใ
ๅ
ฌๅผ่งฃ่ชฌใซใใใฐ
ใณใผใใฏใใกใ
ๅฎ้ไพกๅคใๅคงใใ่ท็ฉใใใใฎ่ท็ฉใๅ
ฅใๆๅฐใฎ็ฎฑใซๅใใใฐใใใใใใงใชใใฆใๅใไพกๅคใฎใใฎใใใฃใจๅคงใใช็ฎฑใซๅ
ฅใใใฎใใๅใๅคงใใใซไพกๅคใไฝใ่ท็ฉใซๅ
ฅใใใฎใๆๅณใใชใ(ไบคๆใใใฐใใ)ใใฏใจใช้ใซไพๅญ้ขไฟใฏใชใใ std::multiset
ใง็ฎฑใ็ฎก็ใใฆ่ท็ฉใฎๅ
ฅใฃใ็ฎฑใๅใ้คใใฐใใใ
ใณใผใใฏใใกใ
C++ใฎๅใงใใๆผใใฆใใพใฃใใ
ๅ็ณใฎ้ใซๅข็็ทใๅผใ/ๅผใใชใใใคใพใๅ็ณใใพใจใใ/ใพใจใใชใใใใใๅ จๆข็ดขใใใจใC++ๅฎ่ฃ ใชใ2็งใๅใใฎใงACใงใใใๅข็็ทใฎๅ ๅดใฎ้ ๅ(ๅ็ณใใคใชใใฃใใใฎใ)ใunion-findๆจใง็ฎก็ใใใไปฅไธใฎ้ใๅ จๆข็ดขใใใ
- ๆๅใฏๅๅ็ณใๅญค็ซใใ้ ๅใจใใ
- ๅข็็ทใๅผใใชใ้ ๅใmergeใใ
- ้ ๅใฎๅคงใใใ2(ไธ็ณ)ใ่ถ ใใใใใฎๅ ดใงๆใกๅใ
- ๆใกๅใใใซไธ้ใๅข็็ทใๅผใ/ๅผใใชใใ็ตใใใใไธ็ณใAๆใๅ็ณใBๆใใใใฉใใๆฐใใ
ใณใผใใฏใใกใ
ใณใผใใฏใใกใ
ใใฏใใซใๅ่ปขใใใใฐๆฑใพใใ
ใณใผใใฏใใกใ
ใชใฎใงๆจใ้ ็น1ใใDFSใใฆใ้ไธญใซใใ่ฒใๆฐใใใฐใใใๆจใชใฎใง่ใซๅใใใจใใซ็ต็ฑใใ้ ็นใฎ่ฒใๅ ใใๆ นใซๅใใใจใใซ้ ็นใฎ่ฒใ้คใใ
ใณใผใใฏใใกใ
้ณฉใฎๅทฃๅ็ใ
้ณฉใฎๅทฃๅ็ใงใใฃใใ่งฃใใใใใใใ็บๆณใ้่ฆใงใใใๅฎ็ณ้ใDFSใจๅๅธฐใงๆฑใใฆใใใใใใในใไฟๅญใใชใใใจใใธใฑใผในใๅฎ่ฃ ใใใฎใ้ฃใใใใณใผใใฏใใกใใ