CF37C Old Berland Language

 

sol:直接暴力模拟下去,长度加了就补0,凑个数就+1,凑不好就puts(“no”)

#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
ll s=; bool f=; char ch=' ';
while(!isdigit(ch)) {f|=(ch=='-'); ch=getchar();}
while(isdigit(ch)) {s=(s<<)+(s<<)+(ch^); ch=getchar();}
return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
if(x<) {putchar('-'); x=-x;}
if(x<) {putchar(x+''); return;}
write(x/); putchar((x%)+'');
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int N=;
int n,nn,a[N],b[N],c[N];
vector<string>ans;
#define PB push_back
bool used[N];
inline bool add(string &s)
{
int i;
s[s.size()-]++;
for(i=s.size()-;i>;i--) if(s[i]=='') {s[i]=''; s[i-]++;}
return (s[]=='')?:;
}
int main()
{
freopen("codeforces37C_data.in","r",stdin);
int i,j;
string s;
R(n);
for(i=;i<=n;i++)
{
a[i]=b[i]=read(); c[a[i]]++;
}
sort(a+,a+n+); nn=unique(a+,a+n+)-a-;
a[]=;
// cout<<"nn="<<nn<<endl;
for(i=;i<=nn;i++)
{
for(j=a[i-]+;j<=a[i];j++) s+='';
bool flg=,oo;
for(;;)
{
// cout<<"c="<<c[a[i]]<<endl;
if(!c[a[i]]) break;
if(flg)
{
oo=add(s);
if(!oo) return puts("NO"),;
}
flg=; c[a[i]]--; ans.PB(s);
}
oo=add(s); if((!oo)&&(i!=nn)) return puts("NO"),;
}
// cout<<"ans.size()="<<ans.size()<<endl;
puts("YES");
for(i=;i<=n;i++)
{
for(j=;j<ans.size();j++) if(ans[j].size()==b[i]&&(!used[j]))
{
cout<<ans[j]<<endl; used[j]=; break;
}
}
return ;
}

codeforces37C的更多相关文章

随机推荐

  1. Tomcat HTTP connector和AJP connector

    Tomcat服务器通过Connector连接器组件与客户程序建立连接,“连接器”表示接收请求并返回响应的端点.即Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客户. ...

  2. Vuex 刷新后数据丢失问题 Typescript

    问题描述:Vuex保存的数据在页面刷新后会全部丢失清除 问题解决方案:使用sessionstorage进行保存,在页面刷新时保存至sessionStorage,页面在加载时再进行填充   (另有vue ...

  3. 将py文件打包到docx

    import os class FileDownload: def __init__(self): self.exclude = ['db.sqlite3', 'logs', 'media', 'Pi ...

  4. ol li 兼容

    ol 标签在 chrome 60 和 safari12 缩进不一样. 因为序号距离copy距离不一样,导致显示不一样.解决办法. list-style-position: inside;text-in ...

  5. Fortify漏洞之Cross-Site Scripting(XSS 跨站脚本攻击)

    书接上文,继续对Fortify漏洞进行总结,本篇主要针对XSS跨站脚步攻击漏洞进行总结,如下: 1.Cross-Site Scripting(XSS 跨站脚本攻击) 1.1.产生原因: 1. 数据通过 ...

  6. nginx的gzip模块详解以及配置

    文章来源 运维公会:nginx的gzip模块详解以及配置   1.gzip模块作用 gzip这个模块无论在测试环境还是生产环境都是必须要开启,这个模块能高效的将页面的内容,无论是html或者css.j ...

  7. 【DRF框架】利用序列化组件操作

    使用序列化组件进行操作 不带参数:查+增 带参数:查.改.删 不带参数的操作 # url路由 url(r'^book_list/$',Search_book.as_view()), # views.p ...

  8. Django :中间 件与csrf

    一.中间件 什么是中间件 中间件有什么用 自定义中间件 中间件应用场景 二.csrf csrf token跨站请求伪造 一.中间件 1.什么是中间件 中间件顾名思义,是介于request与respon ...

  9. Linux 本机/异机文件对比

    一:提取异步机器文件 #ssh 192.168.1.2 "cat /etc/glance/glance-api.conf | grep -v '#' |grep -v ^$" 二: ...

  10. python高级特性-sorted()

    1.数字排序 >>> sorted([1,-12,13,-4],key=abs) [1, -4, -12, 13] 2.字符串排序 按ASCII排序 默认情况下,对字符串排序,是按照 ...