AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

25/06/10 总结

作者: 作者的头像   贺杰 ,  2025-06-10 22:04:47 · 山东 ,  所有人可见 ,  阅读 3


0


line 86
先判断一下 m * n / k 是否是 S / 2 的形式
皮克定理
$A=I+\frac{B}{2} −1$

Mysterious Crime
哈希一下,然后二分

BIA
支!配!树!

Reberland Linguistics

是一道比较有意思的DP,由于可以取大于4的前缀,所以对于一个词缀来说,它先天就可以作为一个词缀,限制它的是后面的是否成立,会影响当前词缀,所以倒着DP

已经知道它是DP后还是比较好想的,分情况讨论,然后看这个词缀是否能取,dp表示这个词缀是否能取。就是写的时候费了一些时间

#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    string s;
    cin >> s;
    int n = s.size();
    s = ' ' + s;
    set<string> st;

    vector<array<int, 2>> dp(n + 1);

    auto check = [&](int i, int len) {
        if (i - len < 5) return false;
        string str = "";
        for (int j = 1; j <= len; j ++) str += s[i - len + j];
        if (i == n) {
            st.insert(str);
            return true;
        }
        int t = len & 1;
        if (i + (len ^ 1) <= n && dp[i + (len ^ 1)][t ^ 1]) {
            st.insert(str);
            return true;
        }

        if (i + len > n || !dp[i + len][t]) return false;
        bool same = true;
        for (int j = 1; j <= len; j ++) {
            if (s[i - len + j] != s[i + j]) {
                same = false;
            }
        }
        if (same) return false;
        st.insert(str);
        return true;
    };

    for (int i = n; i >= 7; i --) {
        if (check(i, 2)) dp[i][0] = true;
        if (check(i, 3)) dp[i][1] = true;
    }

    cout << st.size() << endl;
    for (auto &i : st) {
        cout << i << '\n';
    }

    return 0;
}

Lucky Permutation

由样例画一个图,可以发现,是四个为一组,组成了一个环,并且模拟一下n % 4 == 3的情况,很遗憾,我模拟错了,所以wa了一发。可以发现三个是无解的,然后根据环可以看出,每个数的位置是环中上一步的数,总之,将一组数找到,然后依据这个关系放入序列中。

Dice Throwing
题解
一道DP题,看题不仔细,有一点“at least x”没看到,白调了半天

0 评论

App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息