2024CCPC网络预选赛

news2024/11/18 17:29:21

vp链接:Dashboard - The 2024 CCPC Online Contest - Codeforces

B. 军训 II

序列 a 从小到大排列或者从大到小排列时,不整齐度是最小的。方案数是所有相同数字的个数的排列数的乘积。如果首尾的数字不同的话,还要再乘个 2。

#include <bits/stdc++.h>
using namespace std;

#define int long long

const int N = 1e3 + 10, mod = 998244353;
int n, a[N], fac[N];

inline int read() {
    int x = 0, f = 1; char c = getchar();
    while (c < '0' || c > '9') { if (c == '-') f = -1; c = getchar(); }
    while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
    return x * f;
}

signed main() {
    n = read();
    fac[1] = 1;
    for (int i = 2; i <= n; i++) fac[i] = fac[i - 1] * i % mod;
    for (int i = 1; i <= n; i++) a[i] = read();
    sort(a + 1, a + n + 1);
    int num = 1, ans = 0, res = 1;
    for (int i = 1; i <= n; i++) {
        if (a[i] == a[i - 1]) res++;
        else {
            num = num * fac[res] % mod;
            res = 1;
        }
    }
    num = num * fac[res] % mod;
    if (a[1] != a[n]) num = num * 2 % mod;
    for (int i = 1; i <= n; i++) {
        for (int j = i; j <= n; j++) {
            ans += a[j] - a[i];
        }
    }
    printf("%lld %lld", ans, num % mod);
    return 0;
}

D. 器-

设 dp_{i, l, r} 表示考虑到 S'_i,字符串 T 的 l 到 r 区间的这个字符串在 S'_i 中出现的个数。根据 S'_i 的还原方式,可以得到状态转移方程为

 dp_i, l, r = \sum_{k = l - 1}^{r} dp_{i - 1, l, k} \times dp_{i - 1, k + 1, r}

其中 dp_{i - 1, l, k} 可以看作从 S'_i 中左边的 S'_{i- 1 } 得来的, 可以看作从 S'_i 中右边的 S'_{i - 1} 得来的。

#include <bits/stdc++.h>
using namespace std;

#define int long long

const int mod = 998244353;
int dp[105][105][105];
string s, t;

signed main() {
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    cin >> s >> t;
    s = " " + s, t = " " + t;
    int n = s.size(), m = t.size();
    for (int i = 0; i <= n; i++)
        for (int j = 1; j <= m + 1; j++)
            for (int k = 0; k < j; k++) dp[i][j][k] = 1;
    for (int i = 1; i <= n; i++) {
        for (int l = 1; l <= m; l++) {
            for (int r = l; r <= m; r++) {
                for (int k = l - 1; k <= r; k++)
                    dp[i][l][r] = (dp[i][l][r] + dp[i - 1][l][k] * dp[i - 1][k + 1][r]) % mod;
                for (int k = l - 1; k + 1 <= r; k++)
                    if (s[i] == t[k + 1])
                        dp[i][l][r] = (dp[i][l][r] + dp[i - 1][l][k] * dp[i - 1][k + 2][r]) % mod;
            }
        }
    }
    cout << dp[n][1][m];
    return 0;
}

E. 随机过程

对于最大节点数,考虑第 i 层的节点数,最多有 min(n, 26^i) 个节点。

对于期望节点数,考虑计算第 i 层的节点数,每个节点不出现的概率是 (1 - \frac{1}{26^i})^n,所以出现的概率是 1 - (1 - \frac{1}{26^i})^n,那么第 i 层的期望节点数就是 [1 - (1 - \frac{1}{26^i})^n] \cdot 26^i

#include <bits/stdc++.h>
using namespace std;

#define int long long

const int mod = 998244353, N = 1e5 + 10;
int fac26[N];

int qpow(int x, int k) {
	int res = 1LL;
	while (k) {
		if (k & 1) res = res * x % mod;
		x = x * x % mod;
		k >>= 1;
	}
	return res % mod;
}

signed main() {
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
	int n, m;
	cin >> n >> m;
	fac26[0] = 1;
	for (int i = 1; i < N; i++) fac26[i] = fac26[i - 1] * 26 % mod;
	int maxnum = 1, tmp = 1, ans = 1, inv26 = qpow(26, mod - 2);
	for (int i = 1; i <= m; i++) {
		tmp *= 26;
		if (tmp < n) maxnum = (maxnum + tmp) % mod;
		else {
			maxnum = (maxnum + (m - i + 1) * n % mod) % mod;
			break;
		}
	}
	for (int i = 1; i <= m; i++)
		ans += ((1 - qpow((1 - qpow(inv26, i) + mod) % mod, n) + mod) % mod) * fac26[i] % mod;
	cout << maxnum % mod << ' ' << ans % mod << endl;
	return 0;
}

K. 取沙子游戏

  1. n 为奇数时,Alice 最开始取 1,后面都只能取 1,Alice 赢。
  2. n 小于等于 k 时,Alice 可以一次性取完,Alice 赢。
  3. n 为偶数时
  • k = 1,每人每次都只能取 1,Bob 赢。
  • 由 1 可得,每个人期望留给对方的都是偶数,那么每个人取的都是偶数。
#include <bits/stdc++.h>
using namespace std;

void solve() {
    int n, k;
    cin >> n >> k;
    if (n & 1 || n <= k) puts("Alice");
    else if (k == 1) puts("Bob");
    else {
        for (int i = 2; i <= k; i *= 2) {
            int tim = n / i;
            if (tim & 1) {
                puts("Alice");
                return;
            }
        }
        puts("Bob");
    }
}

int main() {
    ios::sync_with_stdio(false); cin.tie(0);
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

L. 网络预选赛

签到提,遍历一遍即可。

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    int n, m;
    cin >> n >> m;
    string s[n + 2];
    for (int i = 1; i <= n; i++) { cin >> s[i]; s[i] = " " + s[i]; }
    int ans = 0;
    for (int i = 1; i < n; i++) {
        for (int j = 1; j < m; j++) {
            if (s[i][j] == 'c' && s[i][j + 1] == 'c' && s[i + 1][j] == 'p' && s[i + 1][j + 1] == 'c') ans++;
        }
    }
    cout << ans;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2132949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Running setup.py install for wxPython did not run successfully.

Running setup.py install for wxPython did not run successfully. 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城市开…

axure循环介绍

一直在犹豫要不要写关于axure循环方面的介绍&#xff0c;因为循环的场景用其它方法都是可以实现的&#xff0c;今天还是用上次手机号码判断的案例来写一下循坏吧。 1、页面新建元件&#xff0c;手机号码输入框重命名为【手机号码输入框】按钮重命名为【按钮】再在页面拖动上来一…

python学习第八节:爬虫的初级理解

python学习第八节&#xff1a;爬虫的初级理解 爬虫说明&#xff1a;爬虫准备工作&#xff1a;分析网站url分析网页内容 爬虫获取数据&#xff1a;1.使用urllib库发起一个get请求2.使用urllib库发起一个post请求3.网页超时处理4.简单反爬虫绕过5.获取响应参数6.完整请求代码 解析…

【Python机器学习】长短期记忆网络(LSTM)

目录 随时间反向传播 实践 模型的使用 脏数据 “未知”词条的处理 字符级建模&#xff08;英文&#xff09; 生成聊天文章 进一步生成文本 文本生成的问题&#xff1a;内容不受控 其他记忆机制 更深的网络 尽管在序列数据中&#xff0c;循环神经网络为对各种语言关系…

Java项目: 基于SpringBoot+mybatis+maven医院管理系统(含源码+数据库+任务书+开题报告+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven医院管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、…

强化网络安全:通过802.1X协议保障远程接入设备安全认证

随着远程办公和移动设备的普及&#xff0c;企业网络面临着前所未有的安全挑战。为了确保网络的安全性&#xff0c;同时提供无缝的用户体验&#xff0c;我们的 ASP 身份认证平台引入了先进的 802.1X 认证协议&#xff0c;确保只有经过认证的设备才能接入您的网络。本文档将详细介…

【我的 PWN 学习手札】Fastbin Attack

关于fastbin&#xff0c;有很多攻击利用手法&#xff0c;本篇只是讲述了修改fd指针&#xff0c;分配到fake_chunk&#xff0c;更多利用手法拆分到后面的博客中 目录 前言 一、Fastbin保护检查机制 二、利用手法 &#xff08;1&#xff09;分配到任意地址&#xff08;__mall…

VScode相关问题与解决

1.写c文件时找不到头文件stdio.h 在linux下我们gcc命令来编译c文件时&#xff0c;会遇到找不到头文件的问题 解决方法&#xff1a;我们每写完一个文件记得保存一下文件即可&#xff0c;这样就解决了找不到头文件的问题&#xff01; 参考链接&#xff1a; /usr/bin/ld: /us…

Java实现生成验证码实战

文章目录 需求描述思想思路实现代码实现效果 在实际项目中&#xff0c;管理端的登录&#xff0c;会涉及验证码的校验&#xff0c;简单的数字与字母组合形式&#xff0c;在Java中要如何生成与实现&#xff0c;记录下来&#xff0c;方便备查。 需求描述 生成8位的由数字、大写字…

总结拓展九:SAP数据迁移(2)

第三节 数据迁移工具LTMC实操 1、供应商&#xff08;BP&#xff09;主数据导入 1.1 首先在SAP S 4系统&#xff0c;通过事务代码“LTMC”跳转进入数据迁移控制台&#xff08;网页版&#xff09;&#xff1b; 1.2 点击“创建”按钮&#xff0c;创建迁移项目“NJDHMM-01”; 传…

AI问答-Vue实例属性/实例方法:$refs、$emit、$attrs、$props、$data...

一、本文简介 在Vue.js中&#xff0c;$ 符号通常用于表示Vue实例或组件上的内置属性和方法&#xff0c;这些被称为“实例属性”或“实例方法”。以下是一些常见的以$开头的Vue实例属性和方法 1.1、实例属性 序号实例属性解释1$dataVue实例的数据对象&#xff0c;用于存储组件…

Java铸基之路:运算符的深入学习!(上)

&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d; &#x1f947;博主昵称&#xff1a;小菜元 &#x1f35f;博客主页…

【HarmonyOS NEXT开发】如何设置水平/垂直方向的左/居中/右对齐——RelativeContainer的AlignRules设置

文章目录 【HarmonyOS NEXT开发】如何设置水平/垂直方向的左/居中/右对齐——RelativeContainer的AlignRules设置RelativeContainer 和 AlignRules 的关系AlignRules 语法详解 【HarmonyOS NEXT开发】如何设置水平/垂直方向的左/居中/右对齐——RelativeContainer的AlignRules设…

RK3588九鼎创展方案在Arm集群服务器的项目中的应用分析​​

RK3588九鼎创展核心板&#xff0c;搭载8核瑞芯微3588芯片&#xff0c;具备高性能、低功耗以及强大的多媒体和AI处理能力。在Arm集群服务器项目中&#xff0c;RK3588系列芯片用有明显的性能优势。本文将结合RK3588芯片的性能特征以及九鼎创展的项目经验来分析RK3588在集群服务器…

编写XBOX控制器实现鼠标键盘输入

1.核心部分, XINPUT输入封装 XInput封装https://mp.csdn.net/mp_blog/creation/editor/1420701282.对话框窗口编写 Win32 对话框封装-CSDN博客https://blog.csdn.net/Flame_Cyclone/article/details/142110008?spm1001.2014.3001.5501 3.使用到的其他封装 字符串编码转换与…

惊人转变!从信息奴隶到思考大师,你只需掌握这几点专注力提升法!

引言 信息超载时代的今天&#xff0c;人们的主要问题不再是获取信息的资源渠道不足&#xff0c;任何一个信息&#xff0c;都可以通过一篇文章&#xff0c;一个视频来找到对应的相关信息&#xff0c;无极生太极、太极生两仪、两仪生四象。任何一个信息源中&#xff0c;都包含着…

设计模式-行为型模式-备忘录模式

1.备忘录模式定义 在不破坏封装的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态&#xff0c;这样可以在以后将对象恢复到原先保存的状态&#xff1b; 1.1 备忘录模式的优缺点 优点 提供了一种状态恢复的实现机制&#xff0c;使得用户可以…

社区营销:如何通过聚集人群提升品牌

“没有人是孤岛”&#xff0c;约翰多恩这样写道。如果可以&#xff0c;请忽略他的性别偏见。他写这句话是在1624年&#xff08;那时候真的不一样&#xff09;。尽管如此&#xff0c;几个世纪后&#xff0c;他的话依然铿锵有力&#xff1a;很少有人能够在孤独中茁壮成长。我们是…

Maven从入门到精通(二)

一、什么是pom.xml pom.xml是Maven项目的核心配置文件&#xff0c;它是 项目对象模型 - Project Object Model&#xff08;POM&#xff09;的缩写。POM定义了项目的所有属性&#xff0c;包括项目的名称、版本、依赖关系、构建配置等。使用pom.xml&#xff0c;我们可以轻松地管…

栈实现基本计算器

leetcode题目链接 这题其实和逆波兰表达式很像&#xff0c;无非多了个&#xff08;和&#xff09; 我们可以定义三个变量。 result表示当前计算结果 sign表示是还是- number表示当前数字 遍历字符串 利用isDigit 方法 提出数字 如果遇到加号resultsign*number 减号则将…