Repository navigation
Replies: 2 comments 2 replies
|
我有點不懂為何你會覺得變成一排座位可以解決這個問題, 另外,如果可以窮舉的話,可以試著想看看要怎麼從所有組合中刪除不可能的組合,應該就能得出答案。 |
2 replies
|
我之前似乎是這樣寫的: function solve(lines) {
let n = Number(lines[0])
let m = Number(lines[1])
let ans = 0
let occupied = []
for(let i=2;i<lines.length; i++){
let p = Number(lines[i])
occupied[p] = true
}
for(let i=1; i<n; i+=2) {
if (!occupied[i] && !occupied[i+1]) ans++
}
for(let i=1; i<n-2; i+=2) {
if (!occupied[i] && !occupied[i+2]) ans++
}
for(let i=2; i<=n-2; i+=2) {
if (!occupied[i] && !occupied[i+2]) ans++
}
console.log(ans)
}
|
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
前面幾題答得很順,但這題卡了兩天,看到大家好像都沒問過這題,所以想詢問一下
遇到的困難
我原本想以題目中兩排式座位的方法去解題,但發現會遇到很多限制,可能會遇到中間座位可以有三種座位組合,邊緣座位兩種組合、被佔走的座位相鄰而重疊計算...等問題,窮舉條件的狀況下又會變成沒辦法套用所有情境
今天又想到如果把座位變成一長排的方式,可以計算出「連續座位」數量來解題,的確使用題目中的測資可以答題成功
但想一想又發現會有 bug (像是 6 個座位 1,4,5 被佔走,得出的答案就會是錯的情況)
所以想上來詢問看看是不是有其他我沒有想過的方法
All reactions