题意:有一个单行走廊,每回合第ai个展柜会冒出来一只鬼,右边尽头有一个人间大炮和向最左传送门(费用均1金币),你需要每回合将所有鬼交换展柜,全部至最右,问若从一到n所有回合结束是需多少金币可射死所有鬼。

思路:花一块可将一只鬼挪至最右,然后使用一个指针储蓄最右有几个鬼,然后相减就可以了。

见代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int n,k,a[],b[];
bool c[];
int main()
{
freopen("coin.in","r",stdin);
freopen("coin.out","w",stdout);
cin>>n;
k=n;
b[]=;
for(int i=;i<=n;i++)
{
cin>>a[i];
c[a[i]]=true;
if(a[i]==k)
{
while(c[k]==true)
k--;
if(k==n-i)
b[i]=;
else
b[i]=b[i-];
}
else
b[i]=+b[i-];
}
for(int i=;i<=n;i++)
cout<<b[i]<<" ";
return ;
}

又双叒叕炸掉了!

原因是部分在右部分不在右的情况未考虑清。

见代码*2:

#include<iostream>
using namespace std;
int n,k,a[],b[];
bool c[];
int main()
{
cin>>n;
k=n;
b[]=;
for(int i=;i<=n;i++)
{
cin>>a[i];
c[a[i]]=true;
b[i]=b[i-]+;
if(a[i]==k)
{
while(c[k]==true)
{
b[i]--;
k--;
}
}
}
for(int i=;i<=n;i++)
cout<<b[i]<<" ";
return ;
}

好题哉!!!

最新文章

  1. (转载)哈夫曼编码(Huffman)
  2. Java基础-四要素之一《抽象》(接口)
  3. 【译】 AWK教程指南
  4. 下面css hack的写法分别用于哪些浏览器
  5. CSS下背景属性background的使用方法
  6. 计蒜客模拟赛D1T2 蒜头君的树:树上节点之间最短距离和
  7. Git与码云(Git@OSC)入门-如何在实验室和宿舍同步你的代码(1)
  8. c语言基础学习09_关于复合类型的复习
  9. EasyUI easyui-combobox实现数据联动
  10. How to Build a New Habit: This is Your Strategy Guide
  11. [Leetcode 104]求二叉树的深度Depth of BinaryTree
  12. 为什么 c = tf.matmul(a, b) 不立即执行矩阵乘法?
  13. FPGA三分频,五分频,奇数分频
  14. 理解bind函数
  15. 利用JDK自带工具keyTool生成安全证书
  16. Linux内核程序的编译:模块化编译
  17. 除了GPS外的4种获得用户地理位置数据的方法
  18. [BZOJ2429][HAOI2006]聪明的猴子(最小生成树)
  19. 手动编译安装Libvirt之后利用systemctl管理libvirtd服务
  20. spi总结

热门文章

  1. 实现简单ORM案例
  2. spring boot中配置文件中变量的引用
  3. 吴裕雄 python 神经网络——TensorFlow 变量管理
  4. 安装go和goland
  5. php的注释、变量、类型、常量、运算符、比较符、条件语句;
  6. thymeleaf模板引擎简介
  7. Python爬虫连载6-cookie深入使用实例化实现自动登录
  8. 投资人分享答疑----HHR计划----以太直播课第三课
  9. nginx访问目录是没加/的重定向控制
  10. 牛茶冲天的ip命令