嵊州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 周末同学们非常无聊,有人提议,咱们扔硬币玩吧,谁扔的硬币正面次数多谁胜利. 大家纷纷觉得这个游戏非常符合同学们的特色,但只是扔硬币实在是太单调了. 同学们觉得要加强 ...
随机推荐
- Telnet协议详解(远程登陆协议)
1. 概述 Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议.Telnet协议的目的是提供一个相对通用的,双向的,面向八位字节的通信方法,允许界面终端设备和面向终 ...
- ES6中的Promise详解
Promise 在 JavaScript 中很早就有各种的开源实现,ES6 将其纳入了官方标准,提供了原生 api 支持,使用更加便捷. 定义 Promise 是一个对象,它用来标识 JavaScri ...
- 【shell】分享高通平台刷版本简单的一个shell脚本
#!/bin/shadb wait-for-deviceadb reboot bootloaderecho "start download"wait 5sudo fastboot ...
- 【shell】编译脚本
#!/bin/bash #设置环境变量 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export JRE_HOME=${JAVA_HOME}/ ...
- QT在release版本产生pdb文件
##环境说明 QtCreator QtLibrary 编译器 Qt Creator 2.7.0 4.8.4-msvc msvc9.0(VS2008) ##背景说明 >项目中需要对发布版本追踪崩溃 ...
- 零元学Expression Blend 4 - Chapter 12 用实例了解布局容器系列-「Viewbox」
原文:零元学Expression Blend 4 - Chapter 12 用实例了解布局容器系列-「Viewbox」 本系列将教大家以实做案例认识Blend 4 的布局容器,此章介绍的布局容器是Bl ...
- Android零基础入门第2节:Android 系统架构和应用组件那些事
原文:Android零基础入门第2节:Android 系统架构和应用组件那些事 继上一期浅谈了Android的前世今生,这一期一起来大致回顾一下Android 系统架构和应用组件. 一.Android ...
- ef 查询总结
1.Linq 查询两张表:a表和b表,要得到的数据是a表数据b表没有 例如:a表有5条数据1,2,3,4,5:b表有2条数据1,3:那么就用dataGridView1输出2,4,5:link语句要怎么 ...
- Decision Tree
Decision Tree builds classification or regression models in the form of a tree structure. It break d ...
- 漫步Facebook开源C++库Folly之string类设计(散列、字符串、向量、内存分配、位处理等,小部分是对现有标准库和Boost库功能上的补充,大部分都是基于性能的需求而“重新制造轮子”)
就在近日,Facebook宣布开源了内部使用的C++底层库,总称folly,包括散列.字符串.向量.内存分配.位处理等,以满足大规模高性能的需求. 这里是folly的github地址:https:// ...