求助

P1918 保龄球

map就行了啊/kk
by AlbrecRoon @ 2021-11-16 19:29:04


想开点,也许别人的10行是只放了核心代码呢
by sslwyd @ 2021-11-16 19:33:07


@[我系人间](/user/459829) 数组开大点试试
by wangbinfeng @ 2021-11-16 19:33:21


@[AlbrecRoon](/user/174436) 感谢
by 我系人间 @ 2021-11-16 19:34:32


@[我系人间](/user/459829) ~~输中量,参解改~~
by wangbinfeng @ 2021-11-16 19:39:06


刚才稍微试了一下,打了45行。 思路:先对所有进行位置发球排序,要带着位置,然后对于每个询问,都进行一次二分查找,看能否找到准确打掉x个的位置。 核心代码: inline bool cmp(pz q, pz p) { if (q.sl == p.sl) return q.wz < p.wz; return q.sl < p.sl; } inline int lb(int x) { int l = 1, r = n; while (l < r) { int mid = l + r >> 1; if (a[mid].sl >= x) r = mid; else l = mid + 1; } return r; } int main() { cin >> n; for (int i = 1; i <= n; i ++) { cin >> a[i].sl; a[i].wz = i; } sort(a + 1, a + 1 + n, cmp); cin >> q; for (int i = 1, x; i <= q; i ++) { cin >> x; int ans = lb(x); if (a[ans].sl != x) ans = 0; else ans = a[ans].wz; cout << ans << endl; } return 0; } ```
by sslwyd @ 2021-11-16 19:48:51


@[末日之光—战](/user/374701) 感谢,已经会了,但还是非常感激
by 我系人间 @ 2021-11-16 19:52:22


@[末日之光—战](/user/374701) 没事了,线下辅导他过了。
by wangbinfeng @ 2021-11-16 19:54:24


@[我系人间](/user/459829) flag会超数据大小
by a2021031403 @ 2022-07-01 22:25:32


|