首页 > 其他分享 >ABC 242 D - ABC Transform(dfs)

ABC 242 D - ABC Transform(dfs)

时间:2022-09-23 18:00:11浏览次数:84  
标签:ABC return LL Transform dfs cin Sample

https://atcoder.jp/contests/abc242/tasks/abc242_d

题目大意:
初始化给定一个字符串为S(S中只包含A B C三种字符)

每次经过一次操作下:A就会变成BC,B变成CA,C变成AB。

问我们在第x次变化后,第k个字符串是什么?
Sample Input 1  
ABC
4
0 1
1 1
1 3
1 6
Sample Output 1  
A
B
C
B 
 
Sample Input 2  
CBBAACCCCC
5
57530144230160008 659279164847814847
29622990657296329 861239705300265164
509705228051901259 994708708957785197
176678501072691541 655134104344481648
827291290937314275 407121144297426665
Sample Output 2  
A
A
C
A
A
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1000020;
const LL N=500200,M=2002;
string s;
LL q;
LL dfs(LL x,LL k)
{
    //如果在第0层的时候,直接返回第k个位置上的数字
    if(x==0) return 1LL*(s[k]-'A');
    //如果k是当前层数的第一个的时候?
    if(k==0) return 1LL*(s[0]-'A'+x)%3;
    return (dfs(x-1,k/2)+k%2+1)%3;
}
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    LL T=1;
    //cin>>T;
    while(T--)
    {
        cin>>s;
        cin>>q;
        while(q--)
        {
            LL x,k;
            cin>>x>>k;
            //找到第x层,第k-1的下标下的字母(也即是第k个字母)
            cout<<char('A'+dfs(x,k-1))<<endl;
        }
    }
    return 0;
}

标签:ABC,return,LL,Transform,dfs,cin,Sample
From: https://www.cnblogs.com/Vivian-0918/p/16723637.html

相关文章

  • HDFS基本架构与副本备份
    HDFS官方架构图,清晰明了主角色,要注意的是NameNode因为它的特性使得它是HDFS的唯一访问入口主角色辅助角色,要注意的是SecondaryNameNode不是NameNode的备份,而是它的"......
  • DFS求旅行商问题
    设有城市1.2.3.4,求从1出发,不重复地经过4个城市且最终返回城市1的最短路径问题分析:将该题转为加权图模型,尝试所有可行路线,并比较得出最短路径。#include<iostream>#defi......
  • Sklearn fit_transform,Sklearn fit , transform
      一、关于sklearnfit和transformsklearn里的封装好的各种算法使用前都要fit;fit之后,可以调用各种API方法,transform是其中一个API;fit原义指的是安装、使适合的意......
  • ABC 269 (A-G)
    A给定\(a,b,c,d\),输出\((a+b)(c-d)\)和\(\texttt{Takahashi}\)。模拟即可。点击查看代码inta=read(),b=read(),c=read(),d=read();writeln((a+b)*......
  • 洛谷 P1025 [NOIP2001 提高组] 数的划分 (dfs)
    https://www.luogu.com.cn/problem/P1025给定一个n和k,把n拆分成k个数字的和,数字可以相同,但是种类不能相同。求能凑出的数量。输入73输出4明明是一道很简单的dfs,......
  • ABC 241E - Putting Candies(循环节:链+环)
    https://zhuanlan.zhihu.com/p/473078132这位大佬的E解释的非常清楚,强推E-PuttingCandieshttps://atcoder.jp/contests/abc241/tasks/abc241_e题目大意:给定一个......
  • ABC 241D - Sequence Query(multiset)
    newknowledge(stl)multiset位于库中,可以看成一个序列,插入一个数,删除一个数都可以在O(logn)的时间内完成,能时刻保证序列中的数是有序的,而且序列中可以存在重复的数。h......
  • BigData——HDFS操作
    HDFSshell操作配置hadoop环境变量vi/etc/profileexportHADOOP_HOME=/usr/local/soft/hadoop-2.6.0exportPATH=.:\$JAVA_HOME/bin:\$HADOOP_HOME/bin:$PATH然后执......
  • 我眼中的大数据(二)——HDFS
    Hadoop的第一个产品是HDFS,可以说分布式文件存储是分布式计算的基础,也可见分布式文件存储的重要性。如果我们将大数据计算比作烹饪,那么数据就是食材,而Hadoop分布式文件系统H......
  • abc269
    \(\textbf{G.}\)设\(c_i=b_i-a_i\),\(S_a=\sum_{i=1}^{n}a_i\).则此时\(k\)的答案为选择最少个数的\(c\)凑出\(k-S_a\)的答案.注意......