2024 暑假友谊赛-热身2

手把手教你用高频注入法辨识永磁同步电机电感参数(附MATLAB仿真) 本文详细介绍了高频注入法在永磁同步电机电感参数辨识中的工程实践与MATLAB仿真指南。通过高频信号注入法,无需拆解电机即可在线精确测量Ld和Lq参数,适用于电动汽车驱动和工业伺服等高精度控制场景。文章包含信号设计、硬件实现、解调算法及完整MATLAB仿真模型构建,帮助工程师快速掌握这一关键技术。 阅读详情

2024 暑假友谊赛-热身2

2024.7.12 14:00————17:00

过题数4/8
补题数5/8

  • CodeForces - 1265E
  • CodeForces 911F
  • CodeForces 1870E
  • AtCoder tenka1_2017_c
  • AtCoder diverta2019_b
  • AtCoder diverta2019_c
  • AtCoder diverta2019_d
  • AtCoder abl_d

A - Beautiful Mirrors

题解:
n面镜子,每一面都有p/100的概率回答漂亮,回答不漂亮就得从头再来,一直到最后一面镜子为漂亮时就停止,求多少天可以到最后一面镜子的期望。
快速幂加费马小定理,逆模不太会求,直接copy的代码。由于每次k天之后得再过一天到新的一天进行,所以得加一。
代码:

#include<iostream>
#include<algorithm>

using namespace std;
#define int long long
#define double long double
int p[200005];
int mt[200005];
const int MOD = 998244353;

int q_pow(int x,int y)
{
    int res=1;
    while(y)
    {
        if(y&1) res=res*x%MOD;
        x=x*x%MOD;
        y>>=1;
    }
    return res;
}//快速幂

signed main() {
    int n;
    cin >> n;
    int mod = 998244353;
    for (int i = 1; i <= n; i++) {
        cin >> p[i];
    }
//    int ans = 0;
//    mt[n-1] = p[n-1];
//    for (int i = n-2; i >= 0; i--) {
//        mt[i] = (mt[i+1])*p[i]%mod;
//    }
//    for (int i = 0; i < n; i++) {
//        ans += mt[i];
//        ans = ans%mod;
//    }
//    cout << ans << endl;


    for (int i = 1; i <= n; i++) {
        cout << q_pow(p[i],mod-2) << endl;
        mt[i] = (mt[i-1]+1)*100%mod*q_pow(p[i],mod-2)%mod;
        //后面那一坨是费马小定理,a好像就是p【i】的mod-2次方在余mod,不懂暂且记住
    }//不理解但尊重过,好像是得多加一天?
    cout << mt[n] << endl;
    return 0;
}

D - 4/N

也就wa了六次吧,我真是听取wa声一片,而且一直只有几个点不过,后来把范围开大忽然就过了,题目给的范围太草率了吧
题解:
给出N,求解4/N=1/h+1/n+1/w,输出满足条件的一组h,n,w。
存在都小于3500并满足要求的解。
其实就是个二重循环,数字开大即可。
代码:

#include<iostream>
#include<algorithm>
#include<math.h>
#include<cmath>
#include<queue>
#include<stack>

using namespace std;
#define int long long
#define double long double

signed main() {
    double n;
    cin >> n;
    for (int i = 1; i <= 4500; i++) {
        for (int j = 1; j <= 4500; j++) {
        //一开始开到3500,有几个点死活过不了
            if(4*i*j > n*i+n*j) {
                int w = (double)1/((double)4/n - (double)1/i - (double)1/j);
                if (w > 0 && 4 * i * j * w == n * i * j + n * j * w + n * i * w) {
                //保险起见,再判断一次。过了几个点
                    cout << i << ' ' << j << ' ' << w << endl;
                    return 0;
                }
            }
        }
    }
}

E - Tree Destruction

题解:
每个红箱中有r个红球,绿箱中有g个绿球,蓝箱中有b个蓝球,求如何取箱子最终得到n个球。
二重循环判断即可,简单题。
代码:

#include<iostream>
#include<algorithm>
#include<math.h>
#include<cmath>
#include<queue>
#include<stack>

using namespace std;
#define int long long

signed main() {
    int r,g,b,n;
    cin >> r >> g >> b >> n;
    int ans = 0;
    for (int i = 0; i <= n/r+1; i++) {
        for (int j = 0; j <= n/g+1; j++) {
            int mt = n - i*r - j*g;
            if(mt%b == 0 && mt/b >= 0){
 //               cout << i << ' ' << j << ' ' << mt/b << endl;
                ans++;
            }
        }
    }
    cout << ans << endl;
    return 0;
}

F - AB Substrings

题解:
n个字符串,可以互相连接,最后最多会出现多少个AB。
判断内部AB,和三组字符串分别的数量,然后推一下如何连接及其个数即可。
代码:

#include<iostream>
#include<algorithm>

using namespace std;
#define int long long
#define double long double

signed main() {
    int n;
    cin >> n;
    int a=0,b=0,ab=0;
    int ans = 0;
    for (int i = 0; i < n; i++) {
        string ls;
        cin >> ls;
        for (int j = 1; j < ls.size(); j++) {
            if (ls[j] == 'B' && ls[j - 1] == 'A')ans++;
        }
        if (ls[ls.size() - 1] == 'A' && ls[0] == 'B') ab++;
        else if (ls[ls.size() - 1] == 'A') a++;
        else if (ls[0] == 'B') b++;
    }
    if(a == 0 && b == 0) {
        if(ab != 0) {
            ans += (ab-1);
        }
    }//一些特殊情况,有俩个点应该。因为只有ab,所以他们只能互相连,会有被浪费的但也没办法啦
    else if(a <= b && a <= ab) {
        ans = ans+a+ab;
    }
    else if(b <= a && b <= ab) {
        ans = ans+b+ab;
    }
    else if(ab <= a && ab <= b) {
        ans = ans + 2*ab + min(a-ab,b-ab);
    }//这一部分是直接数学推出来的,有点晕了要
    cout << ans << endl;
    return 0;
}

G - DivRem Number

啊我要是早点发现你就好了,浪费了好多时间
题解:
给定n,求满足条件x的总和,要求n除以x与n模x的值相等。
从1开始遍历到sqrt即可,再往上不存在,数学思维推一下。
代码:

#include<iostream>
#include<algorithm>
#include<math.h>

using namespace std;
#define int long long
#define double long double
int p[200005];
int mt[200005];


signed main() {
    int n;
    cin >> n;
    int t = sqrt(n);
    int ans = 0;
    for (int i = 1; i*i < n; i++) {
        if(n % i == 0) {
            int p = n/i-1;
            if (n % p == n/p)
            //有1,2这种特殊情况,必须再判断一次
                ans += (n/i-1);
        }
    }
    cout << ans << endl;
    return 0;
}


H - Flat Subsequence

暂时不会,用到线段树与树状数组,还没学这个知识点。


从扇束到平行束:等角重排算法在CT重建中的核心原理与MATLAB实践 本文深入解析了CT图像重建中等角扇束重排算法的核心原理与MATLAB实现。通过将实际采集的扇束投影数据,利用几何映射和两次关键插值,转换为适用于经典滤波反投影算法的平行束数据,打通了高效重建的关键路径。文章结合Shepp-Logan模型仿真,提供了完整的MATLAB代码实践,并分析了源-物距、采样率等关键参数对重建质量的影响。 阅读详情

相关推荐

Sentinel--哨兵系列数据下载地址及流程更新【202310】

哨兵系列数据下载地址及流程更新。哨兵系列卫星作为哥白尼计划的一部分,主要目标便是对地球的观测任务。哥白尼计划由三部分组成:空间部分(哨兵系列太空任务与其他太空机构任务)、测量部分(提供海洋、大陆表面和大气信息的陆基和机载数据收集网络)、数据管理与全球共享。

twg666的博客 3万+

2024 暑假友谊赛-热身1

三分思想很简单,l从-1e9,r从1e9,一直取俩点并舍去不合适区间,直到剩下一些些的时候直接便利即可,只有五十分,不知道错哪了,具体见注释。给出n个数字代表每一次的伤害值,给出k代表每个键最多可连点数(注意,点了其他的键才算破坏连点,停顿仍然算作连续)给出键值,可跳过不可乱序。额很有趣的一道题吧,最近刚好学了三分,想用三分写但是,一直过不了,改了很久还是过不了,后来是数学思维求解的。给定含n个数字的数组a,切三刀变成三个数组的和分别是p,q,r,s,求最大值与最小值差值的最小值。

FS_tar的博客 719

Ubuntu20.04下运行LOAM系列:A-LOAM、LeGO-LOAM、SC-LeGO-LOAM、LIO-SAM 和 LVI-SAM

在我第一篇博文Ubuntu 20.04配置ORB-SLAM2和ORB-SLAM3运行环境+ROS实时运行ORB-SLAM2+Gazebo仿真运行ORB-SLAM2+各种相关库的安装的基础环境下跑通A-LOAM首先已经按照上一篇文章已经安装好了ROS noetic、Eigen3.4.0、OpenCV4.2.0和PCL1.10,A-LOAM在Github的开源地址:https://github.com/HKUST-Aerial-Robotics/A-LOAM。接下来根据代码要求,需要安装Ceres,另外环境的变

zardforever123的博客 3万+

2024 暑假友谊赛-热身1 ABC题解

据题知,10x10矩阵相当于一个有向图的邻接矩阵,故考虑用Dijkstra算法求得每点到1点的最短路,最终答案即为 下方HxW矩阵中所有非1与-1点到1点最短路大小乘该点数量 之和 ,在这里用一个数组来存每个点的数目。

qq_39804992的博客 441

Android车载应用开发与分析(11)- 车载Android应用开发入门指南

将时间回退到2017年我大学刚毕业时,彼时移动互联网就已经开始退潮,各大个培训机构也纷纷停止了Android相关的培训,曾经热火朝天的应用开发从那时起,就开始走向下坡路,小程序以及众多跨平台框架也让市场对Android原生开发的需求逐年降低,市场需求的降低也造就了Android开发的面试变得史无前例的“卷”。 终于我在2019年选择离开了互联网,投身当时还不是非常火热的车载Android领域继续从事Android原生开发。而这一年中国首个外商独资的整车制造项目,“...

linkwj的博客 1万+

从零到一:YOLOv8在边缘设备上的轻量化部署实战

本文详细介绍了YOLOv8在边缘设备上的轻量化部署实战,涵盖模型优化、TensorRT加速、剪枝与知识蒸馏等关键技术。通过工业质检和智能门禁项目案例,展示了如何将YOLOv8高效部署到树莓派、Jetson Nano等资源受限设备,显著提升推理速度和降低内存占用。文章还提供了动态分辨率调整、多模型级联部署等实用技巧,助力开发者实现边缘AI应用的高效落地。

weixin_29040367的博客 380

SMU Summer 2024 Contest Round 6 ABC题解

题意:给一个由数字组成的字符串,可在其中加任意个‘+’ 求所有情况之和思路:二进制枚举,有s个数字就有2^(s-1)种情况。

qq_39804992的博客 348

Trustzone/TEE/安全 面试100问-目录

关键词:cache学习、mmu学习、cache资料、mmu资料、arm资料、armv8资料、armv9资料、 trustzone视频、tee视频、ATF视频、secureboot视频、安全启动视频、selinux视频,cache视频、mmu视频,armv8视频、armv9视频、FF-A视频、密码学视频、RME/CCA视频、学习资料下载、免费学习资料、免费 周贺贺,baron,代码改变世界ctw,Arm精选, 资深安全架构专家,十年手机安全/SOC底层安全开发经验。擅长trustzone/tee安全产品的设计

baron-周贺贺-代码改变世界ctw 651

第二周题解

题目大意: 给出A,B,C三个数组,看有多少对(i,j)满足思路:先标记A中出现的数,然后在B中找到有多少个位置的数在A中出现过,因为i和j没有大小限制,所以答案就是 如果C中有B与A相等的数的下标 ans就加上 A中某个数的个数题目大意: 给出一个由.和#组成的图形, 现在要求删掉一些行或列,看有多少种操作能使 # 剩下k个思路:二进制枚举,先选择行再选择列,然后计算去掉标记行和列的#剩下多少个#,满足条件则ans++题目大意:对于一个正整数X,让f(X)表示X的正约数的个数。

2301_80010279的博客 1969

【75】OpenCV C++实战篇——OpenCV 图像拼接、全景拼接(教程合集)

本文整理了OpenCV实现图像拼接的技术教程合集,涵盖C++和Python两种语言实现方案。图像拼接技术旨在将多张重叠图像融合为无缝全景图,既扩大视角又保持高分辨率。内容包含水平矫正等关键步骤(附对比效果图),提供多个实战案例的完整代码和详细讲解,涉及单应性矩阵、图像变换等核心技术。不同案例展示了从两张到多张图像的拼接效果,适合不同层次的学习者参考实践。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 528

【乐鑫】唤醒词修改方法

乐鑫科技的语音识别模块(如ESP-SR)支持自定义唤醒词,但需通过官方工具链完成。

以实战经验介绍行业知识 827

暑期集训补题(第一周)

大致题意:摇一个骰子,骰子上的数字从1-n,然后抛掷一枚硬币,正面朝上分数翻倍,反面则清零,如果分数小于K,继续抛掷硬币,直到分数大于K,求分数能大于K的概率。本题可以记录每种颜色中的最大值,如果当前数字大于这个最大值,就可以涂上相同颜色,并更新最大值,否则涂上另一个颜色。大致题意:给定一个数组A,现在能进行M次操作,选择将Bi个A数组中的数修改为Ci,求修改后数组A中元素的最大和。大致题意:给定一个数组,将数字涂上各种颜色,对每种颜色的数字,要求i

2301_80010279的博客 488

1小时读完100篇文献的正确打开方式

各位同仁好,我是七哥。一个在高校里从事人工智能 相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude 等大模型 学术实操相关问题,多多交流,相互成就,共同进步。文献阅读与整理一般都是最先开始、却也最容易被低估的一步。很多学术同仁一开始就陷入越读越多、越读越乱的状态:论文下载了一大堆,但真正能用来支撑自己观点的内容却始终难以提炼出来。一方面,我们需要通过文献了解该研究领域的整体发展脉络,把握当前学界已经讨论到什么程度;

智能AI让学术科研更容易 49

WEEK 1 DAY 4

一看到绝对值,就应该想到数轴上点之间的距离,这道题虽然给b加上了i,但只要把式子拆开,一开始就把每个Ai减去i就行了。然后可以证明(或者学过)一个点到其他点距离和最短应该是这些点坐标集合的中位数,给定一个代价矩阵C,在给定一个矩阵a,要求将此矩阵a中的所有元素都变为1,将i变成j,代价是c[i][j];思路:a[i]-i当做新的a[i],用中位数定理,一个点到n个点的距离和最小是他们的中位数。

2301_81224780的博客 355

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

2.7.1 希尔排序及java实现

希尔排序(Shell Sort)是插入排序的一种高效改进版本,也称为。

橘子hhh 181

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数据结构:时间复杂度和空间复杂度

若存在正常数 c 和 n₀,使得当 n ≥ n₀ 时,

橘为己有的博客 510

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

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

【数据结构】基于比较的排序算法 - 交换排序

本文介绍交换排序中的冒泡排序与快速排序。冒泡排序通过相邻元素比较交换,实现升序,时间复杂度最坏为O(N²),空间复杂度O(1),稳定且适合小规模有序数据。快速排序采用分治思想,以基准值划分区间,平均时间复杂度O(N log N),空间复杂度O(log N),但不稳定,实际应用中性能优异,可通过随机基准、小区间优化等提升效率。

careathers的博客 362

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 596

《排序的底层逻辑:比较、交换与分治》

时间复杂度取决于BAP,最好能达到o(n1.3gap大:分组的元素比较少gap下:分组的元素整体比较有序是否稳定:不稳定。

bro_Java666的博客 262

排序算法通俗详解

把一堆杂乱的数据,按某个「关键字」重新排成有序(从小到大或从大到小)的序列。注意,排序的对象往往不是一组单纯的数字,而是「结构体」里的某个成员。int stuNo;// 学号// 姓名int age;// 年龄// 成绩} Student;我们可以按score排,也可以按age排——这个被用来比较的成员,就叫关键字(key)。生活里排序无处不在:购物 App 按价格/销量/评分排商品、大学排行榜、富豪榜……本质都是排序。排序这一章,思想 > 代码 > 复杂度结论。

2501_93853322的博客 222
上一篇: 2024 暑假友谊赛-热身1
下一篇: 2024 暑假友谊赛 1
FS_tar
博客等级 码龄3年 534粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值