Codeforces Round 955 (Div. 2) A~E

SVDD和OCSVM的比较 OCSVM(one class support vector machine)即单类支持向量机,最先提出的文献为:Estimating the support of a high-dimensional distribution.该模型 将数据样本通过核函数映射到高维特征空间,使其具有更良好的聚集性,在特征空间中求解一个最优超平面实现目标数据与坐标原点的最大分离,如图1: 坐标原... 阅读详情

A.Soccer(思维)

题意:

迪马喜欢看足球比赛。在这样一场比赛中,记分牌上的比分表示为xxx:yyy,其中xxx是第一队的进球数,yyy是第二队的进球数。在任何时候,只有一支球队可以进球,因此比分xxx:yyy可以变为(x+1)(x+1)(x+1):yyy,或者xxx:(y+1)(y+1)(y+1)。

在观看足球比赛时,迪马被一些非常重要的事情分散了注意力,过了一段时间,他又重新开始观看比赛。迪马记得他走神前的比分和他回来后的比分。鉴于这两个比分,他想知道以下问题。有没有可能在迪马没有看比赛的时候,两队的比分从来没有相同过?

可以肯定的是,在迪马记得的两个时间点上,两队的比分都不相等。不过,也有可能在他不在的时候,比分并没有发生变化。

请帮助迪马回答问题!

分析:

我们将之前的比分表示为[x1,y1][x_1,y_1][x1​,y1​],之后的比分表示为[x2,y2][x_2,y_2][x2​,y2​]。二者不相交则不可能出现相同的分数。

代码:

#include<bits/stdc++.h>

using namespace std;

void solve() {
    int x1, y1, x2, y2;
    cin >> x1 >> y1 >> x2 >> y2;
    if (x1 < y1) {
        if (x2 >= y2) {
            cout << "NO" << endl;
        } else {
            cout << "YES" << endl;
        }
    } else if (x1 > y1) {
        if (x2 <= y2) {
            cout << "NO" << endl;
        } else {
            cout << "YES" << endl;
        }
    } else {
        cout << "YES" << endl;
    }
}

int main() {
    int t;
    cin >> t;
    while (t--)
        solve();
    return 0;
}

B.Collatz Conjecture(思维、数学)

题意:

最近,一年级学生马克西姆学习了科拉兹猜想,但他在讲课时没有太注意,所以他认为猜想中提到了以下过程:

有一个变量xxx和一个常数yyy。下面的操作进行了kkk次:

  • 将xxx增加111,然后
  • 当数字xxx能被yyy整除时,再除以yyy。

请注意,这两个操作都是在一次操作中依次进行的。

例如,如果数字x=16x=16x=16、y=3y=3y=3和k=2k=2k=2,那么经过一次运算后,xxx就变成了171717,而经过另一次运算后,xxx就变成了222,因为加一后,x=18x=18x=18就能被333整除两次。

鉴于初始值为xxx、yyy和kkk,马克西姆想知道xxx的最终值是多少。

分析:

直接模拟会超时。考虑如果xxx等于111,可以直接跳出循环,用数学方法解决,因为这时xxx就一直会在[1,y][1,y][1,y]之间。

代码:

#include<bits/stdc++.h>

using namespace std;

void solve() {
    int x, y, k;
    cin >> x >> y >> k;
    while (k != 0 && x != 1) {
        int t = min(k, y - x % y);
        x += t;
        k -= t;
        while (x % y == 0) {
            x /= y;
        }
    }
    k %= (y - 1);
    x = x + k;
    cout << x << endl;
}

int main() {
    int t;
    cin >> t;
    while (t--)
        solve();
    return 0;
}

C.Boring Day(贪心)

题意:

又是无聊的一天,埃戈尔觉得无聊,决定做点什么。但因为没有朋友,他就想出了一个游戏。

埃戈尔有一副nnn张扑克牌,最上面的iii张牌上写着数字aia_iai​。埃戈想玩一定轮数的游戏,直到牌用完为止。在每一轮中,他都会从牌面顶端抽取一张非零数的牌,然后结束这一轮。如果在这一轮中收集到的纸牌上的数字之和在lll和rrr(包括首尾数字)之间,则这一轮获胜;否则,这一轮失败。

埃戈尔对纸牌的顺序了如指掌。请帮助埃戈尔确定他在这样的游戏中最多可以赢多少局。请注意,伊戈尔不需要连续赢得回合。

分析:

本题我们考虑贪心,使用双指针先一直往后加和(后面的指针往后走),当和不小于lll时,将前指针也往后走,假如现所在位置为lll。那么就将sum−alsum−a_lsum−al​。

代码:

#include<bits/stdc++.h>

typedef long long LL;
using namespace std;
const int N = 1e6 + 5;
LL a[N];

void solve() {
    int n, L, R;
    cin >> n >> L >> R;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    LL cnt = 0;
    LL sum = 0;
    int l = 0;
    for (int r = 1; r <= n; r++) {
        sum += a[r];
        while (l + 1 <= r && sum > R) {
            sum -= a[++l];
        }
        if (sum >= L && sum <= R) {
            cnt++;
            sum = 0;
            l = r;
        }
    }
    cout << cnt << endl;
}

int main() {
    int t;
    cin >> t;
    while (t--)
        solve();
    return 0;
}

D.Beauty of the mountains(数学)

题意:

尼基塔喜欢山,终于决定去贝里安德山脉看看!这座山脉如此美丽,尼基塔决定用地图记录下来。地图是一个由nnn行和mmm列组成的表格,每个单元格都包含一个非负整数,代表山的高度。

他还注意到,山有两种类型:

  • 有雪盖。
  • 无雪帽。

尼基塔是一个非常务实的人。他希望有雪帽的山的高度总和等于没有雪帽的山的高度总和。他已经和贝里安德的市长波利卡普-波利卡波维奇达成了协议,允许他改造地貌。

尼基塔可以对大小为k×kk\times kk×k的子矩阵进行如下变换:他可以在该区域内的山峰高度上添加一个整数常数ccc,但山峰的类型保持不变。尼基塔可以为每次变换独立选择常数ccc。注意ccc可以是负数。

在进行变换之前,尼基塔会要求您找出是否有可能实现总和相等,或者是否不可能。即使山变成了峡谷,高度为负数,代价也无所谓。

如果地图上只有一种类型的山,那么另一种类型的山的高度之和将被视为零。

分析:

我们考虑到,如果要让这两部分分别相等(000部分的和为sum0sum_0sum0​,111部分的和为sum1sum_1sum1​),那么我们对于每一个k×kk×kk×k的矩阵mim_imi​,假设当前矩阵被选且其中有numi,0num_{i,0}numi,0​个000,和numi,1num_{i,1}numi,1​个111,且当前答案系数为cic_ici​。

我们令sum0sum_0sum0​加上ck×numi,0c_k×num_{i,0}ck​×numi,0​,sum1sum_1sum1​加上ck×numi,1c_k×num_{i,1}ck​×numi,1​,那么sum0sum_0sum0​会加上∑ci×numi,0(i∈S)\sum c_i×num_{i,0}(i∈S)∑ci​×numi,0​(i∈S),sum1sum_1sum1​会加上∑ci×numi,1(i∈S)\sum c_i×num_{i,1}(i∈S)∑ci​×numi,1​(i∈S)。这两部分加上原来的部分就是我们要求的相等的和,所以设原来两部分的差为mnmnmn,这样则有
∑ci×∣numi,0−numi,1∣=mn(i∈S)\sum c_i×∣num_{i,0}−num_{i,1}∣=mn(i∈S)∑ci​×∣numi,0​−numi,1​∣=mn(i∈S)。

而绝对值内的部分可以通过二维前缀和预处理,ccc为未知数,所以这是不定方程的形式,我们利用裴蜀定理,求出所有∣numi,0−numi,1∣∣num_{i,0}−num_{i,1}∣∣numi,0​−numi,1​∣的gcdgcdgcd(如果其中存在000则跳过),如果所有这些数都是000且mn=0mn=0mn=0,或者这个gcdgcdgcd整除mnmnmn则有方案,否则无方案。

代码:

#include<bits/stdc++.h>

typedef long long LL;
using namespace std;
const int N = 5e2 + 2;

LL gcd(int a, int b) {
    return b > 0 ? gcd(b, a % b) : a;
}

LL n, m, k, a[N][N], c[N][N];
string s[N];


LL cal1(int x1, int y1, int x2, int y2) {
    return c[x2][y2] - c[x1 - 1][y2] - c[x2][y1 - 1] + c[x1 - 1][y1 - 1];
}

LL cal2(int x1, int y1, int x2, int y2) {
    return a[x2][y2] - a[x1 - 1][y2] - a[x2][y1 - 1] + a[x1 - 1][y1 - 1];
}

void solve() {
    cin >> n >> m >> k;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            cin >> a[i][j];
        }
    }
    for (int i = 1; i <= n; i++) {
        cin >> s[i];
        s[i] = " " + s[i];
        for (int j = 1; j <= m; j++) {
            if (s[i][j] == '0') {
                c[i][j] = -1;
                a[i][j] *= -1;
            } else {
                c[i][j] = 1;
            }
        }
    }
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            c[i][j] += c[i - 1][j] + c[i][j - 1] - c[i - 1][j - 1];
            a[i][j] += a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1];
        }
    }
    LL g = 0;
    for (int i = 1; i + k - 1 <= n; i++) {
        for (int j = 1; j + k - 1 <= m; j++) {
            LL sum = cal1(i, j, i + k - 1, j + k - 1);
            sum = abs(sum);
            g = gcd(g, sum);
        }
    }
    LL sum = cal2(1, 1, n, m);
    if ((g == 0 && sum == 0) || (g != 0 && sum % g == 0)) {
        cout << "YES" << endl;
    } else {
        cout << "NO" << endl;
    }
}

int main() {
    int t;
    cin >> t;
    while (t--)
        solve();
    return 0;
}

E.Number of k-good subarrays(思维)

题意:

让bit(x)bit(x)bit(x)表示非负整数xxx的二进制表示中的111的个数。

如果一个数组的子数组只由二进制表示中的111数不超过kkk的数组成,那么这个数组被称为kkk(好)数组,对于数组aaa的子数组(l,r)(l,r)(l,r),当满足条件bit(ai)≤kbit(a_i)≤kbit(ai​)≤k对于所有l≤i≤rl≤i≤rl≤i≤r的iii时,则该子数组是kkk好的。

给你一个长度为nnn的数组aaa,由从000开始的连续的非负整数组成,即0≤i≤n−10\le i\le n-10≤i≤n−1的ai=ia_{i}=iai​=i。你需要计算这个数组中kkk好的子数组的数量。

由于答案可能非常大,所以请输出对109+710^{9}+7109+7取模的结果。

分析:

设sol(n,k)sol(n,k)sol(n,k)为答案。(注意,是[0,n−1][0,n-1][0,n−1]的)那么sol(n,k)sol(n,k)sol(n,k)可以通过sol(mx,k)sol(mx,k)sol(mx,k)和sol(n−mx,k−1)sol(n-mx,k-1)sol(n−mx,k−1)算出来,其中mxmxmx是小于nnn的最大222次幂。(大于等于mxmxmx的就会有一位固然是111,就会是k−1k-1k−1。)设mx=2cmx=2^cmx=2c。

除了内部的,还有一个端点在左边一个端点在右边的。官方题解是维护了三个值,较为复杂。

我们发现,如果c>kc\gt kc>k,那么左边最后一个就会有大于kkk个111,没有贡献,所以必须c≤kc\le kc≤k。这个时候左边所有的都满足,只需要计算右边的。右边的到了2k−12^k-12k−1也不行,因为这样也超过了(当然要和长度取最小值)。所以我们算出了右边的贡献s=min(2c−1,n−2c)s=min(2^c-1,n-2^c)s=min(2c−1,n−2c)。那么,答案就要多加上s×2cs\times 2^cs×2c。直接记忆化搜索即可。

代码:

#include<bits/stdc++.h>

typedef long long LL;
using namespace std;
const LL MOD = 1e9 + 7;
map<pair<LL, LL>, LL> mp;

LL sol(LL n, LL k) {
    if (k == 0 || n == 1) {
        return 1;
    }
    if (mp.count({n, k})) {
        return mp[{n, k}];
    }
    LL c = 0;
    while ((1ll << c + 1) < n) {
        c++;
    }
    LL l = sol(1ll << c, k);
    LL r = sol(n - (1ll << c), k - 1);
    LL ans = l + r;
    if (c <= k) {
        LL s = min((1ll << k) - 1, n - (1ll << c));
        ans += s % MOD * ((1ll << c) % MOD) % MOD;
    }
    mp[{n, k}] = ans % MOD;
    return ans % MOD;
}

void solve() {
    LL n, k;
    cin >> n >> k;
    cout << sol(n, k) << endl;
}

int main() {
    int t;
    cin >> t;
    while (t--)
        solve();
    return 0;
}

赛后交流

在比赛结束后,会在交流群中给出比赛题解,同学们可以在赛后查看题解进行补题。

群号: 704572101,赛后大家可以一起交流做题思路,分享做题技巧,欢迎大家的加入。

3.4 ISIS和OSPF之间路由引入 通过以上输出可以看到OSPF的路由引入到了IS-IS中。通过以上输出可以看到ISIS的路由没有传递给OSPF。通过以上输出可以看到OSPF的路由没有传递给ISIS。通过以上输出可以看到ISIS的路由被引入进了OSPF。掌握在IS-IS中引入OSPF路由的方法。掌握在OSPF中引入IS-IS路由的方法。图3-3:ISIS和OSPF之间路由引入。在R3上把ISIS的路由引入到OSPF。OSPF引入外部路由的缺省度量值为1。在R3上把OSPF的路由引入到ISIS。引入的外部路由类型为Type2。 阅读详情

相关推荐

大众奥迪诊断不求人:手把手解析SAE J2819(CAN TP2.0)协议报文与连接流程

本文深入解析大众奥迪车型诊断核心标准SAE J2819(CAN TP2.0)协议,详细拆解连接建立流程与报文控制字段。通过实战案例展示通道设置、参数协商等关键步骤,提供诊断设备配置建议和常见故障排查技巧,帮助工程师掌握汽车诊断通信协议的精髓。

weixin_30421809的博客 396

codeforces 955 round div2

codeforces 955 round div2 题解

wyzz_yz的博客 1166

【Simulink教程案例9】基于simulink的BPSK,QPSK调制解调通信系统建模与仿真——使用simulink自带模块设计

BPSK (Binary Phase Shift Keying)-------二进制相移键控。是把模拟信号转换成数据值的转换方式之一,利用偏离相位的复数波浪组合来表现信息键控移相方式。BPSK使用了基准的正弦波和相位反转的波浪,使一方为0,另一方为1,从而可以同时传送接受2值(1比特)的信息。BPSK的映射关系如下所示:BPSK调制过程将输入的1010二进制数据中的0都转化为-1,使得非极性码变为极性码。

FPGA/MATLAB学习教程/源码/项目合作开发 3484

Codeforces Round 955 (Div. 2) (A~D) python

用双端队列维护当前的牌,记录总点数,按顺序拿牌,每次能获胜则直接结束,否则若息小于l则继续拿,大于r则将,最前面的牌移出,直到空或者不再大于r,模拟该牌在之前被放弃的情况。每次可以使k*k的子矩阵同时加减任意数,只需计算每个子矩阵0,1的数量差,每次操作可使山的差距变化差值的整数倍。每次加到能整除k,然后除到不能整除为止,剩下不够加到能整除,x直接加上剩余k,打印答案。当存在一些差值的gcd是山总差值的因子时,则可经过多次固定的操作将山的总差值消除。要使两种山的高度和相同,只需要消除其总差值,

wyzkeyy的博客 780

手把手教你学Simulink--Simulink智能驾驶场景挑战:高速公路入口匝道汇入仿真

高速公路入口匝道汇入在智能驾驶中的作用是当车辆从入口匝道进入主干道时,系统能够自主决策并执行汇入操作,确保安全和高效。目标识别与跟踪:如检测前方障碍物、识别车道线。路径规划:如计算最优汇入路径。动态控制:如调整速度、转向等以完成汇入动作。本示例将展示如何使用Simulink构建一个用于智能车辆高速公路入口匝道汇入的仿真模型,并进行验证。通过本指南,我们介绍了如何基于Simulink搭建一个用于智能车辆高速公路入口匝道汇入的仿真模型,并进行仿真和性能评估。背景介绍。

MHD0815的博客 262

Linux iperf 进行跑流测试时,为啥单条流会有速率上不去的问题?

iperf

1042484520@qq.com(邮箱) 3086

D. Beauty of the mountains

【代码】D. Beauty of the mountains。

yingxueyuhanling的博客 164

2026 最新安全 Skill 合集(CTF / 审计 / 渗透 / 红队)威胁建模一网打尽

2026年安全领域进入"Skill化"时代,各类安全能力被结构化封装为可复用的AI Skill。本文介绍了7个核心安全Skill项目:渗透测试全流程的AgentSkillsHub、CTF解题技能库ctfskills、多语言代码审计工具codeaudit、PHP专项审计系统、Java自动化审计流水线、威胁建模工具threatmodeling以及覆盖30+领域的Anthropic-Cybersecurity-Skills。这些项目将传统安全经验转化为标准化、可验证、可自动执行的模块化能力,支

Chengbei11的博客 1873

B. Collatz Conjecture(cf955)

例如,如果数字 x=16 、 y=3 和 k=2 ,那么经过一次运算后, x 就变成了 17 ,而经过另一次运算后, x 就变成了 2 ,因为加一后, x=18 就能被 33整除两次。鉴于初始值为 x 、 y 和 k ,马克西姆想知道 x𝑥的最终值是多少。有一个变量 x 和一个常数 y。请注意,这两个操作都是在一次操作中依次进行的。有操作的 不能用枚举。

m0_74310050的博客 513

基于ESP32的室内空气质量检测系统开发

随着环境污染问题的日益严重,室内空气质量的监测变得越来越重要。室内空气质量的好坏直接影响到人们的健康,尤其是对于在封闭空间长时间待着的人群。为此,基于ESP32的室内空气质量检测系统应运而生。ESP32作为一款集成了Wi-Fi和蓝牙的高性能微控制器,为嵌入式开发提供了良好的平台,适用于构建各种智能硬件设备。本博客将详细介绍如何基于ESP32开发一个室内空气质量检测系统。系统可以实时监测空气中的温度、湿度、二氧化碳浓度、甲醛浓度等指标,并通过Wi-Fi将数据传输到云端或移动设备,方便用户随时查看空气质量情况。

2201_76125393的博客 831

Vue Vben Admin 登录页修改全攻略:从登录界面定制到接口对接全流程配置

方式一:修改国际化文件找到对应的语言包文件,修改和的值。方式二:直接传递文本page-description="现代化的后台管理系统模板"page-title="欢迎使用 Vue Vben Admin"从上面的代码可以看出,登录表单使用了的方式来定义表单字段,这种方式提供了极大的灵活性。如果你想要自定义表单,可以修改formSchema数组。如果你的登录需求非常特殊,现有的组件无法满足,你可以完全自定义表单。只需在login.vue中替换<template><h2>自定义登录</h2>

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 479

Codeforces Round 955 (Div. 2, with prizes from NEAR!)-C. Boring Day

动态规划+前缀和+二分 我们用s数组来维护a数组的前缀和 状态表示:做动态规划题目时应该用集合来表示所有状态,不重不漏表示完,f[i][0]表示从前i张牌选可以赢得的最大回合数其中不包括第i张牌,f[i][1]表示从前i张牌选可以赢得的最大回合数其中包括第i张牌 这样f[i][0],f[i][1]就不重不漏表示了前i张牌的所有状态 状态计算:f[i][0]=max(f[i-1][1],f[i-1][0])这个很好理解如果第i张牌不选那么就相当于从前i-1张选,f[i][1]怎么转移呢分两种情况: 1当a[i

m0_73754615的博客 363

华为od 面试八股文_C语言_01_含答案

华为od 面试八股文_C语言_01_含答案

MISAYAONE的博客 3225

Codeforces Round 955

Codeforces Round 955

青少年趣味编程 1562

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Codeforces Round 955 Div.2 A~D

Codeforces Round 955 Div.2 A~D 题解

m0_73486820的博客 1275

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Codeforces Round 955 (Div. 2 ABCDEF题) 视频讲解

Codeforces Round 955 (Div. 2, with prizes from NEAR!) 视频讲解

Edward Shi的博客 1597

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Codeforces Round 955 (Div. 2, with prizes from NEAR!)解题报告(A-C)

题目:解题思路:只需要看最后分数是否追平或反超即可。

2301_79876716的博客 1571

Codeforces Round 889

Codeforces Round 889

青少年趣味编程 647

codeforces round 995

codeforces round 995

青少年趣味编程 1953

Codeforces Round 999

Codeforces Round 999

青少年趣味编程 834

Codeforces Round 956

Codeforces Round 956

青少年趣味编程 702

【CF】Day57——Codeforces Round 955 (Div. 2, with prizes from NEAR!) BCD

简单模拟很简单的模拟,我们只需要快速的找到下一个离 x 最近的 y 的倍数即可(要大于 x)这里我们可以这样写 add = y - (x % y),这样就知道如果 x 要变成 y 的倍数还要增加多少个数然后模拟即可注意,这样操作有限次后如果 k 足够,那么最后 x 一定会变成 1,此时将进入一个循环,每经过 k - 1 此后 x 又会变成 1,这样我们就能很快算出来了。

qq_61422664的博客 524

Codeforces Round955 (Div2)--(A~D)题解

滑动窗口,裴蜀定理

qq_42643660的博客 405

Codeforces Round #641 (Div. 2) B.Orac and Models

Codeforces Round #641 (Div. 2) B.Orac and Models 题目链接 There are n models in the shop numbered from 1 to n, with sizes s1,s2,…,sn. Orac will buy some of the models and will arrange them in the order of increasing numbers (i.e. indices, but not sizes). Orac

旺崽的博客 2533

Codeforces Round #282 (Div. 2) a

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33835690的博客 78

Codeforces Round 955 (Div. 2, with prizes from NEAR!)

【代码】Codeforces Round 955 (Div. 2, with prizes from NEAR!

Water_Sunzhipeng的博客 652
上一篇: Codeforces Round 954 (Div. 3) A~F
下一篇: 信息学一周赛事安排
AC-Panda
博客等级 码龄5年 1736粉丝 191原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值