
【模拟】阿里郎(arilang)
发布日期:2021-05-07 22:49:36
浏览次数:22
分类:精选文章
本文共 1503 字,大约阅读时间需要 5 分钟。
阿里郎是朝鲜一年一度的壮丽演出,有100000 名演员参与。现在你将协助他们,你所负责的是其中n 名演员的服装。
n 名演员,将按n的所有约数d进行分组, {n的所有约数,数学表示(d | n),}每组有n /d 人。,同一组中的演员们将会手拉手围成一个环。第一个环中是1; d + 1; 2d + 1; 3d + 1; : : : ; n-d + 1。第二个环中是2; d+2; 2d+2; 3d+2; : : : ; n-?d+2。依次类推。第d 个环中是d; 2d; : : : ; n。 现在你要为他们分配服装。为了展现人民的力量,每个环中相邻的人衣服颜色都不能相同。你已经知道了n 的值,但当你问及d 时,你被告知“你想知道的太多了,如果不能完成的话,******************”。衣服只有26 种不同颜色。你能对任何d 值完成任务吗?#Input
一行,一个整数n。
Output
若有解,输出一行n 个字符。第i 个字符表示第i 号演员衣服的颜色,用小写英文字母表示。若有多种方案,请输出字典序最小的方案。
若无解,你得给家属留些话,输出"Impossible" 。Sample Input
7
Sample Output
abababc
据说题意是最难懂的。。。我看懂了题意,就是没敲。。。
其实数据还是模拟地起的。先一个一个点搜过去,枚举字符,看看可不可以填(枚举每一个约数,然后看看跟它相邻的数的字符相不相同),不可以就枚举下一个字符,可以就记录下来算下一个数。#includeint n,a[300001],t;bool tt;char maxx='a',z[300001];void dfs(int k){ while(k<=n){ for(int i='a';i<='z';++i){ //枚举字符 tt=0; for(int j=1;j<=t;++j){ //枚举约数 int k1=k-a[j],k2=k+a[j]; //与它相邻的俩个位置 if(k1<1) k1+=n; if(k2>n) k2-=n; if(z[k1]==i||z[k2]==i){ //判断 tt=1; break; } } if(tt==0){ //如果可以 z[k]=i; break; } } if(tt==0) ++k; //可以 else{ //不行的话直接输出 printf("Impossible"); return; } }}int main(){ freopen("arilang.in","r",stdin); freopen("arilang.out","w",stdout); scanf("%d",&n); for(int i=1;i*i<=n;++i) //寻找约数 if(n%i==0){ a[++t]=i; a[++t]=n/i; if(n/i==i||i==1) --t; } dfs(1); if(tt==0) //如果有解 for(int i=1;i<=n;++i) printf("%c",z[i]); else printf("Impossible"); fclose(stdin); fclose(stdout);}
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月22日 01时32分30秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
seo 回忆录百度基本概念(一)
2021-05-09
netcore中使用session
2021-05-09
Android 开发学习进程0.25 自定义控件
2021-05-09
多媒体文件格式全解说(下)--图片
2021-05-09
淘宝WAP版小BUG分析
2021-05-09
asp.net打印网页后自动关闭网页【无需插件】
2021-05-09
【Maven】POM基本概念
2021-05-09
【Java思考】Java 中的实参与形参之间的传递到底是值传递还是引用传递呢?
2021-05-09
【设计模式】单例模式
2021-05-09
远程触发Jenkins的Pipeline任务的并发问题处理
2021-05-09
entity framework core在独立类库下执行迁移操作
2021-05-09
Asp.Net Core 2.1+的视图缓存(响应缓存)
2021-05-09
【wp】HWS计划2021硬件安全冬令营线上选拔赛
2021-05-09
Ef+T4模板实现代码快速生成器
2021-05-09
JQuery选择器
2021-05-09
多线程之volatile关键字
2021-05-09
2.2.2原码补码移码的作用
2021-05-09
Java面试题:Servlet是线程安全的吗?
2021-05-09
Java集合总结系列2:Collection接口
2021-05-09