Codeforces 1172A Nauuo and Cards
2024-10-06 11:02:06
题目链接:http://codeforces.com/problemset/problem/1172/A
题意:一共有2*n张牌,n张0,n张1到n。现在随机的n张(有0有数字)在手上,另n张再牌堆中,现在已知手上的牌和牌堆的牌,可以进行多次以下操作:将手中任意一张牌放入牌堆底,将牌堆顶的一张牌放入手中。问最少多少次后可使牌堆顶到牌堆底的n张牌分别为1,2,3...n。
思路:模拟,判断现有牌堆底能不能继续往下接,例如00123456.不能的话还是等1取出来再往下放。
AC代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 2e5+;
int vis[maxn];
int a[maxn];
int b[maxn];
int n;
bool check(int b[])
{
int i;
bool flag = true;
for(i = ;i < n;i++)
{
if(b[i] == ) break;
}
if(i == n) return false;
for(i = i + ;i < n;i++)
{
if(b[i] != b[i-] + ) flag = false;
}
return flag;
}
int main()
{
int *it = b;
int t = ;
int ans = ;
bool flag = false;
cin >> n;
for(int i = ;i < n;i++) cin >> a[i],vis[ a[i] ] = ;
for(int i = ;i < n;i++) cin >> b[i];
if(check(b)) t = b[n-] + ,flag = true;
while(t <= n)
{
if(!flag)
{
if(vis[t])
t++;
ans++;
vis[*it]++;
it++;
}
else{
if(vis[t])
t++;
else
{
ans = ;
t = ;
it = b;
for(int i = ;i < n;i++) vis[i] = ;
for(int i = ;i < n;i++) vis[ a[i] ] = ;
flag = false;
continue;
}
ans++;
vis[*it]++;
it++;
} }
cout << ans;
return ;
}
最新文章
- 局域网单机部署双tomcat内外网不能访问防火墙问题查出来
- mysql定时脚本(event),类似oracle的job
- 被误解的 MVC 和被神化的 MVVM
- Linux: service network/Network/NetworkManager
- 我写的一个 Qt 显示图片的控件
- DefaultHttpClient is deprecated 【Api 弃用]】
- wpf CollectionViewSource与ListBox的折叠、分组显示,及输入关键字 Filter的筛选
- ctf中常见注入题源码及脚本分析
- python中os.path.dirname(__file__) 命令行 参数没有绝对路径导致数据库找不到
- git在多迭代版本的应用
- Vue入门笔记(二)--基础部分之条件渲染
- IDEA部署项目和多余的项目删掉的演示
- JAVA高级篇(二、JVM内存模型、内存管理之第二篇)
- IntelliJ IDEA使用心得
- 【转】先说IEnumerable,我们每天用的foreach你真的懂它吗?
- 数据结构与算法--最短路径之Floyd算法
- November 17th 2016 Week 47th Thursday
- 简单去除exe自校验方式
- gcc编译出错---make[5]: *** [s-attrtab] Killed
- win10系统添加照片查看器(win7版)
热门文章
- Django框架(十五)—— forms组件、局部钩子、全局钩子
- 【题解】Ride to Office
- bitmat
- Groovy学习:第四章 Groovy特性深入
- Spring学习笔记(1)——初识Spring
- 下载文件时HttpServletResponse设置响应头的Content-Disposition属性
- java获取网页源代码并写入本地文件中
- spring基于xml的事务控制
- VUE.JS 环境配置
- (好题)2017-2018 ACM-ICPC, Asia Tsukuba Regional Contest F Pizza Delivery