zoukankan      html  css  js  c++  java
  • JZOJ3487 剑与魔法

    Description

      万老师听说某大国很流行穿越,于是他就想写一个关于穿越的剧本。

      闲话休提。话说老师穿越到了某一个剑与魔法的大陆。因为如此这般,所以老师从维娜艾那里得到了预言。老师一共被告知了若干件按顺序结算的事件。这些事件分为两类:战役事件(CASE)、穿越回去事件(END)。战役事件可以选择是否参加,参加了之后会获得一定的金钱。每个END事件发生需要至少参加一定数量的战役事件。特别的是,END事件如果满足要求就会强制发生。老师希望在大陆玩个够,所以他要求只有最后一个END事件会发生。老师希望获得最多的金钱,所以求助于你。   

    Input

      第一行一个数N,表示输入文件有多少行。

      接下来每一行用空格隔开一个字符和一个整数。字符为“c”表示战役事件,接下来的整数表示这次涨RP顺带有多少钱;字符为“e”表示穿越回去事件,接下来的整数代表至少要涨多少RP。最后一个事件保证是END事件。   

    Output

      第一行一个整数,最多金钱数目。

      若不可能则输出-1。

    Sample Input

      5
      c 10
      c 12
      e 2
      c 1
      e 2

    Sample Output

      13

    Data Constraint

      30%的数据满足 N<=20

      60%的数据满足 N<=1,000

      100%的数据满足 N<=200,000

      每次涨RP事件赏金不超过10,000

      穿越事件的要求不超过200,000   
     

    Solution

      建立一条优先队列,如果是战役事件就放入队列中,穿越事件就从小到大踢出队列的数,知道小于需要的事件数。

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<queue>
     5 using namespace std;
     6 priority_queue<int> d;
     7 char ch;
     8 int n,x,h,ans,w;
     9 int main()
    10 {
    11     scanf("%d",&n);
    12     for (int i=1;i<=n;i++)
    13     {
    14         cin>>ch;
    15         scanf("%d",&x);
    16         if (ch=='c')
    17         {
    18             x=-x;
    19             d.push(x);
    20             h++;
    21         }
    22         else
    23             if (i!=n)
    24              {
    25                 for (int i=1;i<=h-x+1;i++)
    26                     d.pop();
    27                 if (h>=x) h=x-1;
    28             }
    29     }
    30     for (int i=1;i<=h;i++)
    31     {
    32         w=d.top();
    33         d.pop();
    34         ans=ans-w;
    35     }
    36     printf("%d",ans);
    37 }
    View Code
     
  • 相关阅读:
    python的使用
    SFM(structure from motion)
    linux 常用命令
    opencv图像操作
    两圆位置判断
    nat123动态域名解析软件使用教程
    IIS负载均衡
    Oracle 查询表信息(字段+备注) .
    【原创】开源.NET排列组合组件KwCombinatorics使用(三)——笛卡尔积组合
    visual studio 2013使用技巧
  • 原文地址:https://www.cnblogs.com/Tokisaki-Kurumi/p/9432937.html
Copyright © 2011-2022 走看看