AT2363-[AGC012C]Tautonym Puzzle【构造】】的更多相关文章

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…
题目链接 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…
正题 题目链接: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…
E. Dasha and Puzzle 题目连接: http://codeforces.com/contest/761/problem/E Description Dasha decided to have a rest after solving the problem. She had been ready to start her favourite activity - origami, but remembered the puzzle that she could not solve…
题面在这里! 神仙构造啊qwqwq. 窝一开始只想到一个字符串长度是 O(log(N)^2) 的做法:可以发现一段相同的长度为n的字符串的贡献是 2^(n-1)-1 ,可以把它看成类二进制,枚举用了多少种字符,把n加上这个种类数,然后每种就可以看成一个二进制位啦,只要 n+种类数 这个数的二进制中1的个数 <= 种类数就可以构造啦,肯定是有解的(考虑种类数最多可以是100). 然鹅最后字符串长只能是200啊,,,,迷 然后%了一发题解发现是一个神仙构造,窝也懒得说了直接贴上题解啦qwq,一段愉快…
题目链接 Dasha and Puzzle 对于无解的情况:若存在一个点入度大于4,那么直接判断无解. 从根结点出发(假设根结点的深度为0), 深度为0的节点到深度为1的节点的这些边长度为2^30, 深度为1的节点到深度为2的节点的这些边的长度为2^29, ……………………………………………………………… 以此类推. 因为结点个数最多只有30个,所以长度分配足够. #include <bits/stdc++.h> using namespace std; #define REP(i,n) fo…
题意: 构造一个长度不超过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$ 个. 这样…
传送门 好久不做构造题脑子都僵化了qwq 无解的条件是\(s\)包含的字符可重集和\(t\)包含的字符可重集不相等,相等的时候下文会给出一种一定可行的构造方案. 考虑增量构造.定义某个字符串\(x\)的反串为\(x'\),设已经构造完成的串为\(S\),\(x\)和\(y\)是即将拼合在\(S\)上的两个字符,\(.\)是其他的无用字符 那么我们通过以下步骤将\(x\)和\(y\)拼合: \(.....x.....S \rightarrow S'..........x \rightarrow x…
题目:http://codeforces.com/contest/936/problem/C 玩了一个小时,只能想出 5*n 的方法. 经过一番观察?考虑这样构造:已经使得 A 串的一个后缀 = B 串的一个前缀,考虑再把一个正确的字符挪到 A 串的最后面. 设该字符为 x .它之前有 len 个字符.当前已经弄好的结尾长度为 l2 . 进行这5个操作:n-len , len , n-len-l2 , l2 , n-l2+1 . 思路就是: 1&2:使得 x 变成结尾: 3:使 x 变成开头.原…