西安电子科技大学第16届程序设计竞赛 F Operating System (unique() 去重函数)
链接:https://www.nowcoder.com/acm/contest/107/F
来源:牛客网
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld
题目描述
输入描述:
多组数据,请处理到输入结束。
每组数据,第一行为三个整数N,M,Q (0 < N,M,Q <= 50000)
接下来一行Q个数,表示用户请求的页面编号。
输出描述:
对于每组数据,输出一个数,表示最少的缺页次数。
输入例子:
2 3 5
3 1 2 1 2
3 4 5
3 2 1 4 3
输出例子:
3
4
-->
输入
2 3 5
3 1 2 1 2
3 4 5
3 2 1 4 3
输出
3
4
有一种简单的方法,但不知道是为什么,大佬路过的话,可以帮忙回答一下
我的麻烦思路:
比如例1:
先3 1,接下来在1之后遇到不是3,1,的开始找n个互不相同的,为2,1,所以要把3换成2,以此类推
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int a[];
bool v[];
bool v1[];
queue<int>q1;
queue<int>q;
int main()
{
int n,m,p;
while(cin>>n>>m>>p)
{
long long s=;
memset(v,,sizeof(v));
for(int i=;i<=p;i++)
cin>>a[i]; while(!q.empty())
q.pop(); int f1=;
bool ff=;
for(int i=; i<=p; i++)
{
if(!v[a[i]])
{
f1++;
memset(v1,,sizeof(v1));
while(!q1.empty()) q1.pop();
q1.push(a[i]);
v1[a[i]]=;
int k=;
int j;
for(j=i+;j<=p;j++)
{
if(!v1[a[j]])
{
v1[a[j]]=;
q1.push(a[j]);
k++;
}
if(k==n) break;
}
if(k!=n)
{
ff=;
}
i=j;
while(!q1.empty())
{
int x=q1.front();
q1.pop();
if(!v[x])
{
v[x]=; if(f1==)
{
s++;
}
q.push(x); }
}
int pp=;
int qq=q.size ();
if(ff==&&f1!=)
{
s+=qq-n;
break;
}
else
{
while(!q.empty())
{
int x=q.front();
q.pop();
pp++;
if(!v1[x])
{
v[x]=;
s++;
}
else q.push(x);
if(pp==qq) break;
}
}
} }
cout<<s<<endl;
}
return ;
}
其实还有简单的方法:
unique()函数是一个去重函数,STL中unique的函数 unique的功能是去除相邻的重复元素(只保留一个),还有一个容易忽视的特性是它并不真正把重复的元素删除。他是c++中的函数,所以头文件要加#include<iostream.h>,具体用法如下:
int num[100];
unique(num,mun+n)返回的是num去重后的尾地址,之所以说比不真正把重复的元素删除,其实是,该函数把重复的元素一到后面去了,然后依然保存到了原数组中,然后返回去重后最后一个元素的地址,因为unique去除的是相邻的重复元素,所以一般用之前都会要排一下序。
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<math.h>
#include<set>
using namespace std;
int n,m,q; int main()
{
while(cin>>n>>m>>q)
{
int a[];
for(int i=;i<q;i++)
scanf("%d",&a[i]);
sort(a,a+q);
int x=unique(a,a+q)-a;
printf("%d\n",x);
}
return ;
}
西安电子科技大学第16届程序设计竞赛 F Operating System (unique() 去重函数)的更多相关文章
- 西安电子科技大学第16届程序设计竞赛 G-小国的复仇
西安电子科技大学第16届程序设计竞赛网络同步赛 G-小国的复仇 2 链接:https://www.nowcoder.com/acm/contest/107/G来源:牛客网 题目描述 众所周知,汀老师是 ...
- 西安电子科技大学第16届程序设计竞赛网络同步赛 G-小国的复仇
sb找规律. 分解因数. #include<bits/stdc++.h> #define LL long long #define fi first #define se second # ...
- 西安电子科技大学第16届程序设计竞赛 E Xieldy And His Password
链接:https://www.nowcoder.com/acm/contest/107/E来源:牛客网 Xieldy And His Password 时间限制:C/C++ 1秒,其他语言2秒 空间限 ...
- 西安电子科技大学第16届程序设计竞赛 B Words Game
链接:https://www.nowcoder.com/acm/contest/107/B来源:牛客网 Words Game 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 13107 ...
- 电子科技大学第八届ACM趣味程序设计竞赛第四场(正式赛)题解
A. Picking&Dancing 有一列n个石子,两人交替取石子,每次只能取连续的两个,取走后,剩下的石子仍然排成1列.问最后剩下的石子数量是奇数还是偶数. 读懂题意就没什么好说的. #i ...
- 2018年北京信息科技大学第十届程序设计竞赛暨ACM选拔赛题解
链接:https://www.nowcoder.com/acm/contest/118/A 来源:牛客网 PUBG 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语 ...
- 江西财经大学第一届程序设计竞赛 F题 解方程
链接:https://www.nowcoder.com/acm/contest/115/F来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- 江西财经大学第一届程序设计竞赛 F
链接:https://www.nowcoder.com/acm/contest/115/F来源:牛客网 题目描述 对于方程 2018 * x ^ 4 + 21 * x + 5 * x ^ 3 + 5 ...
- 长春理工大学第十四届程序设计竞赛F Successione di Fixoracci——找规律&&水题
题目 链接 题意:给出x数列的定义: $T_0 = a$ $T_1 = b$ $T_n = T_{n-2} \bigoplus T_{n-1} $ 求第 $n$ 项( $0 \leqslant a,b ...
随机推荐
- RHCE学习笔记 管理1 (第一、二章)
第一章 命令行访问 1.Ctrl+alt+F2~F6 切到虚拟控制台,ctrl+alt+F1 回到图形界面 2.格式 : 命令 选项 参数 [] 为可选项目 ...表示该项目任意 ...
- mini6410基于linux2.6.36内核通过NFS启动根文件系统总结(一搭建开发环境——建立NFS服务器)
http://blog.csdn.net/yinjiabin/article/details/7489030 建立 nfs 服务器 在嵌入式 linux 开发的时候,常常需要使用 nfs 以方便程序的 ...
- Eclipse导出apk
http://jingyan.baidu.com/article/7908e85c8dea30af491ad24f.html
- js职责链模式
职责链模式(Chain of Responsiblity),使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为 ...
- The tag handler class for "c:set"(org.apache.taglibs.standard.tag.rt.core.UrlTag)was not found on the Java Build Path
1.源码: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> < ...
- The import java.util cannot be resolved
原因:项目buildpath不对 解决方案: 右键项目-------build path--------configuration build path 的选择libraries找到JRE(这个时候你 ...
- 解决:return _compile(pattern, flags).search(string) TypeError: expected string or buffer
今天写爬虫,爬取MM图片页面的标题时,遇到了一个问题,上图: 看看我的代码: import urllib import urllib2 import re class JPMSG: def __ini ...
- uva 10917 最短路+dp
https://vjudge.net/problem/UVA-10917 给出N点M边的无向图,没重边.对于点A,B,当且仅当从B到终点的最短路小于任何一条从A到终点的最短路时,才考虑从A走到B,否则 ...
- android之Uri的常用几个例子
显示网页: 1. Uri uri = Uri.parse("http://www.google.com"); 2. Intent it = new Intent(Inten ...
- deep learning 自编码算法详细理解与代码实现(超详细)
在有监督学习中,训练样本是有类别标签的.现在假设我们只有一个没有带类别标签的训练样本集合 ,其中 .自编码神经网络是一种无监督学习算法,它使用了反向传播算法,并让目标值等于输入值,比如 .下图是一个自 ...