CF 1117 E. Decypher the String】的更多相关文章

E. Decypher the String 链接 题意: 有一个字符串,一些操作,每次操作交换两个位置的字符,经过这些操作后,会得到新的字符串.给你新的字符串,求原来的串.可以有3次询问,每次询问给出一个字符串,返回操作后的字符串. 分析: 如果长度小于等于26,那么询问abc...xyz,就可以知道每个位置操作后的对应的位置.那么长度大于26的时候,考虑均分成26段,每段是一个字符,然后可以知道每段对应的位置集合.继续在每一段内均分即可,均分3次,即可到单个位置. 代码实现很有意思,写成一个…
题目传送门 题解: 枚举非法对. 如果 ‘a'  和 ’b' 不能相邻的话,那么删除 'a' 'b'之间的字符就是非法操作了. 假设题目给定的字符串为 "acdbe",所以删除cd是非法操作, 因为cd是非法了,所以cde也是非法操作, 也就是说找到所有的非法操作之后往外推,比他多删的状态就一样是非法的了,当然对于上述的“acdbe"来说,不能确定 ”acd"是非法操作,因为在枚举非法对的时候,该非法对的字符并不能被删除. 然后把所有非法对的非法状态都存下来.然后从…
题意: 开始你有数字$0$,你可以用代价$x$将该数字加$1$或减$1$(当$x > 0$时),或用代价$y$将该数字变为$2x$,那么问得到数字$n$所需的最少代价是多少. 数据范围$1 \leq x, y \leq 10^9$,$1 \leq n \leq 10^7$. 分析: 记得到数字$n$的代价为$f(n)$. 不加证明地给出如下结论: 注:可以通过观察数的二进制表达形式归纳证明下面的结论. 若$x = y$,则 $1^{\circ}$若$n$为偶数,则$f(n) = f(\frac{…
如果我们能询问一个排列的话,我们就可以得到这个置换,然后反向求解. 但现在字符集只有26. 考虑26^3>1e5. 用一个三维坐标去映射到一个一维整数,然后就可以构造排列了. #include<bits/stdc++.h> #define N 1100000 #define eps 1e-7 #define inf 1e9+7 #define db double #define ll long long #define ldb long double using namespace st…
题目:http://codeforces.com/contest/914/problem/F 可以对原字符串的每种字母开一个 bitset .第 i 位的 1 表示这种字母在第 i 位出现了. 考虑能不能匹配上,可以把可行的 “开头” 设成 1 : 这样的话,枚举到匹配串的第 i 位,字符是 ch,就找出原字符串里 ch 对应的那个 bitset ,则 bt[ ch ] >> ( i-1 ) 的这些位置可以是合法的开头: 所以每次 ans 每个位置都赋成 1 ,然后对于匹配串的每个位置, &a…
题目:https://codeforces.com/contest/1256/problem/D 题意:给你长度为n的01串,能将任意两相邻字符交换k次,求最小字典序的交换结果. 思路:贪心...甚至不用二分...贴一发简短的代码 #include<bits/stdc++.h> using namespace std; ; int main() { int T; scanf("%d",&T); while(T--) { ; long long k; }; scanf…
题目大意:这是一道交互题.给你一个长度为n的字符串,这个字符串是经过规则变换的,题目不告诉你变换规则,但是允许你提问3次:每次提问你给出一个长度为n的字符串,程序会返回按变换规则变换后的字符串,提问3次后你需要猜出这个字符串.解法是学习https://blog.csdn.net/baiyifeifei/article/details/87807822 这个博主的,借用了进制的思想非常巧妙. 解法:对于某个位置的来源位置我们设为x,因为26*26*26>10000,那么x可以唯一表示为x=a*26…
CF1155D - Beautiful Array 题意:给你一个序列和x,你可以选择任意一个子串(可以为空)乘上x,使得得到的序列最大子串和最大.求这个最大值.30w,2s. 解:设fi,0/1/2表示序列前i个数还没乘x/正在乘x/乘完了x的最大后缀和.答案就是这个DP数组的最大值. #include <bits/stdc++.h> typedef long long LL; ; LL a[N], x, f[N][]; int n; int main() { scanf("%d%…
Educational Codeforces Round 60 (Rated for Div. 2) 题目链接:https://codeforces.com/contest/1117 A. Best Subsegment 题意: 给出n个数,选取一段区间[l,r],满足(al+...+ar)/(r-l+1)最大,这里l<=r,并且满足区间长度尽可能大. 题解: 因为l可以等于r,所以我们可以直接考虑最大值,因为题目要求,直接求连续的最大值的长度就是了. 代码如下: #include <bits…
1.put/checkAndPut package com.testdata; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.HConnection; import org.apache.hadoop.hbase.clie…