[eJOI2020 Day1] Triangulation
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
题目背景
题目中的 代表一条从 连到 的对角线。
定义正多边形的顶点 到顶点 的 eJ 距离为点 顺时针走到点 需要的边数和点 逆时针走到点 需要的边数的最大值。根据这个定义,也可以拓展出正多边形的顶点 到一条正多边形的对角线 的 eJ 距离的定义,即点 顺时针走到对角线 的一个端点(离的最近的端点)需要的边数和逆时针走需要的边数的最大值。
比如点 到对角线 的 eJ 距离为 ,顺时针走需要经过 条边,逆时针要经过 条,答案为 。
题目描述
给定一个 边形,点顺时针编号为 ,现在小 A 画了 条对角线,保证这 条对角线除了顶点外没有额外交点。
现在小 A 想让小 J 猜猜哪条对角线离点 的 eJ 距离最近,并回答这个距离。
小 J 并不能通过读心术知道答案,所以他只能找小 A 索要一些线索。小 A 给了小 J 的值,并且答应小 J 可以找小 A 询问一对顶点之间是否有对角线,但小 J 的询问次数有限制。
小 J 还要 AK eJOI,所以这个问题就交给了你。
交互规则
你需要调用 triangulation.h
头文件。
int solve(int n)
- 这个函数只能被调用一次。
- :多边形顶点个数。
- 假设答案对角线为 ,这个函数应该返回 。
- 如果有多条对角线离点 最近,可以只返回其中一条。
solve 函数可以调用若干次下面这个函数:
int query(int x, int y)
- :代表一组询问。
- 。
- 如果 存在,返回 ,否则返回 。
7
提示
样例 1
样例输入格式仅包含一个整数 。
调用函数 | 返回值 |
---|---|
solve(7) |
|
query(0,3) |
|
query(0,5) |
|
query(1,5) |
|
solve 函数返回 | |
正确 |
数据规模与约定
对于 的数据,。
假设 为你单组数据的询问次数,令 ,你单组数据的分数为:
- 询问不合法,答案错误或 ,你会得到 的分数。
- ,你会得到 的分数。
- ,你会得到 的分数。
感谢
说明
妙妙题 eJOI蓝题
- Status
- Done
- Rule
- IOI
- Problem
- 13
- Start at
- 2024-11-2 9:15
- End at
- 2024-11-8 9:15
- Duration
- 144 hour(s)
- Host
- Partic.
- 25