首页 > 其他分享 >Codeforces Round 707 (Div. 2, based on Moscow Open Olympiad in Informatics) B. Napoleon Cake

Codeforces Round 707 (Div. 2, based on Moscow Open Olympiad in Informatics) B. Napoleon Cake

时间:2023-10-10 17:35:19浏览次数:29  
标签:std 面包 based cur int Moscow 707 solve 奶油

按以下 \(n\) 次操作制作蛋糕。

  • 叠上第 \(i\) 块面包,然后浇上 \(a_i\) 单位的奶油。可以使当前往下 \(a_i\) 块面包沾上奶油。

输出空格隔开的 \(n\) 个数,第 \(i\) 个的 \(0/1\) 代表第 \(i\) 块面包是否沾有奶油。

比较显然的思路可以进行差分修改。

view1
#include <bits/stdc++.h>
void solve(){
	int n; std::cin >> n;
	std::vector<int> a(n+2);
	for (int i = 1; i <= n; i++) {
		int d; std::cin >> d;
		int l = std::max(1, i - d + 1), r = i;
		a[l] += 1;
		a[r + 1] -= 1;
	}
	for (int i = 1; i <= n; i++) a[i] += a[i - 1];
	for (int i = 1; i <= n; i++) std::cout << (a[i] == 0 ? 0 : 1) << " \n"[i==n];
}
int main() {
	int _ = 1;  std::cin >> _;
	while (_--) {solve();}
	return 0;
}

观察到每次修改只会往左一段修改,于是可以从右往左逆序统计。维护 \(cur\) 即当前位置往左需要浸透多少面包。

view2
#include <bits/stdc++.h>
void solve(){
	int n; std::cin >> n;
	std::vector<int> a(n+1), ans(n+1);
	for (int i = 1; i <= n; i++) std::cin >> a[i];
	int cur = 0;
	for (int i = n; i; --i) {
		cur = std::max(cur, a[i];)
		if (cur > 0) cur -= 1, ans[i] = 1;
	}
	for (int i = 1; i <= n; i++) std::cout << ans[i] << " \n"[i==n];
}
int main() {
	int _ = 1;  std::cin >> _;
	while (_--) {solve();}
	return 0;
}

标签:std,面包,based,cur,int,Moscow,707,solve,奶油
From: https://www.cnblogs.com/zsxuan/p/17755274.html

相关文章

  • Codeforces Round 902 (Div. 2, based on COMPFEST 15 - Final Round)
    目录写在前面ABCDE写在最后写在前面比赛地址:https://codeforces.com/contest/1877。呜呜铃果唱歌太好听了、、、我宣布是第二喜欢的声线,第三喜欢是东北切蒲英,第一喜欢绝赞招募中。这下不得不成为数码推了、、、A答案为\(-\suma_i\)。懒得写代数式子推了,赛时看完题直接......
  • (2023年新疆大学、中科院等点云分类最新综述) Deep learning-based 3D point cloud cl
    目录1、引言2、3D数据2.1、3D数据表示形式2.2、点云数据存储格式2.3、3D点云公共数据集3、基于深度学习的点云分类方法3.1、基于多视角的方法3.2、基于体素的方法3.3、基于点云的方法3.3.1局部特征聚合3.3.1.1基于逐点处理的方法3.3.1.2基于卷积的方法3.3.1.3基于图的方法3.3.1......
  • Codeforces Round 902 (Div. 2, based on COMPFEST 15 - Final Round)
    Preface难得这么好时间的CF,我直接找来队友组队练题当然比赛的过程没有三人三机,就跟平时训练一样搞了个新号三人一机的写中间因为溜去先看F了导致E题留给徐神solo因此出的偏慢,不过后面一起讨论了一下还是出了最后开F结果好家伙我和祁神双双看错题,对着假题意苦战1h最后无奈投降,......
  • Codeforces Round 902 (Div. 1, based on COMPFEST 15 - Final Round) A~D
    A.HelmetsinNightLight首先注意到一个关键性质\(b_i\geq1\),这就意味着当我们花\(p\)的代价解锁了\(b_i\)最小的后,仅凭接下来的“连锁反应”就能解锁全部的点。注意到我们“连锁反应”的一定是按\(b_i\)从小到大排序后的一段前缀(因为越往后连锁代价越昂贵),找到转折点......
  • Git基础(Based on ProGit)
    GitGit的配置信息使用gitconfig命令对Git做一些配置。Git的配置文件等级Git的配置文件有三个,分别对应不同的影响等级:Linux下/etc/gitconfig:包含系统上每个用户及他们仓库的通用配置,使用gitconfig--system更改~/.gitconfig或~/.config/git/config:针对当前用户的......
  • 【题解】洛谷#P7073 [CSP-J2020] 表达式
    【题解】洛谷#P7073[CSP-J2020]表达式Description给定一个逻辑表达式和其中每一个操作数的初始取值后,再取反某一个操作数的值时,求出原表达式的值。表达式将采用后缀表达式的方式输入。Solution根据题目可得,当取反一个操作数的值时,整个表达式大体只有变与不变两种情况,而往下......
  • Depth Camera-based 3D Modeling
    基于深度相机的3D建模受到夏同学和王希同学的启发,我这几天看了下深度相机这一块,用于三维重建三维重建的pipeline是:深度图采集(主动式和被动式)->深度图预处理(噪音)->场景表示(立体/表面表示)->深度图像融合(相邻帧,涉及到点对匹配和位姿联合优化)->纹理重建。trade-offs有:基于体素的......
  • ABAP 异常处理(Exception Handling) - 什么是 Non-Class-Based 异常试读版
    本教程前一篇文章,笔者介绍了ABAP系统里查看程序运行时错误的一个有用工具:事务码ST22:112.SAPABAPDumpAnalysis(ST22)工具的使用和背景介绍在笔者实际工作过程中,发现部分开发人员,对于运行时错误(RuntimeError)和异常(Exception)这些概念的区别,理解得不是很清楚,因此使......
  • P7073 [CSP-J2020] 表达式
    Problem考察算法:后缀表达式建树,优化。题目简述读入一个后缀表达式,由\(\&,\mid,!\)三种运算和操作数构成。有\(q\)次询问,每次输入一个下标\(i\),表示要取反\(x_i\)的值。每次求表达式的值。暴力每次重新建表达式树,计算。时间复杂度:\(O(q\times|s|)\),达到了惊人的\(10......
  • P7072 [CSP-J2020] 直播获奖
    Problem考查知识点:桶优化。题目简述竞赛的获奖率为\(w\%\),即当前排名前\(w\%\)的选手的最低成绩就是即时的分数线。若当前已评出了\(p\)个选手的成绩,则当前计划获奖人数为\(\max(1,\lfloorp\timesw\%\rfloor)\),如有选手成绩相同,则所有成绩并列的选手都能获奖,因此实......