两日总结三

本次总结的时间是2022-7-16~2022-7-18

这两天主要是在刷题训练:

牛客补题:

 

CF 补题:

5.00暑假牛客加补题:

/*
https://ac.nowcoder.com/acm/contest/33186/I
Chiitoitsu
*/

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mod = 1e9 + 7;
int n;
int dp[20][200];
int ksm(int a, int b) {
    int ret = 1;
    while (b) {
        if (b & 1) {
            ret *= a;
            ret %= mod;
        }
        a = a * a;
        a %= mod;
        b >>= 1;
    }
    return ret;
}
int inv(int a) { return ksm(a, mod - 2); }

int mul(int a, int b) { return a * b % mod; }
void solve(int c) {
    // memset(dp, 1, sizeof dp);
    for (int i = 6; i >= 0; i--) {
        for (int j = 1; j <= 136; j++) {
            dp[i][j] = 1;
            int ok   = (13 - 2 * i) * 3;
            dp[i][j] = dp[i][j] + mul(dp[i][j - 1], mul(j - ok, inv(j)));
            dp[i][j] %= mod;
            if (i != 6) { dp[i][j] = dp[i][j] + mul(dp[i + 1][j - 1], mul(ok, inv(j))); }
            dp[i][j] %= mod;
        }
    }
    string s;
    cin >> s;
    int cnt = 0;
    std::map<string, int> mp;
    for (int i = 0; i < 25; i += 2) {
        string tmp = "";
        tmp += s[i];
        tmp += s[i + 1];
        mp[tmp]++;
        if (mp[tmp] == 2) { cnt++; }
    }
    // cout << cnt << endl;
    printf("Case #%d: %ld\n", c, dp[cnt][123]);
    return;
}


signed main() {
    int T;
    cin >> T;
    for (int i = 1; i <= T; i++) { solve(i); }
    return 0;
}

这个冤种题目,这个概率DP,一开始直接是(7-i)没有考虑纸牌数目,直接考虑对数了,没有注意,太冤了,还有一个题目就是

 

 写错一个符号,搞了半天。。。。总而言之就是细节问题没有注意,然后竟然还过了样例还过了37.5%,离谱的很。明天好好打。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值