输入:
第一行:两个空间分隔的整数N和Q,分别表示数组A中的元素数和查询数
第二行:N个表示数组元素的分隔整数
5 2
2 7 5 9 15
3
9
4
10
int main()
{
ll n,q;
cin>>n>>q;
map<ll,bool>mp;
for(ll i=0;i<n;i++)
{
ll x;
cin>>x;
mp[x]=true;
}
while(q--)
{
ll x;
cin>>x;
x++;
while(mp[x])
{
x++;
}
cout<<x<<endl;
}
}
查询的复杂性为O(n)*(Z-X)
,
您可能已经通过以下方式简化为O(n)+(Z-X)
:
ll x;
std::cin >> x;
x++;
auto it = mp.find(x);
if (it != mp.end()) {
while (it != mp.end() && it->first == x) {
++it;
++x;
}
}
std::cout << x << std::endl;
但我认为,在预处理中构建间隔会带来更好的性能(o(log(intervals))
)。
有什么方法可以简化这段代码吗?我正好有一个白色的一块,想要得到它的位置 代码: 瓦片类: 件类:
我正在尝试获取角色id,但我不知道如何操作,因为它不起作用: 身份验证::用户- 对象(照亮\数据库\雄辩\收集)#843(1) {["项目":受保护]=
非法尝试将非集合映射为@onetomany、@manytomany或@collectionofelements:cloudcodes.schema.generator.model.useroudata.orgunitpathid 有人能帮我提前谢谢你吗。
Traceback(最近调用最后一次):文件"C:\用户\josej\AppData\本地\程序\Python\Python310\lib\站点包\mysql\连接器\abstracts.py",第553行,在配置DEFAULT_CONFIGURATION[key]KeyError:'datebase' 在处理上述异常期间,发生了另一个异常: 回溯(最近一次调用):文件“C:\Users\jose
我有“下载正在进行文件”对话框活动。当用户按下“隐藏”按钮时,活动将创建通知和隐藏进度对话框。并且当用户单击到通知时,活动显示进度对话框再次出现在活动中。我如何在按下按钮“后退”时切换活动到后退任务?