首页 > 新建 Microsoft Office Word 文档
头像 19-hanhan
发表于 2020-05-30 01:24:05
题目 题目描述: CSL正在学习《计算机办公自动化》文件的建立与删除。 CSL发现,当他新建一个word文档时,会得到一个名为"新建 Microsoft Office Word 文档.doc"的文件。 再新建一个,则名为"新建 Microsoft Office Word 文档(2). 展开全文
头像 HGDB
发表于 2020-05-31 10:56:36
思路 这里我是用了一个bool数组 表示第i个文档是否存在,然后建一个set里面存没有建的文档 建立文档的时候直接取set的首元素就好,删除就查询,若为true就输出Successful,并向set中插入该元素 简单来说直接模拟就好 代码 #pragma GCC target("avx,sse2,s 展开全文
头像 sunrise__sunrise
发表于 2020-05-29 00:21:14
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 CSL正在学习《计算机办公自动化》文件的建立与删除。 CSL发现,当他新建一个word文档时,会得到一个名为"新建 Microso 展开全文
头像 山东第一深情丶
发表于 2020-05-19 12:25:23
这道题主要是需要记录下删除的序号,必须要由小到大储存。我们可以使用优先队列(PriorityQueue)来存储删除的序号。然后用p作为一个指针,来确定下一个文件创建的标号排到了多少。如果是输入的话我们分两种情况: 第一种为优先队列中没有元素。这样我们可以直 展开全文
头像 ziuch
发表于 2020-08-21 19:06:03
题目描述 CSL正在学习《计算机办公自动化》文件的建立与删除。 CSL发现,当他新建一个word文档时,会得到一个名为"新建 Microsoft Office Word 文档.doc"的文件,再新建一个,则名为"新建 Microsoft Office Word 文档(2).doc 展开全文
头像 威风镰鼬
发表于 2021-06-24 21:06:28
思路 暴力能过,只不过新加入文档编号cnt不能每次都从1数起,而是要从min(cnt++,x)数起(x为删除文档的最小编号)我最终的做法用了优先队列,如果前面的编号被清除了,就往里面加(空间是够用的)。虽然有点多此一举,但事实证明确实会快一点,下面贴两份代码。 优先队列代码 #include< 展开全文
头像 ailanxier
发表于 2020-06-14 18:38:42
这题操作次数不超过100000,是可以用一个vis数组记录各个编号是否存在的。但是如果操作数达到一个数组存不下的天文数字,就得用其他办法了。我这里采用用set容器存可以新建的编号,可能可以为离散化提供一点思路。代码注释比较详细。 #include<bits/stdc++.h> using 展开全文
头像 梨小畅
发表于 2021-08-04 18:10:13
思路 优先队列 Code #include <bits/stdc++.h> using namespace std; const int N = 100010; priority_queue<int,vector<int>,greater<int> & 展开全文
头像 瑜画
发表于 2020-05-19 15:35:47
首先考虑New操作在没有delect的情况下得到的ID是依次加一的,用cnt来表示最新ID,有了delect操作后,ID会存在一个缺口,该缺口用优先队列的最小堆来完成,每次New弹出队顶元素,如果队列为空,则输出++cnt,否则弹出队顶并且输出。 #include <bits/stdc++.h 展开全文
头像 PhantomSamurai
发表于 2020-07-18 00:26:03
description: 对于文档有两个操作1.新建 编号取当前最小的没有用过的值 从1开始计算2.删除 删除对应编号询问每次新建的编号 solution: 容易想到先用bool来表示当前编号是否使用 但是正向维护当前已经使用的编号查询最小未使用的编号有些困难用一个优先队列或者set来维护被删除过的 展开全文