嵊州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 周末同学们非常无聊,有人提议,咱们扔硬币玩吧,谁扔的硬币正面次数多谁胜利. 大家纷纷觉得这个游戏非常符合同学们的特色,但只是扔硬币实在是太单调了. 同学们觉得要加强 ...
随机推荐
- JDK源码阅读——LinkedList实现
1 继承结构图 LinkedList是List的另一种实现.继承自AbstractSequentialList 2 数据结构 LinkedList与ArrayList不同的是LinkedList底层使 ...
- 使用path制作各类型动画路径
原文:使用path制作各类型动画路径 <Window x:Class="使用path制作各类型动画路径.MainWindow" xmlns="http://sche ...
- 使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理
原文:使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理 摘要 通过对博客文章的管理,实现外键操作. 目录[-] 八.博客文章管理 1.查看文章 2.添加博客 3 ...
- uwp之拍照(使用后置摄像头)
参考:wp8.1之拍照(获取焦点,使用后置摄像头) uwp开启摄像头要借助CaptureElement呈现来自捕获设备(如照相机或网络摄像机)的流.今天讲讲如何打开摄像头,获取焦点,以及拍照.废话不多 ...
- Mono 4.0 发布,开源跨平台 .Net 框架
快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中. <HTML开发Mac OS App 视频教程> 土豆网同步更新:http: ...
- RoboVM 1.1 发布,Java 转原生平台代码
分享 <关于我> 分享 [中文纪录片]互联网时代 http://pan.baidu.com/s/1qWkJfcS 分享 <HTML开发MacOSAp ...
- MSYS2开发环境搭建(无幻的博客,编译OpenSSL,可使用pacman升级)
MSYS2开发环境搭建 软件安装 下载msys2-x86_64软件包,双击安装到某根目录下,比如D:\msys64. pacman是MSYS2自带的软件管理工具: 可通过修改msys64\etc\pa ...
- Aria2在Windows上如何安装配置使用
一.下载所需的软件 二.安装与使用 三.Aria2的额外内容 四.Aria2的使用 五.Aria2与其它插件配合使用 一.下载所需的软件 可以从一下地址获取最新版本 GitHub: https://g ...
- Delphi 的RTTI机制浅探3(超长,很不错)
转自:http://blog.sina.com.cn/s/blog_53d1e9210100uke4.html 目录========================================== ...
- linux log rotate
今天老大提醒我产线kafka自身的log文件积累了好几个月了,我才发现原来kafka的log4j并删除old log. 第一反应是采用linux自带的logrotate功能,在/etc/logrota ...