\(这题刚好撞到我的思路了,但是因为模拟......我看了几十遍测试数据....\)

\(首先当\sum_{i=1}^m{a_i}\)小于n时一定无解

大于呢?那我们就要浪费一些区间(覆盖一些点,也就是多出来的点)

但是又不能全部覆盖,最早应该可以从上一个区间的左端点+1位置开始覆盖

然后模拟,刚开始能覆盖多少就覆盖多少。

但是注意,当i+a[i]-1>n时输出-1,这时候不论怎么放都不行。(比较难考虑周全)

然后代码写的很丑,就这样吧....

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=100009;
ll sumn=0;
int n,m;
int a[maxn],b[maxn];
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
scanf("%d",&a[i]);
sumn+=a[i];
}
for(int i=1;i<=m;i++)
{
if(a[i]+i-1>n)
{
cout<<-1;
return 0;
}
}
if(sumn<n) cout<<-1;
else if(sumn==n)
{
int r=1;
for(int i=1;i<=m;i++)
{
cout<<r<<" ";
r+=a[i];
}
}
else
{
sumn-=n;//要重合这么多点
b[1]=1;
int flag=0,r=a[1]+1;//结束位置
for(int i=2;i<=m;i++)
{
if(flag)
{
b[i]=r;
r+=a[i];
}
else
{
int L=min(a[i],r-i);//放在最左边重合的点
if(L>=sumn)//已经够了
{
b[i]=r-sumn;
r=b[i]+a[i];
flag=1;
}
else//还不够
{
sumn-=L;
b[i]=i;
r=max(r,i+a[i]);
}
}
}
for(int i=1;i<=m;i++) cout<<b[i]<<" ";
}
}

Dreamoon Likes Coloring(模拟+构造)的更多相关文章

  1. Codeforces 631 (Div. 2) C. Dreamoon Likes Coloring 思维or构造

    https://codeforces.com/contest/1330/problem/C 给n个格子染色,有m种颜色,要求最后的所以格子被染色,并且有m种颜色. 染色要求:每种颜色有一个值li,选择 ...

  2. Dreamoon Likes Coloring 【CF 1329 A】

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

  3. 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])递 ...

  4. 学习xss模拟构造攻击(第一篇)

    本文作者:i春秋签约作家——rosectow 0×00前言 XSS又名叫CSS全程(cross site scriptting),中文名跨站脚本攻击,目前网站的常见漏洞之一,它的危害没有像上传漏洞,s ...

  5. CF 1329B Dreamoon Likes Sequences

    传送门 题目: Dreamoon likes sequences very much. So he created a problem about the sequence that you can' ...

  6. Codeforces Round #397 by Kaspersky Lab and Barcelona Bootcamp (Div. 1 + Div. 2 combined) A B C D 水 模拟 构造

    A. Neverending competitions time limit per test 2 seconds memory limit per test 512 megabytes input ...

  7. hdu-5596 GTW likes gt(模拟+优先队列)

    题目链接: GTW likes gt  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 131072/131072 K (Java/Othe ...

  8. Codeforces Round #350 (Div. 2) F. Restore a Number 模拟构造题

    F. Restore a Number   Vasya decided to pass a very large integer n to Kate. First, he wrote that num ...

  9. AtCoder Grand Contest 030 (AGC030) C - Coloring Torus 构造

    原文链接https://www.cnblogs.com/zhouzhendong/p/AGC030C.html 题解 才发现当时是被题意杀了. 当时理解的题意是“对于任意的 (i,j) ,颜色 i 和 ...

随机推荐

  1. ArrayBlockingQueue和LinkedBlockingQueue的使用

    ArrayBlockingQueue和LinkedBlockingQueue的使用 博客分类: java.util.concurrent   BlockingQueue接口定义了一种阻塞的FIFO q ...

  2. Docker常用命令--ps/attach/run

    ps查看container 若查看正在运行的container docker ps 查看所有的container docker ps -a run启动容器 第一次启动container docker ...

  3. Go gRPC进阶-go-grpc-middleware使用(八)

    前言 上篇介绍了gRPC中TLS认证和自定义方法认证,最后还简单介绍了gRPC拦截器的使用.gRPC自身只能设置一个拦截器,所有逻辑都写一起会比较乱.本篇简单介绍go-grpc-middleware的 ...

  4. vue2.x学习笔记(十九)

    接着前面的内容:https://www.cnblogs.com/yanggb/p/12631022.html. 程序化的事件侦听器 在前面的学习中,我们已经知道了[$emit]全局属性的用法,它可以被 ...

  5. vue2.x学习笔记(十五)

    接着前面的内容:https://www.cnblogs.com/yanggb/p/12609450.html. 组件的自定义事件 这里来学习一下组件中的自定义事件. 事件名 不同于组件名和prop,事 ...

  6. 神奇的Kivy,让Python快速开发移动app

    随着移动互联网的不断发展,手机.Pad等移动终端已经被普遍使用,充斥在人们的工作.学习和生活中,越来越多的程序都转向移动终端,各类app应用相拥而至. Kivy作为Python的Android和IOS ...

  7. Oracle Database 12C 安装教程

    一.下载地址 Oracle Database 官方下载地址:https://www.oracle.com/database/technologies/oracle-database-software- ...

  8. socket小计

    socket,是一个实现了双向通信的链接. 将http比喻为轿车,承载数据.传递数据,那么socket,就是轿车的发动机,它轿车动起来.

  9. js 一维数组,转成嵌套数组

    // 情况一: // 数据源var egs = [ {name_1: 'name_1...'}, {name_2: 'name_4...'}, {name_3: 'name_3...'}, {name ...

  10. 在php中如何实现cookie即时生效,不用刷新就可以使用

    参考:https://www.jianshu.com/p/0468ef5dbf4d 今天在用php设置cookie的时候,发现cookie如果只是赋值一次的话,要手动刷新一下浏览器才能把数据及时更新, ...