code forces 1173 C. Nauuo and Cards
本文链接:https://www.cnblogs.com/blowhail/p/10990833.html
Nauuo and Cards
原题链接:http://codeforces.com/contest/1173/problem/C
题目大意 :有2n张卡片,其中n张编号为1-n,另外n张为0. 现在手中拿n张,桌子上放n张,每次操作可以在桌子上底部放入一张卡片,最上面拿走一张卡片,问最小操作次数。
思路: 先看看卡片1的位置,卡片1在桌子上时,看看是否满足从1递增到底部,例如 0 0 1 2 3 4 。如果满足就依次插入卡片,取出卡片。
如果1在手中,就开始依次插入卡片,取出卡片,从1开始,插入1之后,如果2卡片此时仍然在桌子上的卡组里,操作次数+1,取出最前面的卡片,继续判断2卡片。(这里意思是如果2不在手里,就要等2拿到之后再插入,相当于在1卡片的前面插入了0卡片,即1卡片插入的次数延后)
代码如下:
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <cmath>
#define ll long long
using namespace std;
int a[],b[],c[];
int main ()
{
int i,t,m,n,u,sum=,maxs,mins,x,y=,z;
scanf("%d",&n);
for(i=;i<=n;++i){
scanf("%d",&t);
a[t]++;
c[t]++; //a,c数组记录手中的卡牌
}
for(i=;i<=n;++i)
scanf("%d",&b[i]);
int j,k;
if(a[]==) //判断1在不在手中
{
for(i=;i<=n;++i)
if(b[i]==)
{
k=;j=;
while(j) // 1在桌子上的卡组时,判断1后面是否依次递增到最后一张
{
if(i==n)
{
break;
}
else
{
i++;
k++;
if(b[i]!=k)
{
j=;
}
}
}
if(!j)
break;
}
}
k=;
if(j) //如果从卡片1到最后一张都是依次递增的,判断能否继续往后添加卡片
{
x=b[n]+;
if(x-==n) //如果正好桌上的牌满足1-n递增放好
k=;
for(i=;i<=n;++i){
if(c[x]==)
sum++;
else {
break;
}
c[ b[i] ]++; //取出最前面的卡片 if(x>=n) //顺利放完全部卡片
k=;
x++;
}
}
if(k){
printf("%d\n",sum);
return ;
}
//如果卡片1在手中
sum=;
int p=;
for(i=; ;++i)
{
if(a[p]==) //将卡片p放入,如果此时卡片p不存在,操作数+1 ,取出最前面的卡片 (相当于在卡片1前面插入一张0卡片)
p++; a[ b[i] ]++; //取出最前面的卡片
sum++; //记录操作次数
if(p==n+)
break;
}
printf("%d\n",sum); return ;
}
code forces 1173 C. Nauuo and Cards的更多相关文章
- code forces 1173 B. Nauuo and Chess
本文链接:https://www.cnblogs.com/blowhail/p/10991237.html B. Nauuo and Chess 原题链接:http://codeforces.com ...
- 思维题--code forces round# 551 div.2
思维题--code forces round# 551 div.2 题目 D. Serval and Rooted Tree time limit per test 2 seconds memory ...
- Code Forces 796C Bank Hacking(贪心)
Code Forces 796C Bank Hacking 题目大意 给一棵树,有\(n\)个点,\(n-1\)条边,现在让你决策出一个点作为起点,去掉这个点,然后这个点连接的所有点权值+=1,然后再 ...
- Code Forces 833 A The Meaningless Game(思维,数学)
Code Forces 833 A The Meaningless Game 题目大意 有两个人玩游戏,每轮给出一个自然数k,赢得人乘k^2,输得人乘k,给出最后两个人的分数,问两个人能否达到这个分数 ...
- Codeforces Round #564 (Div. 2) C. Nauuo and Cards
链接:https://codeforces.com/contest/1173/problem/C 题意: Nauuo is a girl who loves playing cards. One da ...
- code force 401B. Game of Credit Cards
B. Game of Credit Cards time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- Code Forces 543A Writing Code
题目描述 Programmers working on a large project have just received a task to write exactly mm lines of c ...
- code forces 383 Arpa's loud Owf and Mehrdad's evil plan(有向图最小环)
Arpa's loud Owf and Mehrdad's evil plan time limit per test 1 second memory limit per test 256 megab ...
- code forces 382 D Taxes(数论--哥德巴赫猜想)
Taxes time limit per test 2 seconds memory limit per test 256 megabytes input standard input output ...
随机推荐
- 【Java】Java中的数据类型
Java 语言是一种强类型语言.通俗点说就是,在 Java 中存储的数据都是有类型的,而且必须在编译时就确定其类型.Java 数据类型分为两类,如图: 在 Java 的领域里,基本数据类型变量存的是数 ...
- VUE线上通过nginx反向代理实现跨域
1.NGINX反向代理实现跨域 VUE代码中配置参考上一篇文章 nginx配置,红色框线内: 代码: location /list { proxy_set_header X-Real-IP $remo ...
- libuv和libev 异步I/O库的比较
libuv 和 libev ,两个名字相当相近的 I/O Library,最近有幸用两个 Library 都写了一些东西,下面就来说一说我本人对两者共同与不同点的主观表述. 高性能网络编程这个话题已经 ...
- .Net中使用数据库(sqlite)的大体流程(简单向)
说来数据库,各种语言各种数据库在操作上大体无异,基本都是连接数据库.操作数据库.关闭数据库连接的流程,不过Sqlite由于是单文件数据库,相比其他服务器的数据库连接更简单,只需要给定数据库文件的路径即 ...
- ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区
原文:ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区 1 引言 1.1 读者定位 我们假设用户在阅读本指南前应已具备以下知识: · 熟悉W ...
- 编解码TIFF图像
解码: // Open a Stream and decode a TIFF image Stream imageStreamSource = new FileStream("tulipfa ...
- Android之Log封装
blog原文地址:http://yuxingxin.com/2015/10/26/AndroidLog/ Github:https://github.com/fallblank/CodeEssay
- UWP入门(十)--获取文件属性
原文:UWP入门(十)--获取文件属性 重要的 API StorageFile.GetBasicPropertiesAsync StorageFile.Properties StorageItemCo ...
- kube框架结构-一个小型响应式CSS框架
当你开始初建一个新的项目时,你可能需要一个不太复杂的基础框架,Kube框架应该是你最好的选择.一个独立的CSS文件,帮助你更简单的创建响应式的的布局设计. Kube Framework包括网格.按钮. ...
- Tensorflow 又要升级了。Nvidia驱动升级,牵一发而动全身
如题. 以前好好的,在宿主主机上,升级了下Linux的内核到4.15.0-13 Ubuntu16.04 以前的nvidia 驱动竟然也调了.用tensorflow 的GPU加速,必须使用nvidia ...