题面在这里!

神仙构造啊qwqwq。

窝一开始只想到一个字符串长度是 O(log(N)^2) 的做法:可以发现一段相同的长度为n的字符串的贡献是 2^(n-1)-1 ,可以把它看成类二进制,枚举用了多少种字符,把n加上这个种类数,然后每种就可以看成一个二进制位啦,只要 n+种类数 这个数的二进制中1的个数 <= 种类数就可以构造啦,肯定是有解的(考虑种类数最多可以是100)。

然鹅最后字符串长只能是200啊,,,,迷

然后%了一发题解发现是一个神仙构造,窝也懒得说了直接贴上题解啦qwq,一段愉快的英文阅读!

#include<bits/stdc++.h>
#define ll long long
using namespace std; int n,a[205],L,R,now;
ll cnt; inline void solve(){
int i=40; L=101,R=L-1;
for(;!((1ll<<i)&cnt);i--);
for(i--;i>=0;i--){
a[++R]=++now;
if((1ll<<i)&cnt) a[--L]=++now;
} n=R-L+1;
for(int i=1;i<=n;i++) a[i]=a[i+L-1];
for(int i=n+1;i<=n*2;i++) a[i]=i-n;
n<<=1;
} int main(){
scanf("%lld",&cnt),cnt++;
solve(),printf("%d\n",n);
for(int i=1;i<=n;i++) printf("%d ",a[i]);
puts("");
return 0;
}

  

AGC 012 C - Tautonym Puzzle的更多相关文章

  1. Atcoder Grand 012 C - Tautonym Puzzle

    题意: 构造一个字符串,使得这个字符串有只有n个形如AA这样的子序列. 神TM构造题不会做,, 我们构造一个长度为2*m的字符串,前m个是一个1-m的排列,后m个就是按顺序1-m. 这样这个串里符合要 ...

  2. 【AtCoder Grand Contest 012C】Tautonym Puzzle [构造]

    Tautonym Puzzle Time Limit: 50 Sec  Memory Limit: 256 MB Description 定义一个序列贡献为1,当且仅当这个序列 由两个相同的串拼接而成 ...

  3. AtCoder Grand Contest 012 C:Tautonym Puzzle

    题目传送门:https://agc012.contest.atcoder.jp/tasks/agc012_c 题目翻译 如果一个字符串是好的,那么这个字符串的前半部分和后半部分肯定一模一样.比如\(a ...

  4. [AT2363] [agc012_c] Tautonym Puzzle

    题目链接 AtCoder:https://agc012.contest.atcoder.jp/tasks/agc012_c 洛谷:https://www.luogu.org/problemnew/sh ...

  5. AGC 012 D - Colorful Balls

    题面在这里! 为什么atcoder都是神仙题啊qwq 首先发现如果要让 x,y 互换位置的话,要么通过他们直接换 (也就是x和y满足两种操作之一),要么间接换,通过一些其他的元素形如 x可以和 a[1 ...

  6. AGC 012 B - Splatter Painting

    题面在这里! (显然首先想到反着做比较简单,每个点取第一次被覆盖到的颜色) 发现d非常小,那么是否可以暴力覆盖呢??? 考虑一个稠密图..暴力肯定就gg了啊... 不过我们可以对每一个点 i 记一个m ...

  7. Tautonym Puzzle

    题意: 构造一个长度不超过200,数字不大于100的序列,使得合法子序列的个数恰好为N: 合法子序列是指一个长度为偶数的序列,前一半和后一半相等. 解法: 考虑这种构造方法 假设我们当前有序列为 $x ...

  8. AT2363-[AGC012C]Tautonym Puzzle【构造】

    正题 题目链接:https://www.luogu.com.cn/problem/AT2363 题目大意 给出\(n\),要求构造一个字符串\(s\),使得能够找出恰好\(n\)个子序列使得这个子序列 ...

  9. AtCoder Grand Contest 012

    AtCoder Grand Contest 012 A - AtCoder Group Contest 翻译 有\(3n\)个人,每一个人有一个强大值(看我的假翻译),每三个人可以分成一组,一组的强大 ...

随机推荐

  1. POJ 3276 Face The Right Way (尺取法)

    题目链接 Description Farmer John has arranged his N (1 ≤ N ≤ 5,000) cows in a row and many of them are f ...

  2. js_setCookie,getCookie和checkcookie函数

    随便说说: cookie和sessionStrong,localStrong在web应用中都有一种存储的功能,也就是说可以把一些数据记录在浏览器.cookie和后两者的主要区别 是cookie是和后端 ...

  3. 【Python学习笔记】Coursera课程《Using Python to Access Web Data 》 密歇根大学 Charles Severance——Week2 Regular Expressions课堂笔记

    Coursera课程<Using Python to Access Web Data > 密歇根大学 Charles Severance Week2 Regular Expressions ...

  4. Linux内核堆栈使用方法 进程0和进程1【转】

    转自:http://blog.csdn.net/yihaolovem/article/details/37119971 目录(?)[-] 8 Linux 系统中堆栈的使用方法 81  初始化阶段 82 ...

  5. 利用eclipse调试ofbiz之debug使用

    1.项目右键-配置debug 2.new一个debug调试 3.配置运行类org.ofbiz.base.start.Start 4.设置内存大小:arguments-VM arguments -Xms ...

  6. [New Learn]被嫌弃的app的一生

    1.简介 为什么叫被嫌弃的app的一生?致敬电影<被嫌弃的松子的一生>. 自学IOS东一锄西一镐的总感觉没有一个总的概念,还是多看看官网吧,先看一下一个app的整个生命周期,本文主要是翻译 ...

  7. 使用while循环遍历文件

    /* 使用while循环遍历文件*/ [root@localhost test1]# vim 17.py //add #!/usr/bin/python ll = open('/tmp/1.txt') ...

  8. C语言inline函数(转)

    原文链接:http://blog.csdn.net/yuan1125/article/details/6225993 1  inline只是个编译器建议,编译器不一定非得展开Inline函数. 例如: ...

  9. 同步方法-java

    除了同步代码块能实现同步执行外,同步方法也可以. 先看下同步代码块实现同步执行: public class Demo4 { public static void main(String[] args) ...

  10. 小知识-为什么Linux不需要磁盘碎片整理

      转载至:http://beikeit.com/post-495.html 简单译文: 这段linux官方资料主要介绍了外部碎片(external fragmentation).内部碎片(inter ...