题目
题意: 给定仅含A、B、C的字符串,进行至多t = 1e18次迭代,每次迭代是独立地将A->BC,B->CA,C->AB.求t次迭代后,第k个位置的字母是what?
思路: 感觉是除除除,因为我们可以根据k反推推回它是由数组原始位置的哪个字母变来的。然后哩?如果t很大,我们发现这个字母是a、b、c轮着变换的,%3即可。注意这里下标从0开始,方可保证%3正确性和一致性。怎么想出来的俺也不知道,被自己菜哭了,今晚连着两把都被暴捶。
时间复杂度: O(log1e18)
代码:

// Problem: D - ABC Transform
// Contest: AtCoder - AtCoder Beginner Contest 242
// URL: https://atcoder.jp/contests/abc242/tasks/abc242_d
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)#include<iostream>
#include<cstdio>
#include<algorithm>
#include<complex>
#include<cstring>
#include<cmath>
#include<vector>
#include<map>
#include<unordered_map>
#include<list>
#include<set>
#include<queue>
#include<stack>
#define OldTomato ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr)
#define fir(i,a,b) for(int i=a;i<=b;++i)
#define mem(a,x) memset(a,x,sizeof(a))
#define p_ priority_queue
// round() 四舍五入 ceil() 向上取整 floor() 向下取整
// lower_bound(a.begin(),a.end(),tmp,greater<ll>()) 第一个小于等于的
// #define int long long //QAQ
using namespace std;
typedef complex<double> CP;
typedef pair<int,int> PII;
typedef long long ll;
// typedef __int128 it;
const double pi = acos(-1.0);
const int INF = 0x3f3f3f3f;
const ll inf = 1e18;
const int N = 2e5+10;
const int M = 1e6+10;
const int mod = 1e9+7;
const double eps = 1e-6;
inline int lowbit(int x){ return x&(-x);}
template<typename T>void write(T x)
{if(x<0){putchar('-');x=-x;}if(x>9){write(x/10);}putchar(x%10+'0');
}
template<typename T> void read(T &x)
{x = 0;char ch = getchar();ll f = 1;while(!isdigit(ch)){if(ch == '-')f*=-1;ch=getchar();}while(isdigit(ch)){x = x*10+ch-48;ch=getchar();}x*=f;
}
#define int long long
int n,m,k,T;
char s[M];
int fun(int t,int k)
{if(t==0) return s[k]-'A';else if(k == 0) return (s[0]-'A'+t)%3;return (fun(t-1,k/2)+k%2+1)%3;
}
void solve()
{scanf("%s",s);read(m);while(m--){ll t,k; read(t),read(k);k--;printf("%c\n",fun(t,k)+'A');}
}
signed main(void)
{  T = 1;// OldTomato; cin>>T;// read(T);while(T--){solve();}return 0;
}

abc242 D(脑子一团浆糊)相关推荐

  1. NLP中文面试学习资料:面向算法面试,理论代码俱全,登上GitHub趋势榜

    鱼羊 发自 凹非寺  量子位 报道 | 公众号 QbitAI 一年一度的秋招已经悄悄来临,征战在求职路上的你,准备好了吗? 工欲善其事,必先利其器. 这里有一份NLP面试大全,全中文教学,囊括机器学习 ...

  2. bootstrap操作mysql数据库_前后端连接(BootStrap_MySQL_MyEclipse)

    今天学了前后台的连接.之前脑子一团浆糊,就连后端对数据库的操作都不熟.就一点点来写吧,会多少写多少,错了以后再改吧,可能进步比较慢,但肯定会慢慢好起来的. 以前一直对数据库连接就不太懂.先从数据库连接 ...

  3. 教育部正式宣布:9年义务教育大变动!与孩子息息相关

    +++++------ 文末有超值福利,名额有限 中国未来社会需要的,是那种逻辑思维缜密,能够应对变化,提出独特想法的创造性人才. --清华前校长陈吉宁 1 综艺节目<最强大脑>,可以说把 ...

  4. 给一个长度为n的字符串,找出长度为m的最小字典子序列【单调栈】

    一个大大的分割线,如果这个傻逼题没有被作为某某复赛的签到题,可能我一会都一直傻逼下去了. [2019计蒜之道复赛--星云系统] 题目是,给出一个长度为n(1<n<5e6)的只有小写字母的字 ...

  5. 白话——海明校验码及编码过程

    学习组原了解到海明校验码,刚开始实在是看不懂,脑子一团浆糊,然后还做到了一道错题更是惨的一批,现在还算是有了一个比较清晰的了解.想着做一个总结过程,希望像我这样的小白能免幸遇难.本文适合对海明校验码不 ...

  6. 怎么找生物信息论文的数据,PubMed太有用了!

    小白的创作灵感日志: 由于要跑通一篇Paper A的代码,我需要找到它用到的所有数据集,今天我要找的是 Nagano 细胞周期数据集,刚开始脑子一团浆糊,直接在谷歌上搜"Nagano&quo ...

  7. 各路牛人【找工总结】

    http://zhan.renren.com/tsinstudio?gid=3602888498029674730&from=post&checked=true [转载]本科学材料,读 ...

  8. 四种期权损益结构图,助您轻松理解期权损益

    期权的损益模型图. 期权的损益模型图有四种: 买入看涨期权,卖出看涨期权,买入看跌期权,卖出看跌期权. (下面的两段话建议读三遍) 买入看涨期权指期权的购买者预计特定资产未来价格将上涨,于是缴纳期权费 ...

  9. 2021计算机(科技软件电子信息技术)考研报告总结

    先强调,本篇更多的是个人总结回顾,具体备考过程仅供参考,一定要发挥主观能动性. 决定考研之前# 其实我决定考研的时间挺晚的,大概是去年(2019年)12月初才决定的.决定的过程也是比较仓促,原计划是打 ...

  10. 手写Spring-第六章-让我访问!实现前置后置处理扩展功能

    前言 上一次我们实现了bean定义的自动化注册,这让我们的demo看起来已经很有Spring的那个味道了.但是扩展性还是差了一些.我们都知道,要写出高内聚,低耦合,富有扩展性的代码.那么如何增加扩展性 ...

最新文章

  1. detach detach_ pytorch
  2. [剑指offer] 用两个栈实现队列
  3. Mysql安装时出现APPLY security settings错误
  4. ubuntu 16.04修复固件刷新失败的LimeSDR-USB V1.4
  5. 图解JVM垃圾回收算法
  6. 软件工程(2018)第1次团队作业
  7. 海尔智家股市被看好,增长逻辑令人深思
  8. ASP.NET Core官方文档+源码,这样学效率高10倍!
  9. 【高精】Oliver的成绩(jzoj 2008)
  10. 【渝粤题库】国家开放大学2021春1375Matlab语言及其应用题目
  11. matlab中结束脚本运行_MATLAB脱单指南
  12. react学习预备知识_在10分钟内学习React基础知识
  13. php array 数组函数,php array数组函数
  14. mysql添加标签_PHP / MySQL - 如何添加多个标签
  15. Unity的序列化机制探索
  16. Lua 函数参数 默认实参
  17. Rust : range,[],vec,array中元素的类别
  18. ZooKeeper 客户端: GUI+命令行两大类(史上最全,值得收藏)
  19. 深度解析脑机接口技术的现状与未来!
  20. 袋鼠云研发手记 | 开源·数栈-扩展FlinkSQL实现流与维表的join

热门文章

  1. [python3]读取docx每个段落下的table数据
  2. Clickhouse(20.4.2.9) SSB性能测试
  3. 计算机积木游戏,A*算法分析(积木块游戏)
  4. 如何建立个人网站:从搭建到运营再到盈利
  5. 身份证识别仪阅读器读卡器谷歌google chrome网页浏览器WEB二次开发包
  6. 从此甩掉光驱 U盘安装系统最详攻略(转自腾讯数码)
  7. wget: command not found的两种解决方案
  8. c语言中个各标点符号作用,C语言运算符和标点符号.xls
  9. RoomDatabase重启断电数据丢失
  10. 读书笔记(宏微观经济学)