洛谷题单 Part 6.7.1 矩阵

应队友要求,开始学线性代数,具体路线是矩阵 → \rightarrow 高斯消元 → \rightarrow 线性基。为多项式做个准备

P3390 【模板】矩阵快速幂

题面
板子,用结构体写的,感觉有点丑,一会儿看看题解有没有写得好看的

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 110;
const ll mod=1e9+7;
struct node{ll a[N][N];int len;}sqr;
void sqr0(node &x){memset(x.a,0,sizeof x.a);x.len=sqr.len;
}
void sqr1(node &x){memset(x.a,0,sizeof x.a);x.len=sqr.len;for(int i=1;i<=x.len;i++)x.a[i][i]=1;
}
node operator*(node x, node b){node c;sqr0(c);for(int i=1;i<=x.len;i++){for(int j=1;j<=x.len;j++){for(int k=1;k<=x.len;k++)(c.a[i][j]+=x.a[i][k]*b.a[k][j]%mod)%=mod;}}return c;
}void qpow(node &x, ll y){node re;sqr1(re);while(y){if(y&1)re=re*x;x=x*x;y>>=1;}x=re;
}
ll k;
int main(){scanf("%d%lld",&sqr.len,&k);for(int i=1;i<=sqr.len;i++){for(int j=1;j<=sqr.len;j++)scanf("%lld",&sqr.a[i][j]);}qpow(sqr,k);for(int i=1;i<=sqr.len;i++){for(int j=1;j<=sqr.len;j++)printf("%lld ",sqr.a[i][j]);puts("");}
}

P1939 【模板】矩阵加速(数列)

题面
搞个方阵
A 3 = [ a 3 a 2 a 1 0 0 0 0 0 0 ] , X = [ 1 1 0 0 0 1 1 0 0 ] , A_3=\left [ \begin{matrix} a_3& a_2 & a_1 \\ 0& 0 &0 \\ 0 & 0 & 0 \\ \end{matrix} \right] ,X=\left [ \begin{matrix} 1& 1 & 0 \\ 0& 0 &1 \\ 1& 0 & 0 \\ \end{matrix} \right], A3= a300a200a100 ,X= 101100010 ,
A 3 X = [ a 4 a 3 a 2 0 0 0 0 0 0 ] = A 4 , A_3X=\left [ \begin{matrix} a_4& a_3 & a_2 \\ 0& 0 &0 \\ 0 & 0 & 0 \\ \end{matrix} \right]=A_4, A3X= a400a300a200 =A4,
因此对 X X X进行矩阵快速幂即可。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 5;
const ll mod=1e9+7;
struct node{ll a[N][N];}sqr,A;
void sqr0(node &x){memset(x.a,0,sizeof x.a);
}
void sqr1(node &x){memset(x.a,0,sizeof x.a);for(int i=1;i<=3;i++)x.a[i][i]=1;
}
node operator*(node x, node b){node c;sqr0(c);for(int i=1;i<=3;i++){for(int j=1;j<=3;j++){for(int k=1;k<=3;k++)(c.a[i][j]+=x.a[i][k]*b.a[k][j]%mod)%=mod;}}return c;
}void qpow(node &x, ll y){node re;sqr1(re);while(y){if(y&1)re=re*x;x=x*x;y>>=1;}x=re;
}
ll n,T;
int main(){cin>>T;while(T--){cin>>n;if(n<=3){puts("1");continue;}sqr0(sqr);sqr.a[1][1]=sqr.a[1][2]=sqr.a[2][3]=sqr.a[3][1]=1;sqr0(A);A.a[1][1]=A.a[1][2]=A.a[1][3]=1;qpow(sqr,n-3);A=A*sqr;cout<<A.a[1][1]<<endl;}}

P4783 【模板】矩阵求逆

题面
把一个矩阵通过行变换变为单位矩阵所需要的行变换操作,操作给一个单位矩阵,就可以得到其逆矩阵。故应用高斯消元即可。

#include<bits/stdc++.h>
#define N 1000
using namespace std;
const int mod=1e9+7;
inline void read(int &x){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9'){s=(s<<3)+(s<<1)+(ch&15);ch=getchar();}x=s*w;
}
int n,a[N][N];
int qpow(int x, int y){int re=1;while(y){if(y&1)re=1LL*re*x%mod;x=1LL*x*x%mod,y>>=1;}return re;
}
int main(){read(n);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)read(a[i][j]);a[i][n+i]=1;}for(int i=1;i<=n;i++){int now=i;for(int j=i;j<=n;j++)if(a[now][i]<a[j][i])now=j;if(a[now][i]==0){puts("No Solution");return 0;}if(now!=i)swap(a[now],a[i]);for(int j=i+1;j<=n<<1;j++)a[i][j]=1LL*a[i][j]*qpow(a[i][i],mod-2)%mod;a[i][i]=1;for(int j=1;j<=n;j++){if(j==i)continue;int div=1LL*a[j][i]*qpow(a[i][i],mod-2)%mod;for(int k=i;k<=n<<1;k++)a[j][k]=(a[j][k]-1LL*a[i][k]*div%mod+mod)%mod;}}for(int i=1;i<=n;i++,puts(""))for(int j=1;j<=n;j++)printf("%d ",a[i][n+j]);}

P1962 斐波那契数列

题面
构造矩阵
A 2 = [ f 2 f 1 0 0 ] , X = [ 1 1 1 0 ] , A_2=\left [ \begin{matrix} f_2 & f_1 \\ 0 &0 \\ \end{matrix} \right] ,X=\left [ \begin{matrix} 1& 1 \\ 1& 0 \\ \end{matrix} \right], A2=[f20f10],X=[1110],
A 2 X = [ f 3 f 2 0 0 ] = A 3 , A_2X=\left [ \begin{matrix} f_3 & f_2 \\ 0 &0 \\ \end{matrix} \right]=A_3, A2X=[f30f20]=A3,

#include<cstdio>
typedef long long ll;
const ll mod=ll(1e9+7);
struct node
{ll sqr[5][5];
}a;
node operator*(node a, node b)
{node c;c.sqr[1][1]=(a.sqr[1][1]*b.sqr[1][1]%mod+a.sqr[1][2]*b.sqr[2][1]%mod)%mod;c.sqr[1][2]=(a.sqr[1][1]*b.sqr[1][2]%mod+a.sqr[1][2]*b.sqr[2][2]%mod)%mod;c.sqr[2][1]=(a.sqr[2][1]*b.sqr[1][1]%mod+a.sqr[2][2]*b.sqr[2][1]%mod)%mod;c.sqr[2][2]=(a.sqr[2][1]*b.sqr[1][2]%mod+a.sqr[2][2]*b.sqr[2][2]%mod)%mod;return c;
}
ll n;
void quickpow(node &x, ll y)
{node rec;rec.sqr[1][1]=rec.sqr[2][2]=1,rec.sqr[1][2]=rec.sqr[2][1]=0;while(y){if(y&1)rec=rec*x;x=x*x,y>>=1;}x=rec;
}
int main()
{scanf("%lld",&n);if(n==0)return puts("0");a.sqr[1][1]=a.sqr[1][2]=a.sqr[2][1]=1,a.sqr[2][2]=0;quickpow(a,n-1);printf("%lld\n",a.sqr[1][1]);
}

P1349 广义斐波那契数列

题面
构造矩阵
A 2 = [ f 2 f 1 0 0 ] , X = [ P 1 Q 0 ] , A_2=\left [ \begin{matrix} f_2 & f_1 \\ 0 &0 \\ \end{matrix} \right] ,X=\left [ \begin{matrix} P& 1 \\ Q& 0 \\ \end{matrix} \right], A2=[f20f10],X=[PQ10],
A 2 X = [ f 3 f 2 0 0 ] = A 3 , A_2X=\left [ \begin{matrix} f_3 & f_2 \\ 0 &0 \\ \end{matrix} \right]=A_3, A2X=[f30f20]=A3,

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll mod;
struct node
{ll sqr[5][5];node(){memset(sqr,0,sizeof sqr);}
}a,b;
node operator*(node a, node b)
{node c;c.sqr[1][1]=(a.sqr[1][1]*b.sqr[1][1]%mod+a.sqr[1][2]*b.sqr[2][1]%mod)%mod;c.sqr[1][2]=(a.sqr[1][1]*b.sqr[1][2]%mod+a.sqr[1][2]*b.sqr[2][2]%mod)%mod;c.sqr[2][1]=(a.sqr[2][1]*b.sqr[1][1]%mod+a.sqr[2][2]*b.sqr[2][1]%mod)%mod;c.sqr[2][2]=(a.sqr[2][1]*b.sqr[1][2]%mod+a.sqr[2][2]*b.sqr[2][2]%mod)%mod;return c;
}
ll n;
void quickpow(node &x, ll y)
{node rec;rec.sqr[1][1]=rec.sqr[2][2]=1,rec.sqr[1][2]=rec.sqr[2][1]=0;while(y){if(y&1)rec=rec*x;x=x*x,y>>=1;}x=rec;
}
int main()
{scanf("%lld%lld%lld%lld%lld%lld",&a.sqr[1][1],&a.sqr[2][1],&b.sqr[1][2],&b.sqr[1][1],&n,&mod);if(n<=2)return printf("%lld\n",b.sqr[1][3-n]);a.sqr[1][2]=1,a.sqr[2][2]=0;quickpow(a,n-2);b=b*a;printf("%lld\n",b.sqr[1][1]);
}

P4000 斐波那契数列

题面
不是,这什么题都往题单里放啊,这是我 18 18 18年外出集训堵了个论文费了两三天时间才切了的人生中第一道黑题,现在变成紫题了。
有一个性质是 f n m o d p f_n\mod p fnmodp有循环节,且循环节长度不会超过 6 p 6p 6p,这还有个名叫皮萨诺定理。所以我们考虑求出循环节的长度,然后用矩阵乘法求出结果。
引理:对于 f n m o d p f_n\mod p fnmodp的循环节 g ( p ) g(p) g(p)有如下性质:
1. p = p i α i 1.p=p_i^{\alpha_i} 1.p=piαi,即 p p p为质数的幂时, g ( p ) = g ( p i ) × p i α i − 1 g(p)=g(p_i)\times p_i^{\alpha_i-1} g(p)=g(pi)×piαi1
2. p = ∏ p i α i 2.p=\prod p_i^{\alpha_i} 2.p=piαi,即 p p p为合数时, g ( p ) = l c m ( g ( p i α i ) g(p)=lcm(g(p_i^{\alpha_i}) g(p)=lcm(g(piαi)
对于 g ( p ) g(p) g(p)这么算,如果 5 5 5是模 p p p的二次剩余,那么循环节为 p − 1 p-1 p1的因子,否则为 2 p + 2 2p+2 2p+2的因子。
因为 p p p不是特别大,直接取 p − 1 p-1 p1 2 p + 2 2p+2 2p+2即可。
对于 p ≤ 5 p\le 5 p5就暴力算即可, g ( 2 ) = 3 , g ( 3 ) = 5 , g ( 5 ) = 20 g(2)=3,g(3)=5,g(5)=20 g(2)=3,g(3)=5,g(5)=20

// luogu-judger-enable-o2
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
#define rg register
typedef long long ll;
char str[30000000];
ll n,p,mod,len,fac[100000],power[100000],faccnt,s;
struct node
{ll sqr[5][5];
}b;
node operator *(node a, node b)
{node xx;xx.sqr[1][1]=(a.sqr[1][1]*b.sqr[1][1]%p+a.sqr[1][2]*b.sqr[2][1]%p)%p;xx.sqr[1][2]=(a.sqr[1][1]*b.sqr[1][2]%p+a.sqr[1][2]*b.sqr[2][2]%p)%p;xx.sqr[2][2]=(a.sqr[2][1]*b.sqr[1][2]%p+a.sqr[2][2]*b.sqr[2][2]%p)%p;xx.sqr[2][1]=(a.sqr[2][1]*b.sqr[1][1]%p+a.sqr[2][2]*b.sqr[2][1]%p)%p;return xx;
}
node quickpow(node x, ll y)
{node rec;rec.sqr[1][1]=rec.sqr[2][2]=1;rec.sqr[1][2]=rec.sqr[2][1]=0;while(y){if(y%2==1)rec=rec*x;x=x*x;y/=2;}return rec;
}
ll gcd(ll a, ll b)
{if(b==0)return a;else return gcd(b,a%b);
}
ll lcm(ll a, ll b)
{return a*b/gcd(a,b);
}
ll get(ll k)
{ll now=k;for(rg ll i=2;i*i<=now;i++){if(now%i==0){faccnt++;fac[faccnt]=i;power[faccnt]=1;while(now%i==0){now/=i;power[faccnt]*=i;}}}for(rg ll i=1;i<=faccnt;i++)power[i]/=fac[i];if(now!=1){fac[++faccnt]=now;power[faccnt]=1;}for(rg ll i=1;i<=faccnt;i++){if(fac[i]==2)power[i]*=3;else if(fac[i]==3)power[i]*=5;else if(fac[i]==5)power[i]*=20;else if(fac[i]%5==1||fac[i]%5==4)power[i]*=fac[i]-1;else power[i]*=(fac[i]+1)<<1;}ll ans=power[1];for(rg ll i=1;i<=faccnt;i++)ans=lcm(ans,power[i]);return ans;
}
int main()
{scanf("%s%lld",str,&p);if(p==1){printf("0\n");return 0;}mod=get(p);len=strlen(str);for(rg ll i=0;i<len;i++)n=((n<<3)+(n<<1)+(str[i]&15))%mod;if(n==0){printf("0\n");return 0;}if(n==1||n==2){printf("1\n");return 0;}b.sqr[2][2]=0;b.sqr[1][1]=b.sqr[1][2]=b.sqr[2][1]=1;b=quickpow(b,n-1);printf("%lld\n",b.sqr[1][1]);
}

P3758 [TJOI2017] 可乐

题面

#include<bits/stdc++.h>
#define N 50
using namespace std;
const int mod=2017;
int t,n,m;
struct node{int a[N][N];node(){memset(a,0,sizeof a);}
}sqr;
node operator*(node x, node b){node c;for(int i=0;i<=n;i++){for(int j=0;j<=n;j++){for(int k=0;k<=n;k++)(c.a[i][j]+=x.a[i][k]*b.a[k][j]%mod)%=mod;}}return c;
}
void qpow(node &x, int y){node re;for(int i=0;i<=n;i++)re.a[i][i]=1;while(y){if(y&1)re=re*x;x=x*x;y>>=1;}x=re;
}
int main(){cin>>n>>m;for(int i=1,u,v;i<=m;i++)cin>>u>>v,sqr.a[u][v]=sqr.a[v][u]=1;cin>>t;for(int i=1;i<=n;i++)sqr.a[i][0]=1;for(int i=0;i<=n;i++)sqr.a[i][i]=1;qpow(sqr,t);int ans=0;for(int i=0;i<=n;i++)(ans+=sqr.a[1][i])%=mod;cout<<ans<<endl;}

P5343 【XR-1】分块

题面
方程很简单 d p [ i ] = ∑ j ∈ b l o c k , j ≤ i d p [ i − j ] dp[i]=\sum_{j\in block,j\le i}dp[i-j] dp[i]=jblock,jidp[ij],现在考虑如何矩阵优化。
由于块的大小不会超过 100 100 100,所以我们开一个 100 × 100 100\times 100 100×100的矩阵,首先预处理出 d p [ 1 ] − d p [ 100 ] dp[1]-dp[100] dp[1]dp[100],将其填入 A A A矩阵第一行中,再考虑所有 j ∈ b l o c k j\in block jblock,设 X [ j ] [ 1 ] = 1 X[j][1]=1 X[j][1]=1,对于后99列设 X [ j − 1 ] [ j ] = 1 X[j-1][j]=1 X[j1][j]=1,则这样可以转移 A A A矩阵,应用矩阵快速幂即可。

#include<bits/stdc++.h>
#define N 120
using namespace std;
const int mod=1e9+7;
const int len=100;
inline void read(int &x){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9'){s=(s<<3)+(s<<1)+(ch&15);ch=getchar();}x=s*w;
}
long long n;
int p,q,cnt,a[N],f[N],vis[N];
set<int> s;
struct node{int m[N][N];node(){memset(m,0,sizeof m);}
}sqr,A;
node operator*(node a, node b){node c;for(int i=0;i<=len;i++)for(int j=0;j<=len;j++)for(int k=0;k<=len;k++)c.m[i][j]=int((1LL*c.m[i][j]+1LL*a.m[i][k]*b.m[k][j]%mod)%mod);return c;
}
void qpow(node &x, long long y){node re;for(int i=0;i<=len;i++)re.m[i][i]=1;while(y){if(y&1)re=re*x;x=x*x;y>>=1;}x=re;
}
int main(){cin>>n;read(p);for(int i=1,x;i<=p;i++){read(x);if(s.find(x)==s.end())s.insert(x);}read(q);for(int i=1,x;i<=q;i++){read(x);if(s.find(x)!=s.end()&&!vis[x])a[++cnt]=x,vis[x]=1;}f[0]=1;for(int i=1;i<=len;i++)for(int j=1;j<=cnt;j++)if(a[j]<=i)f[i]=(1LL*f[i]+f[i-a[j]])%mod;if(n<=100){printf("%d\n",f[n]);return 0;}for(int i=0;i<=len;i++)sqr.m[0][len-i]=f[i];for(int i=1;i<=cnt;i++)A.m[a[i]-1][0]=1;for(int i=1;i<=len;i++)A.m[i-1][i]=1;qpow(A,n-100);sqr=sqr*A;printf("%d\n",sqr.m[0][0]);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/12399.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 递归实现迷宫出逃小游戏

Java 递归实现迷宫出逃小游戏 一、规则二、代码实现三、运行结果 一、规则 数字含义 0 - 路; 1 - 墙; 2 - 通路; 3 - 死路 寻路策略 向下 --> 向右 --> 向上 --> 向左 二、代码实现 public class MyClass {public static void main(String[] args){//迷宫地图&…

前端开发Vue3.0 标签setup语法『UI组件库』之『模态框』【业务提升必备】

封装模态框需要定义的参数 title //弹窗标题 show // 是否显示弹窗 width // 弹窗宽度 height // 弹窗高度 borderRadius // 弹窗圆角 headerColor // 弹窗顶部颜色 contentText // 内容文本 contentTextCorder //内容文本颜色 position // 标题的位置 …

OpenCV 算法解析

opencv大坑之BGR opencv对于读进来的图片的通道排列是BGR&#xff0c;而不是主流的RGB&#xff01;谨记&#xff01; #opencv读入的矩阵是BGR&#xff0c;如果想转为RGB&#xff0c;可以这么转 img4 cv2.imread(1.jpg) img4 cv2.cvtColor(img4,cv2.COLOR_BGR2RGB) OpenCV 常见…

自定义 View(六) 自定义评分星星

先看看效果图 1.自定义 View 的基本流程 创建 View Class创建 attr 属性文件&#xff0c;确定属性View Class 绑定 attr 属性onMeasure 测量onDraw 绘制onTouchEvent ( 用户交互需要处理 ) 1.1 创建 View Class package com.example.view_day05_ratingbar;import android.…

javaweb会话技术

cookie的入门使用 package com.hspedu.cookie;import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import …

GAMES104里渲染等一些剩下的问题

渲染的一些剩下的问题 1. 如何理解渲染中的AO(环境光遮蔽) 环境光遮蔽 我们先从一个简单的效果开始—环境光遮蔽(Ambient Occlusion,以下简称AO)。大家可以看到&#xff0c;下图中的场景没有任何渲染效果&#xff0c;也没有任何着色效果&#xff0c;但场景呈现出了非常清晰的…

面试-杨辉三角python递归实现,二进制转换

杨辉三角 def yang_hui(x,y):xint(x)yint(y)assert x>y,列数不应该大于行数# x 表示行&#xff0c;y表示列if y1 or yx:return 1else:return yang_hui(x-1,y-1)yang_hui(x-1,y)xinput(输入第几行) yinput(输入第几列) resultyang_hui(int(x),int(y)) print(result) #inclu…

前端开发中的常见优化

目录 外观 组件库&#xff08;无法满足->接口&#xff1f;->自定义/封装&#xff09; 兼容 不同尺寸&#xff08;包裹&#xff0c;height:100%&#xff09; 不同 浏览器 隐藏滚动条 的 不同属性名 重排->重绘 不显示 display:none->禁用disable 性能 导航…

libuv库学习笔记-basics_of_libuv

Basics of libuv libuv强制使用异步和事件驱动的编程风格。它的核心工作是提供一个event-loop&#xff0c;还有基于I/O和其它事件通知的回调函数。libuv还提供了一些核心工具&#xff0c;例如定时器&#xff0c;非阻塞的网络支持&#xff0c;异步文件系统访问&#xff0c;子进…

【学习笔记】关于图像YUV格式分类和排布方式的全学习

这里是尼德兰的喵学习笔记相关文章&#xff0c;欢迎您的访问&#xff01; 如果文章对您有所帮助&#xff0c;期待您的点赞收藏 让我们一起为芯片前端全栈工程师而努力 目录 前言 YUV格式导图 YUV444 packed planar I444 YV24 semi-planar NV24 NV42 YUV422 packed …

华为数通HCIA-网络模型

TCP 网络通信模式 作用&#xff1a;指导网络设备的通信&#xff1b; OSI七层模型&#xff1a; 7.应用层&#xff1a;由应用层协议&#xff08;http、FTP、Telnet.&#xff09;为应用程序产生对应的数据&#xff1b; 6.表示层&#xff1a;将应用层产生的数据转换成网络设备看…

《现代C++教程》笔记(5-7)

文章目录 5 智能指针与内存管理5.1 RAII与引用计数5.2 std::shared_ptr5.3 std::unique_ptr5.4 std::weak_ptr 6 正则表达式7 并行与并发7.1 并行基础7.2 互斥量与临界区7.3 期物7.4 条件变量7.5 原子操作与内存模型 5 智能指针与内存管理 5.1 RAII与引用计数 在传统 C 中&am…

一个月学通Python(二十八):Python网络数据采集(爬虫)概述(爬虫)

专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 文章目录 专栏介绍什么是爬虫爬虫的应用领域爬虫合法性探讨R…

Go语言中的结构体详解

关于 Golang 结构体 Golang 中没有“类”的概念&#xff0c;Golang 中的结构体和其他语言中的类有点相似。和其他面向对 象语言中的类相比&#xff0c;Golang 中的结构体具有更高的扩展性和灵活性。 Golang 中的基础数据类型可以表示一些事物的基本属性&#xff0c;但是当我们…

HuggingGPT Solving AI Tasks with ChatGPT and its Friends in Hugging Face

总述 HuggingGPT 让LLM发挥向路由器一样的作用&#xff0c;让LLM来选择调用那个专业的模型来执行任务。HuggingGPT搭建LLM和专业AI模型的桥梁。Language is a generic interface for LLMs to connect AI models 四个阶段 Task Planning&#xff1a; 将复杂的任务分解。但是这里…

Android.mk中的LOCAL_OVERRIDES_PACKAGES用法

Android.mk中的LOCAL_OVERRIDES_PACKAGES用法_mk local_over_觅风者的博客-CSDN博客 Android.mk中的LOCAL_OVERRIDES_PACKAGES的用法说明可以参考以下文章&#xff1a; Android.mk覆盖替换LOCAL_OVERRIDES_PACKAGES 此变量可以使其他的模块不加入编译 项目中遇到的问题&…

C语言复合赋值符和运算符的优先级问题

结论&#xff1a; 复合赋值符的优先级小于运算符 【练习1】 a * a / b的运算顺序是什么&#xff1f; a / b * a 【练习2】 x / 3 2 * 3 2 / 3 6 2 x 0

【力扣周赛】第 355 场周赛(构造二分答案异或前缀 状态压缩⭐)

文章目录 Q1&#xff1a;6921. 按分隔符拆分字符串&#xff08;双指针&#xff09;Q2&#xff1a;6915. 合并后数组中的最大元素&#xff08;倒序遍历贪心&#xff09;代码优化 Q3&#xff1a;6955. 长度递增组的最大数目&#x1f6b9;&#x1f6b9;&#x1f6b9;&#x1f6b9;…

【python】 清空socket缓冲区

在Python中使用Socket进行网络通信时&#xff0c;可以通过调用socket.recv()函数来接收数据&#xff0c;数据会被存储在缓冲区中。有时候&#xff0c;可能想要先清空缓冲区&#xff0c;以便后续的数据不会被之前的数据影响。以下是一种清空Python Socket缓冲区的方法&#xff1…

【JavaEE初阶】——第七节.Servlet入门学习笔记

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;JavaEE进阶 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01; 文章目录 前…