zoukankan      html  css  js  c++  java
  • Codeforces Round #507 (Div. 2)C(贪心,逆向遍历,构造)

    #include<bits/stdc++.h>
    using namespace std;
    int order[300007];
    long long t[300007],ans[300007];
    int main(){
        int n;
        long long m;
     scanf("%d%lld",&n,&m);
     for(int i=1;i<=n;i++)
      scanf("%lld",&t[i]);
     t[n+1]=2e18;
     for(int i=1;i<=n;i++)
      scanf("%d",&order[i]);
     for(int i=1;i<=n;i++)
      if(order[i]<i)
       return puts("No"),0;
     for(int i=1;i<n;i++)
      if(order[i]>order[i+1])
       return puts("No"),0;
     for(int i=n;i>0;i--)
      ans[order[i]]=t[order[i]+1]+m-1;//从后往前是为了尽可能放大空间
     for(int i=n;i>0;i--)
      if(!ans[i])
       ans[i]=ans[i+1]-1;//贪心
     for(int i=1;i<n;i++)
      if((order[i]>i)&&(ans[i]-t[i+1]<m))//出现相同order的话,要能够让后面的前进一个,所以如果不给后面留空间那就不符合题意
       return puts("No"),0;
     puts("Yes");
     for(int i=1;i<=n;i++)
      printf("%lld ",ans[i]);
     return 0;
    }

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    thunkify 模块
    koa框架异步返回值的操作(co,koa-compose)
    ES6 基础版迭代器
    静态类在线程中的共享问题
    AWS远程登录
    系统状体检测命令
    常用系统命令
    文本文件查看命令
    vim
    查看md5
  • 原文地址:https://www.cnblogs.com/ldudxy/p/10267929.html
Copyright © 2011-2022 走看看