#P10832. [COTS 2023] 传 Mapa

    ID: 12709 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>2023交互题Special JudgeO2优化COCI(克罗地亚)通信题拉格朗日插值法

[COTS 2023] 传 Mapa

题目背景

译自 Izborne Pripreme 2023 (Croatian IOI/CEOI Team Selection) D2T1。1s,0.5G\texttt{1s,0.5G}

祝 NaCly_Fish 生日快乐!(2024.7.28)

受洛谷评测系统的限制(本题需要 run-twice),本题无法评测。

题目描述

给定 NN[1,109][1,10^9] 间的正整数,类似于 C++ 中的 std::map<int,int>\texttt{std::map<int,int>},可以把每对数的第一个数看成「键」(key),第二个数看成「值」(value)。保证键两两不同,可以通过键查询值。

你想要发送这 NN 对正整数,但是受带宽限制,只能将这 NN 对正整数压缩成一个 01\texttt{01} 串来发送。

写一个程序,将这 NN 对正整数压缩成 01\texttt{01} 串;或者给定你构造的 01\texttt{01} 串,QQ 次询问给定键,你要回答对应的值。

输入格式

第一行,一个正整数 T{1,2}T\in \{1,2\},表示数据类型:若为 11,则为编码操作;否则为解码操作。

  • T=1T=1 时:

第二行,一个整数 NN,代表正整数对数;

接下来 NN 行,每行两个正整数 xi,yix_i,y_i,分别表示键和对应的值。

  • T=2T=2 时:

第二行,三个正整数 N,Q,KN,Q,K,表示正整数对数,询问次数和 01\texttt{01} 串长度;

第三行,一个长度为 KK01\texttt{01} 串。

接下来 QQ 行,每行一个正整数 xix_i,表示询问的键。

输出格式

  • T=1T=1 时:

第一行,一个正整数 KK,表示你构造的 01\texttt{01} 串长度;

第二行,你构造的 01\texttt{01} 串。

  • T=2T=2 时:

输出 QQ 行,每行一个正整数,表示对应的值。

1
3
2 10
3 3
5 7
7
1100111
2
3 2 7
1100111
5
3
7
3

提示

数据范围

对于 100%100\% 的数据,保证:

  • T{1,2}T\in \{1,2\}
  • 1N,Q1001\le N,Q\le 1001K60001\le K\le 6\, 000
  • 1xi,yi1091\le x_i,y_i\le 10^9
  • xix_i 两两不同。

评分方式

如果你的输出格式有错或者没有正确回答询问,得 00 分。

否则记 KK 为你输出的 01\texttt{01} 串长度,得分由下表确定:

KK 得分
K>6000K\gt 6\, 000 00
3000K60003\, 000\le K\le 6\, 000 100K300030\displaystyle 100- \frac{K-3\, 000}{30}
K3000K\le 3\, 000 100100