原题链接:Problem - C - Codeforces

题意:有n个盒子,盒子内部有n本书。若干个盒子上有一个盖子,马上就要下雨了,盖子可以保护这些书不被雨淋到。你可以选择将一些盖子移动到左端的位置上,每个盖子只能最多移动一次,求最多保护的书的数量。

思路:处理连续的盖子,判断是否需要向前移动即可。

#define _CRT_SECURE_NO_WARNINGS 1
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include<map>
#include<queue>
#include<stack>
#include<set>
#include<math.h>
#define FOR(a,b) for(int i=a;i<=b;i++)
#define ROF(a,b) for(int i=a;i>=b;i--)
#define FORj(a,b) for(int j=a;j<=b;j++)
#define ROFj(a,b) for(int j=a;j>=b;j--)
#define FORk(a,b) for(int k=a;k<=b;k++)
#define ROFk(a,b) for(int k=a;k>=b;k--)
#define mem(i,a) memset(i,a,sizeof(i))
#define ll long long
#define inf 0x3f3f3f3f
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define int long long
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endl
#define pi acos(-1.0)
#define endl '\n'
using namespace std;
const int maxn = 2e5 + 5;
int a[maxn];
char s[maxn];
bool cmp(int x, int y) {return x > y;
}
void solve() {int n;cin >> n;cin >> s+1;FOR(1, n)cin >> a[i];int k = 0,sum=0,p=1;FOR(1, n ) {if (s[i] == '1')k++;if (s[i] == '1' && s[i + 1] == '0' || i==n&&s[i]=='1') {if(s[i-k]=='0') {sort(a + i-k, a  +i+1,cmp);FORj(i-k,i-1)sum += a[j];} else FORj(i-k+1,i)sum+=a[j];k = 0;}}cout << sum << endl;
}
signed main() {cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);int _;cin >> _;while (_--)solve();return 0;
}

【每日一题】打卡 15相关推荐

  1. 2022-03-10每日刷题打卡

    2022-03-10每日刷题打卡 力扣--每日一题 589. N 叉树的前序遍历 给定一个 n 叉树的根节点 root ,返回 其节点值的 前序遍历 . n 叉树 在输入中按层序遍历进行序列化表示,每 ...

  2. 2022-02-15每日刷题打卡

    2022-02-15每日刷题打卡 AcWing--算法基础 900. 整数划分 - AcWing题库 一个正整数 n 可以表示成若干个正整数之和,形如:n=n1+n2+-+nk,其中 n1≥n2≥-≥ ...

  3. 2021-11-15每日刷题打卡

    2021-11-15每日刷题打卡 AcWing--算法基础 AcWing 794. 高精度除法 - AcWing 给定两个非负整数(不含前导 00) A,B,请你计算 A/B 的商和余数. 输入格式 ...

  4. 电动力学每日一题 2021/10/15 Fourier变换法计算均匀电流密度产生的磁场

    电动力学每日一题 2021/10/15 Fourier变换法计算均匀电流密度产生的磁场 无限长均匀电流 无限长圆柱面均匀电流密度 无限长均匀电流 假设z轴上有一根非常细的电线,携带均匀电流I0I_0I ...

  5. 2022-04-14每日刷题打卡

    2022-04-14每日刷题打卡 代码源--每日一题 上帝的集合 - 题目 - Daimayuan Online Judge 题目描述 现在上帝有一个空集合,现在他命令你为他执行下列三种操作 n 次, ...

  6. 2022-04-01每日刷题打卡

    2022-04-01每日刷题打卡 代码源--每日一题 Lusir的游戏 - 题目 - Daimayuan Online Judge Lusir 正在玩一个古老的基于 DOS 的游戏. 游戏中有 N+1 ...

  7. 2021-12-11每日刷题打卡

    2021-12-11每日刷题打卡 力扣--剑指offer 剑指 Offer 40. 最小的k个数 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字, ...

  8. 2022-03-02每日刷题打卡

    2022-03-02每日刷题打卡 代码源--div2每日一题 Alice的德州扑克 - 题目 - Daimayuan Online Judge 德州扑克是目前世界上最流行的扑克游戏,全世界有众多相关的 ...

  9. 2022-03-03每日刷题打卡

    2022-03-03每日刷题打卡 力扣--每日一题 258. 各位相加 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数.返回这个结果. 示例 1: 输入: num = 38 输出 ...

  10. 关于LeetCode每日一题打卡失败的感悟

    背景 今年5月,报名参加了三叶姐的"五月打卡活动",押金29.9元,要求每天在力扣上每日一题打卡,完成则押金全退,完不成则押金不退. 事件 2022.5.10,LeetCode上的 ...

最新文章

  1. ggplot2包绘基因差异表达点图
  2. [Spring MVC] - Spring MVC环境搭建
  3. 解决RabbitMQ消息丢失与重复消费问题
  4. 补补算术基础:编程中的进制问题
  5. Mybatis使用generator自动生成映射配置文件信息
  6. VTK:反射用法实战
  7. 复合型法matlab,复合形法程序出错求大神改错急急急
  8. java 加密_Java版SMS4加密解密算法
  9. PLSQL快捷键使用,让你高速开发
  10. 浅谈渗透测试之前期信息搜集
  11. .NET 框架中的字符串(转自MSDN,关于字符串的详细解说!)
  12. Scrum vs Waterfall vs Agile vs Lean vs Kanban
  13. mysql中sql添加表字段_SQL如何添加字段
  14. 向量数量积公式_向量数量积公式是什么
  15. apscheduler报错maximum number of running instances
  16. raid控制器2大厂商阵营并购史
  17. matlab报错Unbalanced or unexpected parenthesis or bracket.
  18. SpringBoot 在启动时执行某些方法
  19. osg画线_在OpenSceneGraph中绘制OpenCascade的曲面
  20. 16.安全整改.part3

热门文章

  1. @Value中#和$的用法
  2. linux下各种文件大小限制
  3. 阿里巴巴马云掀金融革命:反哺商购交易
  4. 不等式恒成立求字母范围
  5. 弹性盒子(Flex Box)模型
  6. pipe管道—进程通信
  7. KindlePW3壁纸越狱设置问题
  8. 浏览器广告拦截_如何检测广告拦截器
  9. 高德地图画扇形v3.0
  10. 怎么录制电脑内部声音?