ABC242 记录

目录

上分难!难于上青天!/ll

A

分支结构的运用

B

排序

C

暴力 DP

D

发现每一层长度都是上一层两倍,因此考虑由当前层递归到上一层。

让下表从 0 开始编号即可利用位运算方便实现

回溯的时候可以利用二进制最后一位判断填什么。

如果递归到 0 层,直接返回原串的答案

如果值为 0 了,观察每层串串首是 ...ABCABCABC... 循环,随便判断一下即可。

char Calc(char c, int x) {
    int p = c - 'A';
    p = p + x;
    p %= 3;
    return 'A' + p;
}

char dfs(int pos, int val) {
    if(pos == 0) return s[val];
    if(val == 0) return Calc(s[0], pos);
    char c = dfs(pos - 1, val >> 1);
    if(c == 'A') {
        if(val & 1) return 'C';
        else return 'B';
    } else if(c == 'B') {
        if(val & 1) return 'A';
        else return 'C';
    } else if(c == 'C') {
        if(val & 1) return 'B';
        else return 'A';
    }
}

signed main()
{
    cin >> s;
    Q = read();
    for(int i = 1, t, k; i <= Q; ++i) {
        t = read(), k = read() - 1;
        printf("%c\n", dfs(t, k));
    }
    return 0;
}

E

  • 做法一:数位 DP
  • 做法二:

预处理 26 的幂,线性扫一遍。特判一下前半串反转和后半串的大小关系决定是否 +1。

F

待哺

nyy /bx

fi,j 表示黑棋填了 ij 列但不一定都填的方案数。

gi,j 表示黑棋填了 ij 列但都填了的方案数。

则有

fi,j=(i×jB)

根据二项式反演有

gi,j=x=0iy=0j(1)i+jxy(ix)(jy)fx,y

则答案为(枚举黑棋放几行几列,剩下的白棋随便放)

ans=i=0nj=0m(ni)(mj)gi,j×((ni)(mj)W)

G

莫队板子。

posted @   Suzt_ilymtics  阅读(87)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
点击右上角即可分享
微信分享提示