2022 China Collegiate Programming Contest (CCPC) Guilin Site

A.Lily

Problem - A - Codeforces

题意

思路

数所有周围没L的格子

#include <bits/stdc++.h>using i64 = long long;constexpr int N = 2e5 + 10;
constexpr int mod = 1e9 + 7;
constexpr int Inf = 0x3f3f3f3f;
constexpr double eps = 1e-10;std::string s;int n;void solve() {std::cin >> n >> s;s = " " + s;for (int i = 1; i <= n; i ++) {if (s[i] == 'L') continue;if (i == 1) {if (s[i + 1] != 'L') {s[i] = 'C';}}else if (i == n) {if (s[i - 1] != 'L') {s[i] = 'C';}}else {if (s[i - 1] != 'L' && s[i + 1] != 'L') {s[i] = 'C';}}}std::cout << s.substr(1, n) << "\n";
}
signed main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t = 1;while(t --) {solve();}return 0;
}

M. Youth Finale

Problem - M - Codeforces

题意

给定一个排列,每次可以翻转这个排列,或者循环往左一个单位,给定操作序列,问操作之后给序列做冒泡排序的操作次数

思路

冒泡排序的操作次数其实就是逆序对的对数,那就是求操作之后的逆序对有多少

考虑DS的思想,我们对它的逆序对统计,考虑两次操作对逆序对的贡献

第一种就是逆序对个数 = 长度 - 逆序对个数

对于第二种,考虑操作一下,变化量就是 cur - pre

cur就是原序列中比操作数大的数

pre就是原序列中比操作数小的数

减一下就行

然后发现需要维护操作数,那就拿个 idx 维护即可,发现第一种操作会让方向反向,因此维护 x 方向

#include <bits/stdc++.h>#define int long longusing i64 = long long;#define lowbit(x) (x & (- x))constexpr int N = 1e6 + 10;
constexpr int mod = 1e9 + 7;
constexpr int Inf = 0x3f3f3f3f;
constexpr double eps = 1e-10;std::string s;int n, m;
int p[N];
int tr[N];void add(int x, int k) {for (int i = x; i <= n; i += lowbit(i)) tr[i] += k;
}
int query(int x) {int res = 0;for (int i = x; i; i -= lowbit(i)) res += tr[i];return res;
}
void solve() {std::cin >> n >> m;for (int i = 1; i <= n; i ++) std::cin >> p[i];std::cin >> s;s = " " + s;int cur = 0;for (int i = 1; i <= n; i ++) {cur += query(n) - query(p[i]);add(p[i], 1);}std::cout << cur << "\n";int idx = 1, x = 1;for (int i = 1; i <= m; i ++) {if (s[i] == 'S') {cur = cur - (p[idx] - 1) + (n - (p[idx] + 1) + 1);idx = idx + x;if (idx == n + 1) idx = 1;else if (idx == 0) idx = n;}else {cur = n * (n - 1) / 2 - cur;idx = idx - x;if (idx == 0) idx = n;else if (idx == n + 1) idx = 1;x = -x;}std::cout << cur % 10;}std::cout << "\n";
}
signed main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t = 1;while(t --) {solve();}return 0;
}

E. Draw a triangle

题意

思路

#include <bits/stdc++.h>#define int long longusing i64 = long long;#define lowbit(x) (x & (- x))constexpr int N = 1e6 + 10;
constexpr int mod = 1e9 + 7;
constexpr int Inf = 0x3f3f3f3f;
constexpr double eps = 1e-10;int a, b, c, d;
int v, u;int exgcd(int a, int b, int &v, int &u) {if (!b) {v = 1, u = 0;return a;}int gcd = exgcd(b, a % b, u, v);u -= (a / b) * v;return gcd;
}
void solve() {std::cin >> a >> b >> c >> d;int x = c - a;int y = d - b;int gcd = exgcd(x, -y, v, u);std::cout << a + u << " " << b + v << "\n";
}
signed main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t = 1;std::cin >> t;while(t --) {solve();}return 0;
}

C. Array Concatenation

题意

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
#define int long long
typedef long long lld;
const int N = 100005;
const lld p = 1000000007;
lld sum[N], a[N], tot[N];
lld powe(lld a, lld b) {lld base = 1; while(b) {if(b & 1) base = base * a % p;a = a * a % p; b >>= 1;}return base;
}
lld pos_t = 0, neg_t = 0, squ = 0;
lld ans1 = 0, ans2 = 0;
signed main() {int n, m; scanf("%lld%lld", &n, &m);for(int i = 1; i <= n; i++) {scanf("%lld", &a[i]);squ += a[i]; squ %= p;}for(int i = 1; i <= n; i++) {sum[i] = (sum[i - 1] + a[i]) % p;pos_t = (pos_t + sum[i]) % p;}for(int i = n; i >= 1; i--) {tot[i] = (tot[i + 1] + a[i]) % p;neg_t = (neg_t + tot[i]) % p;}squ = squ * n % p;ans1 = ans2 = squ * powe(2, m - 1) % p * (powe(2, m) - 1 + p) % p; ans1 = (ans1 + powe(2, m - 1) * pos_t % p) % p;ans1 = (ans1 + powe(2, m - 1) * neg_t % p) % p;ans2 = (ans2 + powe(2, m) * pos_t % p) % p;printf("%lld", max(ans1, ans2)); return 0;
} 

 

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

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

相关文章

cv2.threshold 图像二值化

图像二值化 whatparameters示例 what cv2.threshold是OpenCV中用于进行图像二值化的函数。它的作用是将输入图像的像素值转换为两个可能的值之一&#xff0c;通常是0&#xff08;黑色&#xff09;或255&#xff08;白色&#xff09;&#xff0c;根据一个设定的阈值。图像二值化…

DAPP开发【04】测试驱动开发

测试驱动开发(Test Driven Development)&#xff0c;是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码&#xff0c;然后只编写使测试通过的功能代码通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码&#xff0c…

主题色变量和var实现多套主题换肤

文章目录 一、前言1.1、[VueElementUI实现多套主题换肤](https://blog.csdn.net/u012804440/article/details/133975511)1.2、[VueElementUI实现在线动态换肤](https://blog.csdn.net/u012804440/article/details/133975570) 二、实现2.1、多主题色定义2.2、根节点属性修改2.2.…

RK3568平台开发系列讲解(Linux系统篇)device_node 转换成 platform_device

🚀返回专栏总目录 文章目录 一、DTB转换规则二、转换源码分析沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍通过设备树 device_node 转换成 platform_device 一、DTB转换规则 device 部分是用 platform_device 结构体来描述硬件资源的, 所以内核最终会将…

NodeJs脚手架(Koa)的简单使用

文章目录 前言一、与express的区别express-generator 提供的功能如下koa-generator 提供的功能如下两个生成器共同支持的项目骨架描述如下 二、使用步骤安装 Koa 生成器使用koa2创建项目PM2的使用 三、基础目录说明配置文件package.json入口文件 bin/www核心文件 app.jsroutes …

windows下ffmpeg源码编译

参考&#xff1a;windows上使用vs2019和msys64编译 ffmpeg 4.3 | 码农家园 (codenong.com) 安装命令&#xff1a; pacman -S nasm pacman -S yasm pacman -S make pacman -S cmake pacman -S diffutils pacman -S pkg-config pacman -S git 1.编译 x264 将 x264放到home文件下…

mfc 设置excel 单元格的列宽

CString strTL, strBR;strTL.Format(L"%s%d", GetExcelColName(cd.nCol), cd.nRow);strBR strTL;CRange rangeMerge range.get_Range(_variant_t(strTL), _variant_t(strBR));rangeMerge.put_ColumnWidth(_variant_t((long)(20))); 宽度设置函数为 &#xff1a; pu…

CSS新手入门笔记整理:CSS背景样式

背景颜色&#xff1a;background-color 语法 background-color:颜色值; 颜色值有两种 一种是“关键字”&#xff0c;指的是颜色的英文名称&#xff0c;如red、green、blue等。参考CSS 颜色名称。另外一种是“十六进制RGB值”&#xff0c;类似“#FBE9D0”形式的值。参考十六…

HT78621 3.5A开关限流降压变换器基本参数信息

HT78621是一款高压降压开关稳压器&#xff0c;可向负载提供高达2A的连续电流。 HT78621 特性&#xff1a; ・宽输入电压: 5V – 60V ・峰值开关电流限值典型3.5A ・Z高1MHz开关频率 ・支持PWM调光控制输入&#xff0c;应用于LED ・集成G端MOSFET的短路保护 ・200μA静态电…

启动 AWS Academy Learner Lab【教学】(Hadoop实验)

&#x1f525;博客主页&#xff1a; A_SHOWY&#x1f3a5;系列专栏&#xff1a;力扣刷题总结录 数据结构 云计算 第一部分 创建实例过程 首先&#xff0c;需要创建3台EC2&#xff0c;一台作主节点 (master node)&#xff0c;两台作从节点 (slaves node)。 1.镜像选择 EC2&…

如何基于Akamai IoT边缘平台打造一个无服务器的位置分享应用

与地理位置有关的应用相信大家都很熟悉了&#xff0c;无论是IM软件里的位置共享或是电商、外卖应用中的配送地址匹配&#xff0c;我们几乎每天都在使用类似的功能与服务。不过你有没有想过&#xff0c;如何在自己开发的应用中嵌入类似的功能&#xff1f; 本文Akamai将为大家提…

梯度上升和随机梯度上升

目录 梯度上升算法&#xff1a; 代码&#xff1a; 随机梯度上升算法&#xff1a; 代码&#xff1a; 实验&#xff1a; 做图代码&#xff1a; 疑问&#xff1a; 1.梯度上升算法不适应大的数据集&#xff0c;改用随机梯度上升更合适。 2.改进过的随机梯度算法&#xff0…

Android Edittext进阶版(Textfieids)

一、Text fieids 允许用户在 UI 中输入文本&#xff0c;TextInputLayout TextInputEditText。 在 Text fieids 没出来(我不知道)前&#xff0c;想实现这个功能就需要自己自定义控件来实现这个功能。 几年前做个上面这种样式(filled 填充型)。需要多个控件组合 动画才能实现&a…

游戏开发增笑-扣扣死-Editor的脚本属性自定义定制-还写的挺详细的,旧版本反而更好

2012年在官方论坛注册的一个号&#xff0c;居然被禁言了&#xff0c;不知道官方现在是什么辣鸡&#xff0c;算了&#xff0c;大人不记狗子过 ”后来提交问题给CEO了&#xff0c;结果CEO百忙之中居然回复了&#xff0c;也是很低调的一个人&#xff0c;毕竟做技术的有什么坏心思呢…

基于SSM的老年公寓信息管理的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

如何使用cpolar内网穿透工具实现公网SSH远程访问Deepin

文章目录 前言1. 开启SSH服务2. Deppin安装Cpolar3. 配置ssh公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 前言 Deepin操作系统是一个基于Debian的Linux操作系统&#xff0c;专注于使用者对日常办公、学习、生活和娱乐的操作体验的极致&#xff0…

【C语言】深入理解指针(1)

目录 前言 &#xff08;一&#xff09;内存与地址 从实际生活出发 地址 内存 内存与地址关系密切 &#xff08;二&#xff09;指针变量 指针变量与取地址操作符 指针变量与解引用操作符 指针的大小 指针的运算 指针 - 整数 指针-指针 指针的关系运算 指针的类型的…

C++ 数组

目录 一维数组 一维数组的创建 一维数组的初始化 一维数组的使用 一维数组在内存中的存储 二维数组 二维数组的创建 二维数组的初始化 二维数组的使用 二维数组在内存中的存储 数组越界 一维数组 数组是一组形同类型的集合。 一维数组的创建 数组的创建方式&…

❀dialog命令运用于linux❀

目录 ❀dialog命令运用于linux❀ msgbox部件&#xff08;消息框&#xff09; yesno部件&#xff08;yesno框&#xff09; inputbox部件&#xff08;输入文本框&#xff09; textbox部件&#xff08;文本框&#xff09; menu部件&#xff08;菜单框&#xff09; fselect部…

哈希与哈希表

哈希表的概念 哈希表又名散列表&#xff0c;官话一点讲就是&#xff1a; 散列表&#xff08;Hash table&#xff0c;也叫哈希表&#xff09;&#xff0c;是根据关键码值(Key value)而直接进行访问的数据结构。也就是说&#xff0c;它通过把关键码值映射到表中一个位置来访问记…