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的更多相关文章
随机推荐
- flutter从入门到精通一
Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动.Web.桌面和嵌入式平台 flutter是基于dart语言开发的,我们将首先通过几章节 ...
- Python Unittest进行接口测试的简单示例
今年肯定是要把Python学到一定程度的,否则感觉自己混不下去了,那就开始半挣扎的咸鱼生活吧. ---------------------------------------------------- ...
- gulp删除目标文件中所有的console.log()语句——gulp-strip-debug
1.安装npm包 npm install --save-dev gulp-strip-debug 2.使用 const gulp = require('gulp'); const stripDebug ...
- C# 泛型集合排序
Student sModel = new Student(); List<Student > list = new List<Student >(); list= list.O ...
- DotNet 使用阿里云媒体转码服务
公司项目中一部分文件放到了阿里云 OSS 上,其中有些音频文件是 amr 类型的,在后期使用的时候比较麻烦,所以需要转换成 mp3 的文件,方便以后使用.本来想使用 ffmpeg 处理,但由于文件都存 ...
- HTML 标签入门
HTML 简介 定义: 超文本标记语言(html)是标准通用标记语言下的一个应用,也是一种规范,一种标准 它通过标记符号来表示网页中的各个部分,网页文件本身是一种文本文件,通过在文本文件中添加标记符, ...
- 【转载】C#使用Except方法求取两个List集合的差集数据
在C#语言的编程开发中,针对List集合的运算有时候需要计算两个List集合的差集数据,集合的差集是取在该集合中而不在另一集合中的所有的项.A集合针对B集合的差集数据指的是所有在A集合但不在B集合的元 ...
- UI5-技术篇-事务Tcode
1.LPD_CUST 快速启动板概览 2./N/UI2/FLPD_CONF 创建目录与组(全部客户端) 3./N/UI2/FLPD_CUST 创建目录与组(当前客户端) 4./N/UI2/FLP 编辑 ...
- 解决 React-Native: Android project not found. Maybe run react-native android first?
在终端运行命令react-native run-android时报错Android project not found. Maybe run react-native android first? 解 ...
- zabbix server for Centos 6.3
1.安装LNMP 参照http://lnmp.org/install.html 2.安装zabbix service 2.1下载zabbix,并解压 wget http://nchc.dl.sourc ...