嵊州D4T2 硬币 有人来教教我吗!
嵊州D4T2 硬币
【问题描述】
卡拉赞的展览馆被入侵了。 展览馆是一条长长的通道,依次摆放着 n 个展柜(从西到东编号依次 为 1—n)。
入侵者玛克扎尔在第 n 个展柜东边召唤了一个传送门,一共施放了 n 次法术,每一次会选取一个展柜,并在那个展柜里召唤一只小鬼, 小鬼被生成前该展柜里的展品会被自动转移(除此以外不能取出展品)。
作为展览馆的守护者,馆长需要选择一个时机进行反击,消灭所有小鬼并摧毁传送门。
展览馆的东端设置了一台巨大的 Morisa 炮,它可以摧毁它正前方一定 范围内的一切(为了安全,开炮时馆长必须在展览馆最西边)。馆长不想误伤展品,所以他需要移动展柜。
馆长可以站在两个展柜中间,交换这两 个展柜。
展览馆被设置了魔法结界,只可以单向通行,所幸在炮台旁有一 个传送门,可以通向展览馆的最西端,但是馆长每次通过传送门都会消耗 一枚麦迪文留下的幸运币,发射魔炮也需要一枚。
现在,馆长想知道他每次召唤后进行反击最少需要多少枚硬币解决危机。
来吧,展览馆只对访客开放。
【输入格式】
第一行一个数n。
第二行n个数,A[i]表示第i次小鬼召唤的位置。
【输出格式】
一行 n+1 个数,B[i]表示第 i 次召唤后反击所需要的最小硬币数(第 一次是传送门的召唤)。
【输入输出样例】
| coin.in | coin.out |
| 3 1 2 3 | 1 2 3 1 |
【样例解释】

【数据说明】
对于40%数据n ≤ 20
对于60%数据n ≤ 100
对于100%数据 1 ≤ n ≤ 300000
有人来教教我吗!
有人来教教我吗!
#include<bits/stdc++.h>
using namespace std;
int n;
bool g[];
int move(int num){
if(n==num) return ;
for(int i=;i<=num;i++)//假设鬼从左往右生成
{
g[i]=;
}
bool flag1=,flag2=;
int coin=;
do//传送到左边
{
for(int i=;i<=n;i++)//模拟交换,每一组(不是次)只能从右边开始
{
if(g[i]&&(!g[i+])&&i!=n) swap(g[i],g[i+]);
if()
} for(int i=;i<=n;i++)
{
if(g[i]&&(flag2==)) {
flag2==;
if(i+num==n) flag1=;
break;
}
} }
while(flag1&&++coin);
return coin+;
} int main(){
// freopen("coin.in","r",stdin);
// freopen("coin.out","w",stdout);
cout<<"";
cin>>n;
int a;
for(int i=;i<=n;i++){
cin>>a;
cout<<move(a)<<" ";
}
return ;
}
/*
发射魔炮需1个coin
这与鬼的数量无关 假设鬼从左往右生成
原本馆长在最左边,故至少传送到左边去(为了安全)发射要一枚硬币 */
在下小见,请过目~
嵊州D4T2 硬币 有人来教教我吗!的更多相关文章
- [bzoj4820][Sdoi2017]硬币游戏
来自FallDream的博客,未经允许,请勿转载,谢谢. 周末同学们非常无聊,有人提议,咱们扔硬币玩吧,谁扔的硬币正面次数多谁胜利.大家纷纷觉得这个游戏非常符合同学们的特色,但只是扔硬币实在是太单调了 ...
- BZOJ 4820 [SDOI2017] 硬币游戏
Description 周末同学们非常无聊,有人提议,咱们扔硬币玩吧,谁扔的硬币正面次数多谁胜利.大家纷纷觉得这个游戏非常符合同学们的特色,但只是扔硬币实在是太单调了.同学们觉得要加强趣味性,所以要找 ...
- [BZOJ4820]硬币游戏 KMP+高斯消元
4820: [Sdoi2017]硬币游戏 Time Limit: 10 Sec Memory Limit: 128 MB Description 周末同学们非常无聊,有人提议,咱们扔硬币玩吧,谁扔的 ...
- BZOJ4820 Sdoi2017 硬币游戏 【概率期望】【高斯消元】【KMP】*
BZOJ4820 Sdoi2017 硬币游戏 Description 周末同学们非常无聊,有人提议,咱们扔硬币玩吧,谁扔的硬币正面次数多谁胜利.大家纷纷觉得这个游戏非常符合同学们的特色,但只是扔硬币实 ...
- 【BZOJ4820】[Sdoi2017]硬币游戏 AC自动机+概率DP+高斯消元
[BZOJ4820][Sdoi2017]硬币游戏 Description 周末同学们非常无聊,有人提议,咱们扔硬币玩吧,谁扔的硬币正面次数多谁胜利.大家纷纷觉得这个游戏非常符合同学们的特色,但只是扔硬 ...
- 硬币游戏2&&Cutting Game——Grundy值
Grundy值 当前状态的Grundy值就是除任意一步所能转移到的状态的Grundy值以外的最小非负整数, 以硬币问题一为例,可写成: int init_grundy() { sg[] = ; ;i ...
- @loj - 2004@ 「SDOI2017」硬币游戏
目录 @description@ @solution@ @accepted code@ @details@ @description@ 周末同学们非常无聊,有人提议,咱们扔硬币玩吧,谁扔的硬币正面次数 ...
- C#中的深度学习(五):在ML.NET中使用预训练模型进行硬币识别
在本系列的最后,我们将介绍另一种方法,即利用一个预先训练好的CNN来解决我们一直在研究的硬币识别问题. 在这里,我们看一下转移学习,调整预定义的CNN,并使用Model Builder训练我们的硬币识 ...
- 题解 「SDOI2017」硬币游戏
题目传送门 Description 周末同学们非常无聊,有人提议,咱们扔硬币玩吧,谁扔的硬币正面次数多谁胜利. 大家纷纷觉得这个游戏非常符合同学们的特色,但只是扔硬币实在是太单调了. 同学们觉得要加强 ...
随机推荐
- 一款好用的视频转换gif的小软件——抠抠视频秀
在平常生活中,我们拍下来精彩的视频想要转换为gif动画,或是想要录制网页上的视频.电脑上的鼠标操作等等,大家可以使用以下这款很好用的视频转换gif的小软件——抠抠视频秀,这个软件操作简单 ...
- Windows实用小工具-问题步骤记录器
今晚给大家介绍个实用的好工具,可以做简单的问题记录,再也不用截图加注释这么辛苦了····· 经测试,这东东在win7,2008 及2008R2里适用,也就是说,在win7以上的系统中才有.好了,下面直 ...
- 领域驱动设计(DDD)的实践经验分享之持久化透明
原文:领域驱动设计(DDD)的实践经验分享之持久化透明 前一篇文章中,我谈到了领域驱动设计中,关于ORM工具该如何使用的问题.谈了很多我心里的想法,大家也对我的观点做了一些回复,或多或少让我深深感觉到 ...
- 批处理(bat)实现SQLServer数据库备份与还原
原文:批处理(bat)实现SQLServer数据库备份与还原 备份数据库.bat @echo off set path=%path%;C:\Program Files (x86)\Microsoft ...
- 了解Activity
Android中的activity全都归属于task管理 .task 是多个 activity 的集合,这些 activity 按照启动顺序排队存入一个栈(即“back stack”).android ...
- 想让一个Widget成为模态,我们只需要对其设置setAttribute(Qt::WA_ShowModal, true);
想让一个Widget成为模态,我们只需要对其设置: setAttribute(Qt::WA_ShowModal, true); 注意:这是QWidget的成员函数 ,也就是说,QWidget可以显示为 ...
- Window文件目录遍历 和 WIN32_FIND_DATA 结构(非常详细的中文注释)
第一部分 *百度百科提供的内容总结:WIN32_FIND_DAT 第二部分 *程序实例 第三部分 *一篇使用FindFirstFile和FindNextFile函数的博文 第一部分 ...
- Linux iostat
转自 http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858810.html Linux IO实时监控iostat命令详解 简介 iostat ...
- QObject提供了QMetaObject元类信息(相当于RTTI和反射),信号与连接,父子关系,调试信息,属性,事件,继承关系,窗口类型,线程属性,时间器,对象名称,国际化
元类信息(相当于RTTI和反射),信号与连接,父子关系,调试信息,属性,事件,继承关系,窗口类型,线程属性,时间器,对象名称,国际化其中元类又提供了:classInfo,className,构造函数, ...
- C#调用记事本并填写内容
using System.Runtime.InteropServices; using System.Diagnostics; [DllImport("User32.DLL") ...