https://codeforces.com/contest/1330/problem/C

给n个格子染色,有m种颜色,要求最后的所以格子被染色,并且有m种颜色。

染色要求:每种颜色有一个值li,选择 [1,n-li+1] 范围的一个数pi,把 [pi,pi+li-1] 范围内的格子染色,不能超过n,否则无法染色,重复染色的格子的颜色以最后染色的颜色为准。

求:pi,如果不能满足条件,则打印 -1 .

人话:对于每个li,从任意起点开始把li个格子染色,不能染出n个格子的范围,找到每个起始位置,使得所有格子都被染色,并且有m种颜色。

思路:首先输入li的前缀和必须满足大于等于n,每次染色,后面有足够的格子,否则输出 -1 ,那么我们先从后往前维护每次染色的起点的最大值,然后从前往后染色,每次尽量染最多的格子,前一个染色结束位置的后面一个位置和起点的最大位置取min,这样就保证了它能够染li个格子并且不会超出n,也不会因为重复染色过多而导致某种颜色被覆盖或者还有格子没有被染色。

#include <bits/stdc++.h>
using namespace std;
const int MAXN=1e5+5;
const int mod=1e9+7;
typedef long long ll;
//typedef __int128 LL;
const int inf=0x3f3f3f3f;
const long long INF=0x3f3f3f3f3f3f3f3f;
int ans[MAXN],t[MAXN];
int a[MAXN]; int main()
{
int n,m;
ll sum=0; scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
} if(sum<n)printf("-1\n");
else
{
int l=inf;
for(int i=m;i>=1;i--)
{
l=min(l,n-a[i]+1);
t[i]=l;
l--;
}
if(l<0)printf("-1\n");
else
{
l=1;
for(int i=1;i<=m;i++)
{
l=min(l,t[i]);
ans[i]=l;
l=l+a[i];
}
for(int i=1;i<=m;i++)printf("%d%c",ans[i],i==m?'\n':' ');
}
}
return 0;
}
/*
100 3
60 20 20 5 4
2 2 2 2 */

Codeforces 631 (Div. 2) C. Dreamoon Likes Coloring 思维or构造的更多相关文章

  1. Codeforces 631 (Div. 2) D. Dreamoon Likes Sequences 位运算^ 组合数 递推

    https://codeforces.com/contest/1330/problem/D 给出d,m, 找到一个a数组,满足以下要求: a数组的长度为n,n≥1; 1≤a1<a2<⋯&l ...

  2. Codeforces Round #631 (Div. 2) D.Dreamoon Likes Sequences

    题目连接:Dreamoon Likes Sequences  题意:给你d和m,让你构造一个递增数组a,使数组b(i==1,b[i]=a[i] ; i>1, b[i]=b[i-1]^a[i])递 ...

  3. Codeforces Round #631 (Div. 2) D. Dreamoon Likes Sequences (bitmasks +dp )

    https://codeforces.com/contest/1330/problem/D 题目大意:给出一个限制 d 与模数 m ,求出可以构造出的满足条件的数组 a 的个数,需要满足以下条件:   ...

  4. Codeforces Round #631 (Div. 1) B. Dreamoon Likes Sequences 题解(思维+求贡献)

    题目链接 题目大意 让你构造一个严格单调上升的数组a满足\(1<=a_1<a_2<....a_n<=d\) 而且要使得这个数组的异或前缀和也满足严格单调上升,求有多少个满足条件 ...

  5. Codeforces 631 (Div. 2) E. Drazil Likes Heap 贪心

    https://codeforces.com/contest/1330/problem/E 有一个高度为h的大顶堆:有2h -1个不同的正整数,下标从1到2h−1,1<i<2h, a[i] ...

  6. Dreamoon Likes Coloring 【CF 1329 A】

    传送门 思路:"Dreamoon will choose a number pipi from range [1,n−li+1](inclusive) and will paint all ...

  7. Dreamoon Likes Coloring(模拟+构造)

    \(这题刚好撞到我的思路了,但是因为模拟......我看了几十遍测试数据....\) $首先当\sum_^m$小于n时一定无解 大于呢?那我们就要浪费一些区间(覆盖一些点,也就是多出来的点) 但是又不 ...

  8. Codeforces Round #631 (Div. 1) A-C

    在 \(\text{Div. 2/3}\) 混了一个多月后,四个号终于都上紫了,也没用理由不打 \(\text{Div. 1}\) 了.这是我人生中的第一场 \(\text{Div .1}\) ,之前 ...

  9. Codeforces Round #631 (Div. 2)

    Contest Info Practice Link Solved A B C D E F 4/6 O O Ø       O 在比赛中通过 Ø 赛后通过 ! 尝试了但是失败了 - 没有尝试 Solu ...

随机推荐

  1. vue的插件使用

    插件通常是为Vue添加全局功能,vue的官网介绍了5中添加插件的方法. vue的插件有个公开方法install.第一个参数是Vue构造器,第二个参数是一个可选的选项对象. 在plugin.js中可以这 ...

  2. 浅谈JS之setTimeout与setInterval

    概念 setTimeout与clearTimeout,以及setInterval与clearInterval均属于Window对象方法. 方法 描述 setTimeout 在指定的毫秒数后调用函数或计 ...

  3. MapReduce 简单数据统计

    1. 准备数据源 摘录了一片散文,保存格式为utf-8 2. 准备环境 2.1 搭建伪分布式环境 https://www.cnblogs.com/cjq10029/p/12336446.html 上传 ...

  4. Django Queryset增加manager

    **#定义一个新的过滤规则,这里是过滤状态为发布的帖子** **class PublishedManager(models.Manager):**        **def get_queryset( ...

  5. OpenCV3入门(十四)图像特效—挤压、哈哈镜、扭曲

    一.图像挤压特效 1.原理 图像压效果本质的图像坐标的非线性变换,将图像向内挤压,挤压的过程产生压缩变形,从而形成的效果. 挤压效果的实现是通过极坐标的形式,设图像中心为O(x,y),某点距离中心O的 ...

  6. 提示消息无缝向上滚动(vue)

    <div class="order-tips__message-item" :class="getClass(index)" v-for="(o ...

  7. Docker 技术系列之安装多版本Mysql5.6和Mysql5.7

    大家好,后面的就不是关于MAC专有的内容,基本是跟Java环境,基础技术方面有关.所以这个教程对于在linux系统还是macOS都是通用的,不用担心. 上一篇,我们安装好对应的Docker之后,感受到 ...

  8. 从零搭建Spring Cloud Gateway网关(一)

    新建Spring Boot项目 怎么新建Spring Boot项目这里不再具体赘述,不会的可以翻看下之前的博客或者直接百度.这里直接贴出对应的pom文件. pom依赖如下: <?xml vers ...

  9. session、cookie和taken的区别

    http是无状态的协议,所以要维持应用的会话形式,就需要加入以下几种机制,来进行会话跟踪,识别用户身份(当同一用户进行多次操作,不用反复请求建立新的连接,从而节省服务器资源和处理速度)   生成位置 ...

  10. 初创电商公司Drop的数据湖实践

    欢迎关注微信公众号:ApacheHudi 1. 引入 Drop是一个智能的奖励平台,旨在通过奖励会员在他们喜爱的品牌购物时获得的Drop积分来提升会员的生活,同时帮助他们发现与他们生活方式产生共鸣的新 ...