- 2025-01-22[ARC178C] Sum of Abs 2 题解
首先想到能不能用差分搞搞,但是给自己绕进去了/kel我们不妨给\(\{b_L\}\)定个不降的序(如果打在数轴上,显然序和答案无关),于是可以拿掉绝对值。注意到这个和式(记其结果为\(x\))中每个\(b_i\)的贡献系数\(c_i=2i-L-1\),于是有:\[x=\sum_{i=1}^{L}b_ic_i\]直接做不
- 2025-01-22【CodeForces训练记录】Codeforces Round 1000 (Div. 2)
训练情况赛后反思C题猜了个假结论WA4,每次选择度最多的删掉,在连续三个度都是最大的情况下,删中间的会寄A题有点前缀和的感觉,\([1,l]\)互质个数为\(l\),\([1,r]\)互质个数为\(r\),所以区间\([l,r]\)的个数就是\(r-l\),特判一下\(l=1,r=1\)的情况答案是\(1\)点击查看代
- 2025-01-222025/1/23学习
#include<bits/stdc++.h>#defineintlonglong#definexfirst#defineysecond#defineendl'\n'#definepqpriority_queueusingnamespacestd;typedefpair<int,int>pii;voidsolve(){ intn; cin>>n; vector<array<int,3>>
- 2025-01-22Codeforces Round 998 (Div. 3)(部分题解)
补题链接A. Fibonacciness思路:了解清楚题意,求得是最大的斐波那契的度,数组只有5个数(最多度为3),能列出其对应的式子 或 或#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongvoidsolve(){intn,m,k;vector<int>a(4);set<int>s;
- 2025-01-22【vjudge训练记录】大一寒假专项训练——前缀和/差分
训练情况A题前缀和模板题,我们输入完\(a_i\)后直接求前缀和\(a_i=a_i+a_{i-1}\),求区间\([l,r]\)的和就为\(a_r-a_{l-1}\)点击查看代码#include<bits/stdc++.h>#defineintlonglong#defineendl'\n'usingnamespacestd;voidsolve(){intn,m;c
- 2025-01-22马拉车 Manacher
更新日志2025/01/22:开工。思路马拉车算法用于解决回文子串问题,思路类似于Z函数。首先我们考虑使所有回文串都是奇数串,具体的,我们在两两字符之间插入相同的特殊字符,比如:\[\texttt{abcba}\rightarrow\texttt{\#a\#b\#c\#b\#a\#}\]不难发现此时所有回文串串长均为奇数。
- 2025-01-2221. C语言 `typedef`:类型重命名
本章目录:前言1.什么是`typedef`?语法示例:基本类型的别名2.`typedef`为结构体定义别名示例:为结构体定义别名3.`typedef`vs`#define`:两者的区别(1)**作用范围和处理方式**(2)**类型别名的处理**(3)**多个变量的声明**(4)**宏展开与编译器处理**4.`typedef`
- 2025-01-22ExKMP Z函数
更新日志20250122:开工。思路我们定义\(z_i\)表示从\(i\)开始的后缀与整个字符串的最长公共前缀长度。考虑它的作用,假如我们要字符串匹配,将模式串接在前面并以特殊字符分隔,然后\(O(n)\)遍历原串,当\(z_i=|T|\)(\(T\)为模式串)时,这个位置就是一个匹配上的位置的开始。
- 2025-01-212025牛客寒假算法基础集训营1 ptlks的题解
A.茕茕孑立之影题意:给定序列,找出一个数x,满足x和数组中任意一个元素都互不为倍数关系思路x范围为1e18以内,序列元素范围为1e9以内,选大于1e9的质数即可,特判序列中有1的情况。代码点击查看代码voidsolve(){ intn; cin>>n; intf=1; for(inti=1;i<=n;i++){ cin>>a[
- 2025-01-21李超线段树
更新日志2025/01/21:开工。用处\(O(n\logn)\)解决这个问题实现首先,我们肯定需要一棵线段树,区间为横轴。我们考虑每一段都储存最优的线段,但考虑到线段必然有交点,所以会有较为复杂的情况,下面详细考虑:首先考虑单纯的储存线段,我们把线段横轴影射区间区间修改即可。下面
- 2025-01-20Arduino 平台下 ESP32-P4 驱动ES8311实现 MP3音频文件播放-方式2
arduino平台下ESP32-P4开发板驱动ES8311,从SD_MMC读取MP3文件播实验程序,方式2。这个测试程序与之前的有所不同,直接使用了arduino-audio-drivers库中的ES8311驱动文件。采用arduino-audio-drivers比单独使用ES8311驱动来的更好,毕竟这个库支持ES8388,ES8311等多种芯片,程序
- 2025-01-20「题解」二进制与一
传送门:水滴、洛谷题目大意:给定一个正整数$n$,给出操作次数$p$。每次操作让$n$加上一个非负整数$x$,使得$n$的第$k$位为$0$(从右往左数)。如果本身为$1$就不用操作。且每次操作$n+x$回影响后续操作。问$x$的和是多少。首先我们要知道,判断$n$的第$k$位是否为$
- 2025-01-20单调栈
模板#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=3e6+6;#definepiipair<int,int>#definefifirst#definesesecondintn,a[N],top,b[N];piist[N];signedmain(){ cin>>n; for(inti=1;i<=n;i++){ c
- 2025-01-20P1006 [NOIP2008 提高组] 传纸条
链接https://www.luogu.com.cn/problem/P1006题目思路和方格取数差不多,额外的步骤就是去重:只取当前节点(i,j)的右上或者左下部分。并且最后的答案是dp[m][n-1][m-1][n],只dp到终点的上面和左边一个点代码#define_CRT_SECURE_NO_WARNINGS#include<iostream>#include<a
- 2025-01-20P1004 [NOIP2000 提高组] 方格取数
链接https://www.luogu.com.cn/problem/P1004题目思路dp思路:如果是走一遍,很显然可以发现(i,j)的值只与(i-1,j)和(i,j-1)有关。于是递推:dp[i][j]=max(dp[i-1][j],dp[i][j-1])+mp[i][j]当走两遍:转换为四维dp:dp[i][j][k][l]。当(i==j&&k==l)时,减去mp[i][j]。代码#de
- 2025-01-20你所不知道的 C/C++ 宏知识——基于《C/C++ 宏编程的艺术》
前言刚学C++的时候,就知道它糅合了四种编程模式:基于预处理器的宏、基于C语言的面向过程、基于类的面向对象、以及基于模板的泛型编程。其中,宏和模板元编程因为是在编译期出结果,能有效提升程序运行期性能,有着独特的价值。宏的缺陷之前了解的宏编程,大多数在数说它的缺陷,以及如
- 2025-01-192025.1.18——1300
2025.1.18——1300A1300Thereare\(n\)citieslocatedonthenumberline,the\(i\)-thcityisinthepoint\(a_i\).Thecoordinatesofthecitiesaregiveninascendingorder,so\(a_1<a_2<\dots<a_n\).Thedistancebetweentwoci
- 2025-01-19【牛客训练记录】牛客周赛 Round 77
训练情况赛后反思打一半吃饭去了,C题看到ax+by=k的问题,简单的扩欧exgcd没反应过来,简单数论还是不熟悉TAT,D题DSU计算联通块大小时\(i\)打成\(a_i\)疯狂RE被硬控了十几分钟A题输出题目所述的第几个字符串即可#include<bits/stdc++.h>//#defineintlonglong#defin
- 2025-01-19P8456 「SWTR-8」地地铁铁
题意给定一张\(n\)点\(m\)边的01权无向图,求\((x,y)\)无序点对的数量使得\(x,y\)两点间存在一条同时经过0权边和1权边的简单路径。简单路径的定义是不经过重复点的路径。\(n\le4\times10^5,m\le10^6\)。分析路径问题考虑缩点,因为简单路径的定义是不经过重复点
- 2025-01-19ESP32 学习笔记(九)舵机实验
概念舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。舵机只是一种通俗的叫法,其本质是一个伺服电机。舵机有很多规格,但所有的舵机都有外接三根线,分别用棕、红、橙三种颜色进行区分,由于舵机品牌不同,颜色也会有所差异,棕色为接地线,红色为电源正极
- 2025-01-18验题——8008: 纸牌游戏( "Accordian" Patience)
8008:纸牌游戏("Accordian"Patience)题面思路用栈数组模拟,注意寻找pos的左边第一个和左边第三个下标的写法。示例代码usingnamespacestd;#definelllonglong//#defineintll#definepiipair<int,int>#defineall(x)x.begin(),x.end()#definefer(i,m,n)f
- 2025-01-18多项式运算封装
动态更新。#include<bits/stdc++.h>#defineintlonglong#definerep(i,a,b)for(inti=a;i<=b;++i)#defineilinline#definergregisterusingnamespacestd;inlineintread(){intw=0,f=1;charch=getchar();while(ch<'0'||
- 2025-01-182025.1.17——1200
2025.1.17——1200Q1.1200Jellyfishhas\(n\)greenappleswithvalues\(a_1,a_2,\dots,a_n\)andGellyfishhas\(m\)greenappleswithvalues\(b_1,b_2,\ldots,b_m\).Theywillplayagamewith\(k\)rounds.For\(i=1,2,\ldots,k\)inthis
- 2025-01-18[AT_tenka1_2015_final_g] 天下一ゲーム
评价:感觉还是过于神秘了,暴力写的群魔乱舞,正解返璞归真。暴力做法太多了,就不记录了。我们考虑一个贪心,由于边权互不相同,我们把边按照边权从大到小排序,然后依次尝试满足当前边,这样显然是极其优秀的,因为你满足了当前边,后面的边的最小值仍未确定,也就是可以继续解决的。而唯一可能影
- 2025-01-18signal.h详解
C库函数-signal()来自C库函数–signal()|菜鸟教程描述C库函数void(*signal(intsig,void(*func)(int)))(int)设置一个函数来处理信号,即带有sig参数的信号处理程序。signal函数是C标准库中的一个函数,用于设置信号处理程序。该函数定义在<signal.h>头文件