[AT2363] [agc012_c] Tautonym Puzzle】的更多相关文章

题目链接 AtCoder:https://agc012.contest.atcoder.jp/tasks/agc012_c 洛谷:https://www.luogu.org/problemnew/show/AT2363 题目大意 洛谷好像没有翻译,窝翻译了下顺便交了一发洛谷 我们称一个字符串\(x\)是好的当且仅当它满足一下条件: \(x\)可以被表示为另外一个串\(y\)复制一遍得到,即\(x=\overline {yy}\). 举个例子:'aa'和'bubobubo'是好的,'a','abc…
Tautonym Puzzle Time Limit: 50 Sec  Memory Limit: 256 MB Description 定义一个序列贡献为1,当且仅当这个序列 由两个相同的串拼接而成,比如123123. 请构造一个序列,使得它子序列的贡献和为n. 要求序列长度<=200,权值<=100. Input 一行一个n. Output 第一行为长度len,表示你构造出的序列长度. 第二行为你构造出的序列. Sample Input 7 Sample Output 4 1 1 1 1…
题目传送门:https://agc012.contest.atcoder.jp/tasks/agc012_c 题目翻译 如果一个字符串是好的,那么这个字符串的前半部分和后半部分肯定一模一样.比如\(aa\)与\(bubobubo\)就是好的串,而空串,\(a\)与\(abcabcabc\)以及\(abba\)就不是好的.现在给你一个小于等于\(10^{12}\)的数字\(N\),要你求出一个字符串\(s\),使得这个串的\(2^{len}-1\)个子串里刚好有\(N\)个子串是好的.要求\(le…
正题 题目链接:https://www.luogu.com.cn/problem/AT2363 题目大意 给出\(n\),要求构造一个字符串\(s\),使得能够找出恰好\(n\)个子序列使得这个子序列能划分成前后相等的两份. 要求\(|s|\leq 200\),字符集为\([1,100]\) \(1\leq n\leq 10^{12}\) 解题思路 很妙的想法,我们把\(s\)分成两半,一半是\(1\sim x\),然后后一半是一个\(1\sim x\)的排列,这样答案就是这个排列的上升子序列数…
题意: 构造一个字符串,使得这个字符串有只有n个形如AA这样的子序列. 神TM构造题不会做,, 我们构造一个长度为2*m的字符串,前m个是一个1-m的排列,后m个就是按顺序1-m. 这样这个串里符合要求的子序列就是1-m排列中的最长上升子序列个数. 定义函数f(x)表示构造一个最长上升子序列个数为x的字符串. 如果$x\%2=1$,$f(x)=[len(f(x-1))+1]+f(x-1)$ 如果$x\%2=0$,$f(x)=f(x/2)+[len(f(x/2))+1]$ #include<bit…
题面在这里! 神仙构造啊qwqwq. 窝一开始只想到一个字符串长度是 O(log(N)^2) 的做法:可以发现一段相同的长度为n的字符串的贡献是 2^(n-1)-1 ,可以把它看成类二进制,枚举用了多少种字符,把n加上这个种类数,然后每种就可以看成一个二进制位啦,只要 n+种类数 这个数的二进制中1的个数 <= 种类数就可以构造啦,肯定是有解的(考虑种类数最多可以是100). 然鹅最后字符串长只能是200啊,,,,迷 然后%了一发题解发现是一个神仙构造,窝也懒得说了直接贴上题解啦qwq,一段愉快…
题意: 构造一个长度不超过200,数字不大于100的序列,使得合法子序列的个数恰好为N: 合法子序列是指一个长度为偶数的序列,前一半和后一半相等. 解法: 考虑这种构造方法 假设我们当前有序列为 $x_1, x_2, x_3, x_4, 1, 2, 3, 4$,有 $cnt$个 那么 $x_1, x_2, x_3, x_4, 5, 1, 2, 3, 4, 5$,有 $2cnt+1$ 个  $5 ,x_1, x_2, x_3, x_4, 1, 2, 3, 4, 5$,有 $cnt+1$ 个. 这样…
AtCoder Grand Contest 012 A - AtCoder Group Contest 翻译 有\(3n\)个人,每一个人有一个强大值(看我的假翻译),每三个人可以分成一组,一组的强大值定义为三个人中第二强的人的强大值.求\(n\)组最大的强大值之和. 题解 这...不是倒着选两个人,正着选一个人构成一组就好了嘛.. #include<iostream> #include<cstdio> #include<algorithm> using namespa…
AGC012 A - AtCoder Group Contest 从最后开始间隔着取就行 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ') #define enter putchar('\n') #define eps 1e-…
A♂G&C012 A AtCoder Group Contest 从大到小sort后输出\(a_2+a_4+a_6+\ldots a_{2n}\) 好♂啊,只会背结论/kk B Splatter Painting 根据套路从后往前bfs,由于\(d\)很小可以拆点,点\((x,i)\)表示距离\(x\leq i\)的点都被染得颜色 C Tautonym Puzzle 真不会= =只会二进制分组,大概比正解辣鸡多了 摸题解 首先你有一个排列\(p[1-n]\),然后在后面再加一个\(1-n\),序…