首页 > 新建 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 展开全文
头像 sunny_forever
发表于 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 展开全文
头像 ouk
发表于 2020-09-02 18:23:11
思路 利用set红黑树的特性,begin 最小,同时用一个数组去判断是否存在。 // Oj.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 #include<bits/stdc++.h> using namespace std; typedef long l 展开全文