Educational Codeforces Round 175(部分题解)

rk3399 linux 5.10 usb 2.0设备上电概率性注册失败 先排除硬件上的问题,然后就烧录kernel 4.1的的镜像,多次测试也没有发现这个问题,所以排除了硬件上的问题,然后。查下usb hub和usb 4G的复位脚,写驱动都给它们配上了,但是还是存在这个问题。最后通过对比rk3399.dtsi发现少了个power-domains = ;多次开关机,发现usb hub和4G都通信失败了,这就有点奇怪了,按理说usb驱动是没啥问题的。加上后,重新编译烧录,重新测试没有发现这个问题了!先查看usb log。 阅读详情

A. FizzBuzz Remixed

思路:加上0后每15个数的前三个作出贡献,再仔细讨论一下就行了。

AC代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'

void solve()
{
    int n, m, k;
    cin >> n;
    int res = (n+1)/15*3;
    res += min((n+1)%15, 3ll);
    cout << res << endl;
}

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

B. Robot Program

思路:最开始我是按照题意模拟的,但肯定会超时的,所以得优化一下,首先我们必须确定能在min(n,k)秒内能否到达过pos = 0,如果能我们就从pos=0遍历一下看几秒回到pos=0,用剩下的k除以它(向下取整)就可以了。

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'

void solve()
{
    int n, x, k;
    cin >> n >> x >> k;
    string s;
    cin >> s;
    int num = 0;
    int cost = 0;
    for (int i=0, pos = x; i<n; i++){
        k--;
        pos += (s[i]=='L' ? -1:+1);
        if (pos == 0){
            num++;
            break;
        }
        if (!k) break;
    }
    for (int i = 0, pos = 0; i<n; i++){
        pos += (s[i]=='L' ? -1:1);
        if (pos == 0) {
            cost = i+1;
            break;
        }
    }
    if (cost && num){
        num += (k/cost);
    }
    cout << num << endl;
}

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

C. Limited Repainting

思路:这题最开始看错题了,以为把不满足的惩罚都要加上,而只要的是最大的惩罚项。所以这题就很明显是一个二分,其次只要就是写好check函数里的约束,对于其中如果是‘R’的值大于x肯定不动它,而是‘B’的值大于x就必须动他它,最优的话的可以动连续的‘B’。

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define vi vector<int>
#define endl '\n'

void solve()
{
    int n, ma=0, k;
    cin >> n >> k;
    string s;
    cin >> s;
    vi a(n);
    for (int i=0; i<n; i++){
        cin >> a[i];
        ma = max(ma, a[i]);
    }
    auto check = [&](int x)->bool
    {
        int cost = 0, flag = 0;
        for (int i = 0; i<n; i++){
            if (a[i] <= x) continue;
            else if (s[i] == 'B') cost += 1-flag, flag = 1;
            else flag = 0;
        }
        return cost <= k;
    };
    int l = -1, r = ma+1;
    while (l+1 < r){
        int mid = (l+r)/2;
        if (check(mid)){
            r = mid;
        }
        else l = mid;
    }
    cout << r << endl;
}

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

 D. Tree Jumps

思路:这道题感觉用BFS跑比较简单,这里深度比较重要,对于深度不为1,2的点,它的贡献等于它父节点的深度的一系列点减去它父节点的贡献,所以我们只要以动态的思想去更新结果就可以了。

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;

constexpr int mod = 998244353, N = 2e5 + 5, M = 2e5 + 5;

void solve()
{
	int n;
    cin >> n;
    vector<vector<int>> adj(n+1);
    vector<int> fa(n+1,0);
    for (int i = 2; i<=n; i++){
        cin >> fa[i];
        adj[fa[i]].push_back(i);
    }
    vector<int> dep(n+1, 0);
    int ans = 0;
    vector<int> sum(n+1, 0), now(n+1, 0);
    queue<int> q;
    q.push(1);
    dep[1] = 1;
    while (!q.empty()){
        int u = q.front();
        q.pop();
        if (u == 1 || fa[u] == 1) now[u] = 1;
        else {
            now[u] = (sum[dep[fa[u]]] - now[fa[u]] + mod) % mod;
        }
        sum[dep[u]] = (sum[dep[u]] + now[u]) % mod;
        ans = (ans + now[u]) % mod;
        for (int v : adj[u]){
            dep[v] = dep[u] + 1;
            q.push(v);
        }
    }
    cout << ans << endl;
}

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

下面是DFS的跑法:

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3f
#define vi vector <int>
#define vvi vector <vi>
#define endl '\n'
#define int long long
using namespace std;

constexpr int mod = 998244353, N = 2e5 + 5, M = 2e5 + 5;

void solve()
{
	int n;
    cin >> n;
    vector<vector<int>> adj(n+1);
    vector<int> fa(n+1,0);
    for (int i = 2; i<=n; i++){
        cin >> fa[i];
        adj[fa[i]].push_back(i);
    }
    vector<int> dep(n+1, 0);
    auto dfs = [&](auto &&dfs, int u, int de)->void
    {
        dep[u] = de;
        for (auto v : adj[u]){
            dfs(dfs, v, de+1);
        }
    };
    dfs(dfs, 1, 0);
    vector<int> sum(n+1, 0), now(n+1, 0);
    vector<int> seq(n+1);
    int ans = 0;
    iota(seq.begin()+1, seq.end(), 1);
    sort(seq.begin()+1, seq.end(), [&](int a, int b){
        return dep[a] < dep[b];
    });
    for (int i = 1; i<=n; i++){
        int x = seq[i];
        if (x == 1 || fa[x] == 1) now[x] = 1;
        else now[x] = (sum[dep[fa[x]]]-now[fa[x]]+mod)%mod;
        sum[dep[x]] = (sum[dep[x]]+now[x]) % mod;
        ans = (ans + now[x])%mod;
    }
    cout << ans << endl;
}

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

QT开发串口程序与单片机通讯 如果有对象对这个信号感兴趣,想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。的内容,虽然实现的功能很简单,但是QT上位机开发的步骤基本就是这些步骤,通过这个基础实例把这些套路摸透我们就可以接着进行后续更多QT程序地开发学习了。QWidget类:所有用户界面对象的基类,窗口部件是用户界面的一个基本单元,它从窗口系统接收鼠标,键盘和其他消息,并在屏幕上绘制自己。我们上面运行的上位机都是在Qt Creator中编译运行的,如果我们需要把编写好的可执行文件发送给别人使用的话还需要进行打包。 阅读详情

相关推荐

VCU128开发板上手记:搞定100G以太网IP核与QSFP光模块的那些坑

本文详细介绍了在VCU128开发板上实现100G以太网IP核与QSFP光模块调试的实战经验。从硬件准备、IP核配置到QSFP模块控制信号处理,文章揭示了数据手册中未提及的关键细节,并提供了优化参数和压力测试方案,帮助开发者快速解决UltraScale+平台下的高速以太网部署难题。

weixin_30740295的博客 520

CF2070C Limited Repainting

有一个字符串 全都是红色 给你一个字符串 是想要涂成的目标颜色 由蓝色红色组成还有一个数组 表示每个下标上的颜色如果不是目标颜色 所对应的惩罚值最多可以涂k次色 每次涂色可以涂连续的一段涂完之后的总惩罚值定义为所有与目标颜色不同的点上的惩罚值的max求最小的总惩罚值是多少。

weixin_45413272的博客 433

ABA分析方法 — 软硬件开发必备的一种分析问题绝佳套路

可能你从很多地方听过这个名词,无论是在软件开发还是硬件领域(比较典型的领域:汽车、消费电子、医疗等行业),ABA验证都是一种快速分析故障的一个方法,第一次听到这个词,当时是不是一脸懵逼,本文就深度带你了解下ABA的分析方法。简要概述就是:怀疑A模块导致系统故障,将B模块替换A模块,故障消失,再将A模块替换回来,故障复现,则说明A模块是导致系统故障的原因其实,ABA分析问题,可能很多人在工作中都或多或少用过这个方法,只是没有这个概念,说明白了就是控制变量和对比验证,没什么高大上的东西。

Eureka1024的博客 7328

Limited Repainting ( [Educational Codeforces Round 175 (Rated for Div. 2)])

Limited Repainting ( Educational Codeforces Round 175 (Rated for Div. 2) ) You are given a strip, consisting of n n cells, all cells are initially colored red. In one operation, you can choose a segment of consecutive cells and paint them blue. Before pa

BoBoo文睡不醒 922

智能车竞赛走马观碑组:如何高效识别目标板并优化绕行策略(附实战代码)

本文深入探讨了智能车竞赛走马观碑组中,如何构建从图像识别到路径决策的全栈优化方案。针对目标板识别与绕行策略的核心难点,文章详细解析了基于MobileNetV2的高效识别流水线、结合预瞄点与纯追踪算法的平滑路径规划,以及横向与纵向协同控制策略,并提供了实战代码与调试指南,旨在全面提升小车的比赛表现。

o5p6q的博客 884

常见信号逻辑电平标准介绍:TTL、CMOS、ECL、LVDS、CML

逻辑电平是指数字信号电压的高、低电平,相关参数定义如下:(1)输入高电平门限Vih:保证逻辑门的输入为高电平时所允许的最小输入高电平,当输入电平高于Vih时,则认为输入电平为高电平;(2)输入低电平门限Vil:保证逻辑门的输入为低电平时所允许的最大输入低电平,当输入电平低于Vil时,则认为输入电平为低电平;(3)输出高电平门限Voh:保证逻辑门的输出为高电平时的输出电平的最小值,逻辑门的输出为高电平时的电平值都必须大于此Voh;

liuchj的博客 1万+

Educational Codeforces Round 175 (Rated for Div. 2)(A~D)

补题。

2301_77680189的博客 1037

宝塔面板一键部署Z-Blog博客 - 内网穿透实现公网访问

Ubuntu系统作为Linux系统的一个重要分支,既有Linux系统的轻量化、高扩展性和长时间稳定运行,也拥有Windows一样的友好图形界面,因此可以作为熟悉服务器系统的良好选择。对于笔者来说,ubuntu系统最大的用处,就是可以让家里老旧的电脑重焕生机,让本已退居二线的电脑与cpolar内网穿透软件搭配,成为私人服务器,搭建自己喜欢的各种网站。今天,笔者就为大家介绍,如何使用cpolar内网穿透+Z-blog搭建私人博客网站。

m0_74808907的博客 3147

Educational Codeforces Round 175 (Rated for Div.2)

Edu175

djhws144的博客 1167

18-XLINX的XC7A100T的BANK0引脚说明

DXP_0和 DXN_0是纯输入引脚,Xilinx Artix-7 FPGA 内部集成的一个片上监控模数转换器​ 的差分模拟输入对,模数转换器​的模拟信号输入端,将外部的模拟电压​ 采样并转换为内部的数字值,是一个单向的信号采集过程。它是与 VCCADC配对的关键引脚,共同为内部的精密模数转换器提供一个纯净、安静、独立的参考地平面。多FPGA同步配置: 在多FPGA系统中,主FPGA配置完成后,可以拉低从FPGA的 INIT_B使其等待,等所有FPGA都准备好后,再同时释放,实现同步启动。

weixin_44479192的博客 232

论文阅读:Query-Dependent Video Representation for Moment Retrieval and Highlight Detection

近年来,随着视频理解需求的急剧增加,视频时刻检索和高亮检测(MR/HD)成为人们关注的焦点。MR/HD的主要目标是对给定的文本进行视频时刻定位和内容一致性估计,即显著性得分。尽管最近基于transformer的模型带来了一些进步,但我们发现这些方法并不能完全利用给定查询的信息。例如,在预测时刻及其显著性时,有时会忽略文本查询与视频内容之间的相关性。为了解决这个问题,我们引入了基于查询的DETR (QD-DETR),这是一种为MR/HD量身定制的检测transfomer。

qq_42681787的博客 919

Educational Codeforces Round 175 (C.二分 D.树形结构、dp)

上一层的总和递推下一层,所以要分层计算,用二维vector类型v,存放每一层的节点。层数如何得知呢?用数组d来计算d[i]=d[f[i]]+1。想知道每一层所有节点的序列数,就用sum不断清零、累加。

2301_81692739的博客 943

MATLAB与ROS联合仿真——实例程序搭建思路

MATLAB与ROS联合仿真——实例程序搭建思路

慕羽★的博客 5229

Educational Codeforces Round 175 (Rated for Div. 2)

思路:要使得x mod 3 == x mod 5,很明显当x是15的倍数时满足再观察可以知道,当x = 15*k + m (m为0 1 2) 时都满足条件故可写码了。

qq_61422664的博客 466

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Limited Repainting Educational Codeforces Round 175 (Rated for Div. 2)

首先想到直接求最小值,去讨论间隔数和操作数之间的关系,如果间隔数大于操作数,最后一定会有惩罚值出现,但是如何去安排每次操作呢?多次尝试没有找到结果。然而,如果第一步去考虑能否将惩罚值降到某一个阈值之下呢?如果能解决这一个问题,就可以使用二分解决。

broken_utopia的博客 277

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【训练记录】Educational Codeforces Round 174 (Rated for Div. 2)

看了一眼数据范围不大,然后当时没什么巧妙的思路,就暴力扫三遍,第一遍初始化,遇到 0 就ai​1遇到 1 就延续ai​的值, 第二遍就处理 1, 遇到 1 就使两边数字变为中间数字,第三遍就查询,如果 1 的左右有不同的就结束。

hongjianMa的博客 264

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

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

Tree Jumps ( [Educational Codeforces Round 175 (Rated for Div. 2)] )

Tree Jumps ( Educational Codeforces Round 175 (Rated for Div. 2) ) You are given a rooted tree, consisting of n n vertices. The vertices in the tree are numbered from 1 1 to n n, and the root is the vertex 1 1. Let d x d x ​ be the distance (the nu

BoBoo文睡不醒 1069

Friends and Pizza (Educational Codeforces Round 175 (Rated for Div. 2))

Friends and Pizza (Educational Codeforces Round 175 (Rated for Div. 2)) Monocarp has n n pizzas, the i i-th pizza consists of a i a i ​ slices. Pizzas are denoted by uppercase Latin letters from A to the n n-th letter of the Latin alphabet. Monocar

BoBoo文睡不醒 944

Educational Codeforces Round 112(Div.2) ABC题解

D题好像可以做一做,挖个坑以后做好了来填(doge Educational Codeforces Round 112(Div.2) 题目列表 1.A 2.B 3.C 1.A 原题链接 题目大意 有三种方案做蛋糕,15分钟做6块蛋糕、20分钟做8块蛋糕、25分钟做10块蛋糕,输入人数,求做出大于等于人数的蛋糕数的最短时间。 解题思路 看上去像是背包贪心,但发现这三种方法的性价比是一样的。由找规律发现由6,8,10可以组成大于等于6的所有偶数,所以答案就出来了。我刚刚开始做的时候没有去找规律,认为选择一种方

漂流武士的博客 350

Game with Binary String ( [Educational Codeforces Round 175 (Rated for Div. 2)])

Game with Binary String ( Educational Codeforces Round 175 (Rated for Div. 2) ) Consider the following game. Two players have a binary string (a string consisting of characters 0 and/or 1). The players take turns, the first player makes the first turn. Dur

BoBoo文睡不醒 1201

【无标题】

【代码】【无标题】

2302_79954861的博客 179

Educational Codeforces Round 148 (Rated for Div. 2)

5 4 2 1 0 0 4,我们先判断是单调递增还是单调递减,我们看出这组序列先是单调递减的,我们找到转折点可以看到是0 4,所以我们可以得出5 0 4就是这个b的最小长度所产生的数列。第二个题:【赛后补题】前缀和加一个类似双指针的寻找最小值的操作,题目要求的是最大值,就可以用前缀和统计出来的sum减去这个最小值就能得到最大值【实质:纯暴力】4 2我们判断是递减的,也是2,对于 1 1 1 1这个是不单调的,所以我们只需要输出一即可。第一个题:没有看到给出的是回文,结果在那判断回文,导致WA两发。

Skyniliuershang的博客 330

Educational Codeforces Round 144 (Rated for Div. 2) E

1796E

qq_52358098的博客 672

练练练练练

求数列所有后缀最大值。

2302_79954861的博客 175

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 209
上一篇: Codeforces Round 1006 (Div. 3)(部分题解)
下一篇: Codeforces Round 1007 (Div. 2)(部分题解)
wirepuller_king
博客等级 码龄3年 9292粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wirepuller_king

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值