题目名称 | 3306. [CSP JX2019]散步(民间数据) |
---|---|
输入输出 | stroll.in/out |
难度等级 | ★★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 10 |
题目来源 | 数声风笛ovo 于2019-12-06加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:1, 提交:5, 通过率:20% | ||||
darkMoon | 100 | 1.851 s | 7.91 MiB | C++ |
darkMoon | 80 | 1.909 s | 7.94 MiB | C++ |
darkMoon | 60 | 3.132 s | 16.47 MiB | C++ |
darkMoon | 60 | 3.351 s | 18.99 MiB | C++ |
darkMoon | 60 | 3.379 s | 18.96 MiB | C++ |
关于 散步(民间数据) 的近10条评论(全部评论) |
---|
数据来源 @lyyi2003
公园内有 $n$ 个人正在散步,随着天色渐晚,所有人准备回家离开公园。公园的结构是一个首尾相连的环形图,它共有 $m$ 个出口,为了方便叙述,我们将人从 $1\sim n$ 编号,将出口按逆时针顺序从 $1\sim m$ 编号。
公园总长 $L$ 米,我们令 $1$ 号出口所在的位置为 $0$ 米,则 编号为 $i(2\le i\le m)$ 的出口在 $1$ 号出口逆时针方向 $a_i$ 米的位置上,其中 $a_i$ 严格递增 ,即 $i(1\le i < m)$ 号出口与 $i+1$ 号出口相邻,由于公园是环形图,故 $m$ 号出口与 $1$ 号出口也相邻。每个出口还有一个通行限制 $l_i$,表示最多有 $l_i$ 个人能从 $i$ 号出口离开。
所有人回家时将按自己的朝向,可能是顺时针方向,也可能是逆时针方向不断前行,当他们走到一个还能离开的出口时,将从该出口离开公园。特别地,当两个人同时走到一个只能允许 $1$ 个人离开的出口时,编号小的那个人能从该出口离开,编号较大的人将继续前进。
现在给定 $n$ 个人所在的起始位置与他们的前进方向,请你求出每个人从哪个出口离开,若编号为 $i$ 的 人从 $k_i$ 号出口离开,你只需要给出 $i\times k_i$ 的异或和,即:
$$ (1\times k_1) xor (2\times k_2) xor\cdots xor (n\times k_n) $$
其中 $xor$ 是位异或运算。特别地若一个人最后无法离开,则他的 $k_i = 0$。
第一行三个正整数 $n, m, L$,意义见题目描述。
第二行 $m - 1$ 个正整数 $a_i(2\le i \le m)$ 表示出口位置。保证 $a_i$ 严格递增。
第三行 $m$ 个正整数 $l_i$ 表示出口的人数限制。
接下来 $n$ 行每行两个整数 $s_i,b_i(1 \le i \le n)$。若 $s_i$ 为 $0$ 表示编号为 $i$ 的人前进方向是逆时针方向,为 $1$ 表示是顺时针方向。 $b_i$ 表示编号为 $i$ 的人的起始位置为:离 $1$ 号出口逆时针方向 $b_i$ 米的位置。
仅一行一个整数表示答案。
3 2 5 2 2 1 0 1 1 3 0 4
3
3 2 5 2 1 1 0 0 0 2 0 1
5
【样例 1 说明】
编号为 $1 ,2, 3$ 的人分别从 $2, 1, 1$ 号出口离开。
【样例 2 说明】
编号为 $1,2$ 的人分别从 $1 ,2$ 号出口离开,编号为 $3$ 的人无法离开公园。
对于$ 50\% $的数据,保证$ n,m\leq 1000 $
另有$ 20\% $的数据,保证$ n,m \leq 10000 $且$ s_i = 0 $
对于$ 100\% $的数据,保证$ n,m \leq 2×10^5 $
CSP-S 2019 江西省重赛 Task 4.