P9344 去年天气旧亭台 代码
不带滚动数组代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#define int long long
using namespace std;
const int N = 2000010;
int a[N], c[N], T, n, f[N];
signed main() {
scanf("%lld", &T);
while (T -- ) {
memset(f, 0, sizeof f);
scanf("%lld", &n);
for (int i = 1; i <= n; i ++ )
scanf("%lld", &a[i]);
for (int i = 1; i <= n; i ++ )
scanf("%lld", &c[i]);
int min0 = 1e10, min1 = 1e10;
for (int i = 1; i <= n; i ++ ) {
f[i] = f[i - 1] + a[i] + a[i]; // 只选择这一个打扫
if (c[i] == 0) f[i] = min(f[i], min0 + a[i]);
if (c[i] == 1) f[i] = min(f[i], min1 + a[i]);
if (c[i] == 0) min0 = min(min0, f[i - 1] + a[i]);
if (c[i] == 1) min1 = min(min1, f[i - 1] + a[i]);
}
printf("%lld\n", f[n]);
}
return 0;
}
带滚动数组代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#define int long long
using namespace std;
const int N = 2000010;
int a[N], c[N], T, n, f[2];
signed main() {
scanf("%lld", &T);
while (T -- ) {
f[0] = f[1] = 0;
scanf("%lld", &n);
for (int i = 1; i <= n; i ++ )
scanf("%lld", &a[i]);
for (int i = 1; i <= n; i ++ )
scanf("%lld", &c[i]);
int min0 = 1e10, min1 = 1e10;
int now = 1;
for (int i = 1; i <= n; i ++ ) {
f[now] = f[now ^ 1] + a[i] + a[i]; // 只选择这一个打扫
if (c[i] == 0) f[now] = min(f[now], min0 + a[i]);
if (c[i] == 1) f[now] = min(f[now], min1 + a[i]);
if (c[i] == 0) min0 = min(min0, f[now ^ 1] + a[i]);
if (c[i] == 1) min1 = min(min1, f[now ^ 1] + a[i]);
now ^= 1;
}
printf("%lld\n", f[now ^ 1]);
}
return 0;
}
P9344 去年天气旧亭台 代码的更多相关文章
- 低秩稀疏矩阵恢复|ADM(IALM)算法
一曲新词酒一杯,去年天气旧亭台.夕阳西下几时回? 无可奈何花落去,似曾相识燕归来.小园香径独徘徊. ---<浣溪沙·一曲新词酒一杯>--晏殊 更多精彩内容请关注微信公众号 "优化 ...
- W3School-CSS 分类 (Classification) 实例
CSS 分类 (Classification) 实例 CSS 实例 CSS 背景实例 CSS 文本实例 CSS 字体(font)实例 CSS 边框(border)实例 CSS 外边距 (margin) ...
- 日期格式代码出现两次的错误 ORA-01810
错误的原因是使用了两次MM . 一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 11:11:21','yyyy-MM-dd ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- iOS代码规范(OC和Swift)
下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...
- Jquery的点击事件,三句代码完成全选事件
先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...
- redux-amrc:用更少的代码发起异步 action
很多人说 Redux 代码多,开发效率低.其实 Redux 是可以灵活使用以及拓展的,经过充分定制的 Redux 其实写不了几行代码.今天先介绍一个很好用的 Redux 拓展-- redux-amrc ...
- 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)
建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...
- 使用 .NET WinForm 开发所见即所得的 IDE 开发环境,实现不写代码直接生成应用程序
直接切入正题,这是我09年到11年左右业余时间编写的项目,最初的想法很简单,做一个能拖拖拽拽就直接生成应用程序的工具,不用写代码,把能想到的业务操作全部封装起来,通过配置的方式把这些业务操作组织起来运 ...
- jsp前端实现分页代码
前端需要订一page类包装,其参数为 private Integer pageSize=10; //每页记录条数=10 private Integer totalCount; //总记录条数 priv ...
随机推荐
- Oracle查询--增加--删除--修改主键
对Oracle表主键的操作,有四类:查询,增加,修改,删除 1.查询主键 /*查询某个表中存在的约束*/ select * from user_constraints where table_name ...
- vscode自动格式化python代码符合pep8
vscode自动格式化python代码符合pep8 安装格式化工具打开命令行窗口安装以下工具 $ pip install -U flake8$ pip install -U autopep812在VS ...
- Arduino Uno Rev3
Overview Arduino Uno is a microcontroller board based on the ATmega328P (datasheet). It has 14 digit ...
- docker入门加实战—从部署MySQL入门docker
docker入门加实战-从部署MySQL入门docker docker部署MySQL 输入如下命令: docker run -d \ --name mysql \ -p 3306:3306 \ -e ...
- UVA10702 Travelling Salesman 题解
UVA10702 Travelling Salesman 题解 题面: 有个旅行的商人,他每到一个的新城市,便卖掉所有东西再购买新东西,从而获得利润.从某城市 A 到某城市 B 有固定利润(B 到 ...
- ABC318 A-G 题解
A 枚举 \(1\sim n\) 的每个数,判断是否有 \(i-M\equiv 0\pmod P\) 即可. 赛时代码 B 暴力覆盖即可,注意 \(x,y\) 均是左开右闭. 赛时代码 C 贪心的想, ...
- 关于通过StringTemplate模板生成xml转成excel后office无法打开的问题解决
说明:本人最近在着手实现导出日志数据,由于日志数据过多,在网上查找java 导出大量数据到excel的例子. 后发现园子里某位老哥通过StringTemplate模板生成excel格式的xml,这个思 ...
- unity UGUI 正交相机实现图片的透视旋转效果
UI透视效果常见的就是绕x轴或y轴旋转,来达到近大远小的效果.正经要做透视UI的话肯定直接用透视相机,如果透视效果用的极少(就一张图)不改动相机类型才按这种思路进行. 最简单直接的想法就是把矩形的图片 ...
- IOI2020 国家集训队作业 Part 1
日期不对,但要保证顺序正确方便查找少了啥题. 计算几何和实在不会的题没写. 9.20 CF504E Misha and LCP on Tree *3000 二分,hash,树剖 CF505E Mr. ...
- 『STAOI』G - Round 1 半个游记
很刺激. 挂个链接