Educational Codeforces Round 115 (Rated for Div. 2)

ads设计Doherty功放(1) Doherty功放的设计 阅读详情

A Computer Game

题目大意

给定两个长度为n的01串,0能通过,1不能通过,问能否从(1, 1)走到(2, n)

主要思路

只要从1到n的任意位置不存在上下两个全是1的情况即可

AC代码
#include <bits/stdc++.h>

#define int long long
using namespace std;
#define debug(a) cout << #a << " = " << a << endl;
#define x first
#define y second
typedef long long ll;
const int N = 500010, mod = 1e9+7;

int n, m;

signed main(void)
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    
    int T;
    cin >> T;
    while(T--)
    {
        cin >> n;
        bool flag = true;
        string s[10];
        for(int i = 1; i <= 2; i++)
        {
            cin >> s[i];
        }
        
        if(s[1][0] == 1) flag = false;
        else
        {
            for(int i = 0; i < n; i++)
            {
                if(s[1][i] == '1' && s[2][i] == '1') flag = false;
            }
        }
        
        if(flag) cout << "YES" << endl;
        else cout << "NO" << endl;
    }
    return 0;
}

B Groups

题目大意

给定n个人,每个人都有想去的的周几的课,让你把这些学生分成人数相同的两队,并且每队的学生都愿意去某一节课,且两队去的课不能相同

主要思路

暴力枚举每一队选择哪两天,假设第一队选择i,第二队选择j

首先判断出愿意在i且不愿意在j的人数cnti,愿意在j不愿意在i的人数cntj,以及即愿意在i也愿意在j的人数cnt,如果有人既不愿意在i也不愿意在j那么不能分成两队一定不合法

其次我们只要让cnt分给cnti和cntj让这两个值相等即可

假设cnti + cnt < cntj || cntj + cnt < cnti这样一定不能让cnti和cntj相等,其余情况均可

AC代码
#include <bits/stdc++.h>

#define int long long
using namespace std;
#define debug(a) cout << #a << " = " << a << endl;
#define x first
#define y second
typedef long long ll;
const int N = 1010, mod = 1e9+7;

int n, m;
int a[N][10];
int st[N];

bool check(int x, int y)
{
    int cntx = 0, cnty = 0, cnt = 0;
    for(int i = 1; i <= n; i++)
    {
        if(a[i][x] && !a[i][y]) cntx++;
        else if(!a[i][x] && a[i][y]) cnty++;
        else if(a[i][x] && a[i][y])
        {
            cnt++;
        }
        else return false;
    }
    if(cntx + cnt < cnty || cnty + cnt < cntx) return false;
    else return true;
}

signed main(void)
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    
    int T;
    cin >> T;
    while(T--)
    {
        cin >> n;
        for(int i = 1; i <= n; i++)
        {
            for(int j = 1; j <= 5; j++)
            {
                cin >> a[i][j];
            }
        }
        
        bool flag = false;
        for(int i = 1; i <= 5; i++)
        {
            for(int j = i + 1; j <= 5; j++)
            {
                if(check(i, j)) flag = true; 
            }
        }
        
        if(flag) cout << "YES" << endl;
        else cout << "NO" << endl;
    }
    return 0;
}

C Delete Two Elements

题目大意

给定k个数,让你在k个数中任选两个数使其剩下的k-2个数的平均值与k个数的平均值相同,问有多少种选法

主要思路

首先假设n个数平均值为k,k * 2为任选的两个数的和

  • 假设这个数不为整数,那么一定返回0,因为输入n个数都为整数,(a + b) / 2 == sum / n,于是sum * 2 / n == a + b,由于a + b是整数,所以(sum * 2) % n == 0
  • 然后我们对数组记录每个数出现的次数,然后排序+去重
  • 遍历排序去重后的数组,对每个数二分找两个数的和与k*2相等的数,加上两个数个数的乘积即可
AC代码
#include <bits/stdc++.h>

#define int long long
using namespace std;
#define debug(a) cout << #a << " = " << a << endl;
#define x first
#define y second
typedef long long ll;
const int N = 200010, mod = 1e9+7;
const double eps = 1e-8;

int n, m;

signed main(void)
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    
    int T;
    cin >> T;
    while(T--)
    {
        unordered_map<int, int> st;
        cin >> n;
        vector<int> a(n);
        int sum = 0;
        for(int i = 0; i < n; i++) cin >> a[i], sum += a[i], st[a[i]]++;
        sort(a.begin(), a.end());
        a.erase(unique(a.begin(), a.end()), a.end());
        //debug(a.size())
        double k = sum * 1.0 / n;
        if((sum * 2) % n != 0)
        {
            cout << 0 << endl;
            continue;
        }
        
        int ans = 0;
        for(int i = 0; i < a.size(); i++)
        {
            int l = 0, r = a.size() - 1;
            while(l < r)
            {
                int mid = l + r >> 1;
                if((a[i] + a[mid]) * 1.0 / 2 >= k) r = mid;
                else l = mid + 1;
            }
            if((a[i] + a[l]) == k * 2)
            {
                if(a[i] != a[l]) ans += st[a[i]] * st[a[l]], st[a[i]] = 0, st[a[l]] = 0;
                else ans += st[a[i]] * (st[a[i]] - 1) / 2, st[a[i]] = 0;
            }
        }
        cout << ans << endl;
    }
    return 0;
}
D Training Session
题目大意

给定n对(x, y),问从中选出3对且这3对不存在x有相同且y有相同,问能选出多少组合

主要思路

正着计算不好计算我们考虑反着算,先计算出n个数中任选3个数情况是n * (n - 1) * (n - 2) / 6,然后减去选出的3各种x有相同且y有相同的情况

我们先统计出每一个x出现的次数和每一个y出现的次数,然后从1开始遍历,答案每次减去当前遍历到的x和当前遍历到的y的(x - 1)*(y - 1)的乘积,每次要除去自己本身,在其他x中任取一个以及在其他y中任取一个,由于不存在两队x和y相同,所以不存在重复情况

AC代码
#include <bits/stdc++.h>

#define int long long
using namespace std;
#define debug(a) cout << #a << " = " << a << endl;
#define x first
#define y second
typedef long long ll;
const int N = 200010, mod = 1e9+7;

int n, m;
pair<int, int> a[N];

signed main(void)
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    
    int T;
    cin >> T;
    while(T--)
    {
        unordered_map<int, int> mpx, mpy;
        
        cin >> n;
        for(int i = 0; i < n; i++)
        {
            cin >> a[i].x >> a[i].y;
            mpx[a[i].x]++, mpy[a[i].y]++;
        }
        
        int ans = n * (n - 1) * (n - 2) / 6;
        for(int i = 0; i < n; i++)
        {
            ans -= (mpx[a[i].x] - 1) * (mpy[a[i].y] - 1);
        }
        cout << ans << endl;
    }
    return 0;
}
医疗AI多智能体资源调度:用Python构建高性能MCU资源池 本文介绍了医疗AI服务平台中多智能体资源争用问题的解决方案。作者设计了一个基于MCU(多点控制单元)理念的中央资源调度器,通过三层架构(资源抽象层、调度策略层、执行控制层)实现对GPU、API、数据库等医疗资源的统一管理。系统采用增强版信号量机制处理可计数并发资源,优化令牌桶算法管理速率资源,并支持急诊优先、配额限制、审计合规等医疗场景特殊需求。核心代码提供了带优先级抢占的并发控制和医疗专用令牌桶实现,可有效解决多智能体资源争用导致的优先级混乱、资源利用不均等问题。 阅读详情

相关推荐

YOLOv11 改进策略 | HWD:引入 Haar 小波变换,减少信息丢失

在卷积神经网络(CNN)中,下采样(Downsampling)是降低特征图分辨率、扩大感受野的关键操作,通常通过最大池化(MaxPool)或步长为 2 的卷积(Strided Convolution)实现。然而,这些方法在降低分辨率的同时,往往会丢失图像中的高频细节信息(如边缘、纹理)和精确的空间位置信息,这可能对后续特征提取和目标检测精度产生不利影响,尤其是对于小目标和需要精细定位的任务。

走向CTO的路上... 1789

Educational Codeforces Round 115 (Rated for Div. 2)简训

Educational Codeforces Round 115 日常

C_eeking的博客 486

latex写论文(TeXstudio工具)

目录前言IEEE模板模板免费分享参考文献写作方法我的.tex文件代码 前言 学校老师要求我们以IEEE顶级会议格式与标准写报告,于是过程虽然麻烦点,但是效果还是不错了,下面先展示一下自己写完的效果。 IEEE模板 我是在 Overleaf 上注册了个账号下载了模板,里面有各种会议论文的写作模板,这个注册还挺麻烦,要外网注册,国内邮箱都不行。进行后点菜单,菜单里有下载源码。 https://cn.overleaf.com/project/5fe5b082dff088649fc67106 模板免费分享 已

小样yx的博客 6751

Educational Codeforces Round 115 (Rated for Div. 2)【A~D】

文章目录ABCD A 题意 给出一个 2×n2 \times n2×n 的矩阵,起点 (1,1)(1, 1)(1,1) 终点 (2,n)(2, n)(2,n),每次可以走到 相邻的格子(包括对角),矩阵中 0 表示空地,1 表示障碍,问能否走到终点 题解 只要 (1,x),(2,x)(1,x),(2,x)(1,x),(2,x) 不同时为 1 就能走到 #include<iostream> #include<sstream> #include<string> #includ

qq_50554695的博客 346

低功耗蓝牙技术 > GAP和GATT介绍

GAP和GATT作为蓝牙协议栈中的关键协议,为BLE设备之间的通信提供了标准和框架。GAP主要负责设备的连接、广播和角色定义,而GATT则定义了BLE设备之间的具体通信方式,通过Services和Characteristics实现数据的传输和交换。在蓝牙技术的发展中,GAP和GATT两个协议扮演着关键的角色,为BLE(低功耗蓝牙)设备之间的通信提供了规范和框架。GATT连接是建立在GAP协议之上的,是一种独占连接,一个BLE外设同时只能连接一个中心设备。连接建立后,通信是双向的,不同于GAP的单向通信。

DL_62532的专栏 4030

从永恒之蓝看内网安全:企业如何用Nmap+MSF快速检测445端口风险

本文探讨了企业如何利用Nmap和Metasploit快速检测445端口风险,防范永恒之蓝(MS17-010)漏洞攻击。通过分阶段检测流程和自动化工具组合,企业可高效识别内网风险主机,并实施紧急隔离与长效防护策略,提升整体网络安全防护能力。

weixin_30772105的博客 599

Educational Codeforces Round 115 (Rated for Div. 2)题解A-F

Educational Codeforces Round 115 (Rated for Div. 2) A. Computer Game 分析: 输出YES当且仅当,每一列都至少存在一个0. 代码: #include <iostream> #include <algorithm> #include <queue> #include <cstring> #include <map> using namespace std; #define close

Arctic_Clam的博客 933

基于PSIM仿真的单相全桥逆变电路

根据单极性SPWM调制电路、双极性SPWM调制电路和逆变器拓扑可以得到完整的逆变器仿真电路模型。

weixin_59329579的博客 1万+

【题目记录】——Educational Codeforces Round 115 (Rated for Div. 2)

文章目录A Computer GameB GroupsC Delete Two Elements 题目集地址Educational Codeforces Round 115 (Rated for Div. 2) A Computer Game 题目地址A Computer Game 题目大意:2*n的迷宫,1代表有障碍物,0代表没有,只能只能走一个格子的距离,可以斜着走一个格子,问能不能走到终点。 思路:根据题意我们可以知道当迷宫的某一列上下两行同时为1时就无法到达终点了。 AC代码: #include &

气派飞鹰的博客 488

TekTronix 高速信号完整性基础以及测试方法分析

如果信号速率比较高,则CTLE与FFE都无法满足要求,尤其是大于10G,比如USB3.1Gen2 10Gbps,PCIe4.0 16Gbps,这些场合都会采用DFE均衡,DFE的优点是,它既可以识别当前比特,并且可以判决前面的n个比特(Tap的阶数越高,看到的前面的比特数越多),根据前面比特的变化来计算出要处理当前比特所要变化的幅度,来补偿由于前面比特变化所引起的信号幅度的变化。10G以下,一般都不太关心这个串扰,高于10G的信号,会发现相互之间的串扰越来越明显,已经成为引起误码的重要的原因之一。

weixin_45365488的博客 4142

多模态论文笔记——BLIP

本文详细介绍这几年AIGC火爆的隐藏功臣,多模态模型:BLIP。

haopinglianlian的博客 2454

Educational Codeforces Round 115 (Rated for Div. 2) D. Training Session

传送门 题意: 给你n个题,每个题都有一个主题和一个难度,输入保证同一个主题下不会有相同难度的题出现,现选择三个题组成一个题集,问你满足以下至少一个条件的选择有多少种:1.所选择的三个题目主题互不相同。2.所选择的三个题难度互不相同。 思路: 直接算出所有方案数的难度过大,于是走反面,用总的选择数-非法的选择数。 对于此题的输入,我们可以建立邻接矩阵,并将每一种难度的题的数目装入桶中。 遍历所有的问题,对于问题a(i,j)a(i,j)a(i,j),i表示主题,j表示难度,一定包含问题a的非法组合的数目为:

p15008340649的博客 225

〔重庆理工大学〕操作系统实验指导书【实验三 系统调用】

本实验指导书详细介绍了在Linux 0.11系统中添加两个自定义系统调用(iam()和whoami())的完整流程。实验内容包括:修改unistd.h添加系统调用号,更新sys_call_table数组,实现内核函数sys_iam()和sys_whoami(),以及编写测试程序验证功能。关键步骤涉及用户态与内核态数据传递、系统调用号分配、中断处理机制等核心概念。实验要求学习者通过修改内核源码、理解系统调用原理,最终实现名字存储与读取功能,并完成测试验证。实验还提供了视频学习资源和参考书籍,帮助深入理解操作系

Pretty Boy Fox的博客 1294

Educational Codeforces Round 115 (Rated for Div. 2) A.B

A.Computer Game 题目大意:给定一个2∗n2*n2∗n的迷宫,从左上角出发到达右下角,每次只能向相邻方格跳。判断能否到达。 思路:如果存在一列都为障碍物,那么无论怎么跳也无法到达终点 #include <bits/stdc++.h> using namespace std; signed main(){ int t = 0; cin >> t; while(t--){ int n = 0; cin >> n;

HeartFireY的博客 346

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Educational Codeforces Round 115 (Rated for Div. 2) A. Computer Game

题目链接:Problem - 1598A - Codeforces Monocarp is playing a computer game. Now he wants to complete the first level of this game. A level is a rectangular grid of22rows andnncolumns. Monocarp controls a character, which starts in cell(1,1)(1,1)— at the...

m0_55682843的博客 583

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Educational Codeforces Round 115 (Rated for Div. 2)部分题解

目录A题题目陈述思路代码实现B题题目陈述思路代码实现C题题目陈述思路代码实现D题题目陈述思路原题意:性质“或”代码实现拓展题意:性质"与"代码实现 A题 题目陈述 大意:在一个2∗n2*n2∗n的长方形网格中,每一个叉点只有’0’或’1’,可以横着竖着斜着走,是否存在只经过0从左上角走到右下角的路径。 思路 两个数相与为0即代表有答案,如果不为0,说明两个格子都为1,比如不能通过。 时间复杂度O(n)O(n)O(n) 代码实现 #include <bits/stdc++.h> #includ

Gh0st_Lx的博客 391

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Educational Codeforces Round 115 (Rated for Div. 2) D 容斥定理 组合数学

题目 Monocarp 是伯兰州立大学编程团队的教练。他决定为他的团队的培训课程编写问题集。 Monocarp 有 n 个他的学生还没有见过的问题。第 i 个问题有一个主题 ai(一个从 1 到 n 的整数)和一个难度 bi(一个从 1 到 n 的整数)。所有的问题都是不同的,即不存在同时具有相同主题和难度的两个任务。 Monocarp 决定从 n 个问题中为问题集中选择 3 个问题。问题应至少满足以下两个条件之一(可能同时满足): 三道选题的题目都不一样; 三道选定题的难度各不相同。 您的任务是确定为问题

从你的全世界路过 331

Educational Codeforces Round 115 (Rated for Div. 2)部分题解(A~D)

文章目录前言A. Computer Game(思维+水题)题目大意思路AC代码B. Groups(暴力+水题)题目大意思路AC代码C. Delete Two Elements(数学公式转换)题目大意思路AC代码D. Training Session(逆向思维+map活用+排列组合)题目大意思路AC代码 前言 我还记得,当年我也是一个平均学分绩点可以达到4的好学生。 现在博主已经变成了平均学分绩点在3~3.5徘徊的fw了,但主不在乎。 从现在开始,一并超!(每周至少1篇并且超量完成) 吐槽一下,夜王在

Mr.RainsdRop的胡思乱想 1300

Educational Codeforces Round 115 (Rated for Div. 2) B题betset暴力解法

题目链接 题意 对于 n 个长度为 5 的 01字符串, 你需要把这n个字符串分成数量相等的两组。并且在每一组中选择一个位置(0~4总共5个位置),使这一组的字符串在该位置全为 1 ,且两组所选位置不同。 分析 测试案例数(1≤t≤104)(1 \leq t \leq 10^4)(1≤t≤104) 每个测试点的字符串数量(2≤n≤103)(2 \leq n \leq 10^3)(2≤n≤103) 假如枚举两个位置则 C52=10C^2_5 = 10C52​=10,极限情况 10810^8108, 常数大可

Azxz0_0的博客 265

Educational Codeforces Round 115 (Rated for Div. 2) B. Groups

题目链接:Problem - 1598B - Codeforces nstudents attended the first meeting of the Berland SU programming course (nnis even). All students will be divided into two groups. Each group will be attending exactly one lesson each week during one of the five worki..

m0_55682843的博客 664

【Educational Codeforces Round 115 (Rated for Div. 2)】A—D

A - Computer Game 题意: 初始点(1,1)终点(2,n) 格子为0可以过。每次可以移动为x+1或y+1或者都+1(或者-1). 给出格子内的障碍,求是否能到终点。 题解: 看看能不能形成一堵墙,即不管使(1,i)还是(2,i)都是1,这样无论怎么样都是过不去的。 #include <bits/stdc++.h> using namespace std; #define sca scanf #define pr printf #define ll long long const

Dawn 480

Educational Codeforces Round 115 (Rated for Div. 2) A-D

博客主页: https://blog.csdn.net/qq_50285142 欢迎点赞????收藏✨关注❤留言 ???? 如有错误,敬请指正 ????虽然生活很难,但我们也要一直走下去???? A 只要路途不被堵住就行,也就是只要同一列不都是障碍物就行 #include<bits/stdc++.h> #define fi first #define se second using namespace std; typedef long long ll; typedef pair<

行码棋 448

Educational Codeforces Round 115 (Rated for Div. 2) C.D

C.Delete Two Elements 题目大意:给定一个nnn个元素的序列,定义kkk为∑i=1na[i]n\frac{\sum^{n}_{i = 1}a[i]}{n}n∑i=1n​a[i]​(元素和/nnn=平均数),现在要求你删除222个元素,使删除前后的序列的kkk值不变,求删除的方案数目。 思路:考虑删除后使原序列大小不变的情况:两个元素相加等于二倍平均数。 我们对式子进行移项,可得:n×sumn=n×∑i=1na[i]n \times \frac{sum}{n} = n \times \su

HeartFireY的博客 416

Educational Codeforces Round 115 (Rated for Div. 2)题解

好长时间没有写过题解了,以后还是坚持写吧!!! A 题意:给一个2*n的矩阵,起点是(1, 1),终点是(2, n),矩阵中的数是由0和1组成的move from cell (x1,y1) to cell (x2,y2) in one step if |x1−x2|≤1 and |y1−y2|≤1,可以左右、上下也可以斜着走,1表示不可以通过,0表示可以过,问可不可以到达终点。 思路:找上下两个数如果都是1的话,就表示不能通过。 代码 #include <bits/stdc++.h> using

m0_51275778的博客 159
上一篇: cf 242 E XOR on Segment
下一篇: Codeforces Round #748 (Div. 3)
zhbbbb!
博客等级 码龄7年 43粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值