codeforces37C
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的更多相关文章
随机推荐
- python之闭包、装饰器
一.学习Python的时候发现函数内部,还可以写函数,并且可以返回函数.觉得挺新奇的,主要是在探索装饰器(有点像Java的注解)的时候,发现这个理解还是很主要的,所以这里记录一下. 二.闭包 1)首先 ...
- Django中生成随机验证码(pillow模块的使用)
Django中生成随机验证码 1.html中a标签的设置 <img src="/get_validcode_img/" alt=""> 2.view ...
- 解决github提示安全漏洞的问题
今天在提交代码的时候发现github提示了这样的错误: We found potential security vulnerabilities in your dependencies. Only t ...
- List转换字典去重问题
数据源 var list = new List<TestClass> { ,Name="}, ,Name="}, ,Name="}, ,Name=" ...
- javascript_14-对象
什么是对象 生活中的对象,一个车.一个手机 对象具有特性和行为 面向对象和基于对象 面向对象:可以创建自定义的类型.很好的支持继承和多态.面向对象的语言有 c++ .Java. C# ... 面向对象 ...
- linux命令详解
命令语法介绍 命令 [参数] [文件或路径] rm -f /etc/hosts 注:命令和参数至少一个空格(可以多个连着写) 路径不带空格 ...
- Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
今天想把之前的一个demo用Nginx把资源分离开来,在网上看了一天,整整弄了一天,硬是没弄出来. 要么全是同样的内容的,要么就是环境跟我这里不一样的.再加上对Nginx没接触过,给我都整哭了差点. ...
- IAR 为 STM32新建工程模板(最详细)
今天给小伙伴分享一篇给stm32新建工程模版 1.首先打开IAR,就是这个样子 2.再建一个目录文件夹 3.建立一个工作空间,以及建好工作空间如右图所示 4.接下来建立工程,Project------ ...
- SSH与ansible 部署方法与核心模块简介
SSH与ansible 部署方法 部署环境 管理服务器 172.16.1.61 NFS服务器 172.16.1.31 备份服务器 172.16.1.41 1检查SSH服务是否运行并开启服务 netst ...
- JDK源码那些事儿之并发ConcurrentHashMap上篇
前面已经说明了HashMap以及红黑树的一些基本知识,对JDK8的HashMap也有了一定的了解,本篇就开始看看并发包下的ConcurrentHashMap,说实话,还是比较复杂的,笔者在这里也不会过 ...