2017.1.13【初中部 GDKOI】模拟赛B组 天黑黑 题解
来源:互联网 发布:美林数据股份有限公司 编辑:程序博客网 时间:2024/04/30 17:50
原题:
http://172.16.0.132/senior/#contest/show/1894/2
题目描述:
我走在每天必须面对的分岔路/我怀念过去单纯美好的小幸福/爱总是让人哭/让人觉得不满足/天空很大却看不清楚/好孤独/天黑的时候/我又想起那首歌/突然期待下起安静的雨/原来外婆的道理早就唱给我听/下起雨/也要勇敢前行/我相信/一切都会平息/我现在好想回家去/天黑黑/欲落雨/天黑黑/黑黑
当整个世界陷入黑暗的时候,身为光明之神的Zyh想要用自己的若干个能量源和若干个集流器将这些能量源并成一个最大的能量源,这样他就可以造出最大的灯来照亮整个世界。
具体地来说每个能量源可以直接给出Ei的能量。而每个集流器是由两个接受端口和一个输出端口组成的。集流器有两种:A类和B类。A类是叠加集流器,可以将两个接收端口的能量叠加并输出。B类是取代集流器,可以将两个接受端口的能量较大那个输出。
现在有n-1个集流器,n个能量源。Zyh给出了集流器的连接方式,他想知道怎样放置能量源,能够使最后的输出最大化。
输入:
第一行是一个字符串,表示连接的方式。给出的形式是这样的:X,表示一个单独的输出能量源的放置处;AS1S2,其中S1和S2表示两个输出能量,A表示使用叠加集流器将能量并成一个,然后这本身也成为一个新的输出能源;BS1S2也是同理,只不过是使用取代集流器。并且保证A和B的个数为n-1个。X的个数为n个。
第二行是n个正整数,表示这几个能量源。
输出:
一个数,表示最大的输出能源。
样例输入:
输入1:
BXBXX
8 2 3
输入2:
AXBXX
8 2 3
样例输出:
输出1:
8
输入2:
11
数据范围限制:
对于20%的数据 n<10
对于60%的数据 n<=3000
对于100%的数据 n<=200000 Ei<=10000
提示:
分析:
我们发现A类集流器是不会造成能源个数的损失的,然后B类的话只会造成其一端的能源个数损失。然而我们只要知道能源的最大个数,然后从高到低填上去就行了并且读入的时候用个栈读入;
即:
实现:
var s:ansistring; i,t,n,ans:longint; a:array[0..200000]of longint; z:array[0..200000]of ansistring;procedure q(x,y:longint);var i,j,mid:longint;begin i:=x; j:=y; mid:=a[x]; repeat while a[j]<mid do dec(j); while a[i]>mid do inc(i); if i<=j then begin a[0]:=a[i]; a[i]:=a[j]; a[j]:=a[0]; inc(i); dec(j); end; until i>j; if x<j then q(x,j); if i<y then q(i,y);end;begin readln(s); for i:=length(s) downto 1 do begin if s[i]='B' then begin if z[t]>z[t-1] then z[t-1]:=z[t]; z[t]:=''; dec(t); end else if s[i]='A' then begin z[t-1]:=z[t-1]+z[t]; z[t]:=''; dec(t); end else begin inc(t); z[t]:=s[i]; end; end; n:=(length(s)+1)div 2; for i:=1 to n do read(a[i]); q(1,n); for i:=1 to length(z[1]) do inc(ans,a[i]); writeln(ans);end.
- 2017.1.13【初中部 GDKOI】模拟赛B组 天黑黑 题解
- 2017.1.13【初中部 GDKOI】模拟赛B组 逆光 题解
- 2017.1.14【初中部 GDKOI】模拟赛B组题解
- 2017.1.19【初中部 GDKOI】模拟赛B组 开灯 题解
- 2017.1.19【初中部 GDKOI】模拟赛B组 长方形 题解
- 2017.1.21【初中部 GDKOI】模拟赛B组 国色天香 题解
- 2017.1.13【初中部 GDKOI】模拟赛B组 我要的幸福 题解
- 2017.2.09【初中部 GDKOI】模拟赛B组 昵称 题解
- 2017.2.10【初中部 GDKOI】模拟赛B组题解
- 2017.2.11【初中部 GDKOI】模拟赛B组题解
- 2017.2.11【初中部 GDKOI】模拟赛B组题解
- 2017.1.13【初中部 GDKOI】模拟赛B组
- 2017.1.13【初中部 GDKOI】模拟赛B组
- 2017.1.14【初中部 GDKOI】模拟赛B组 Mooo Moo 题解
- 2017.1.14【初中部 GDKOI】模拟赛B组 心灵终结 题解
- 2017.1.14【初中部 GDKOI】模拟赛B组 Watering the Fields 题解
- 2017.1.14【初中部 GDKOI】模拟赛B组 Mooo Moo 题解
- 2017.1.14【初中部 GDKOI】模拟赛B组 心灵终结 题解
- 【MFC】 多国语言设置
- 关于js中用base64编码处理中文的问题
- 微信小程序 wx:key
- Android 开发中的坑
- SpringMVC整合Mybatis+Maven+Bootstrap的简单Demo
- 2017.1.13【初中部 GDKOI】模拟赛B组 天黑黑 题解
- oracle job 每分钟执行一次
- DOM4J解析xml
- TS---DMVPN 建立不通,第一步就是检查物理接口直接是否可以ping通,在检查其他的, 排错思路!!
- React-Native实战系列
- SqlServer2000中附加数据库的时候出现错误9003的解决
- Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined) -- B. Bash's Big Day (唯一分解定理)
- 奖券数目
- Android SVG图片制作