P1042 [NOIP 2003 普及组] 乒乓球

P1042 [NOIP 2003 普及组] 乒乓球 - 洛谷

#include<bits/stdc++.h>
using namespace std;char C;
string S;
int n,A,B;void Work(int Lim)
{for(char i:S){if(i=='W')	A++;if(i=='L')	B++;if(max(A,B)>=Lim && abs(A-B)>=2){cout<<A<<":"<<B<<endl;A=0,B=0;}}printf("%d:%d\n\n",A,B);A=B=0;	
}int main()
{while(cin>>C){if(C=='E')	break;S+=C;}Work(11),Work(21);return 0;
}

P2670 [NOIP 2015 普及组] 扫雷游戏

P2670 [NOIP 2015 普及组] 扫雷游戏 - 洛谷

#include<bits/stdc++.h>
using namespace std;int main()
{int n,m;cin>>n>>m;char a[110][110];int b[110][110]={0};int sum[110][110]={0};for(int i=0;i<n;i++){for(int j=0;j<m;j++){cin>>a[i][j];if(a[i][j]=='*'){b[i][j]=1;}}}for(int i=0;i<n;i++){for(int j=0;j<m;j++){if (a[i][j]=='*'){continue;}for(int p=i-1;p<=i+1;p++){for(int q=j-1;q<=j+1;q++){if(p>=0 && p<n && q>=0 && q<m){sum[i][j]+=b[p][q];}}}}}for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(b[i][j]==1){cout<<'*';}else{cout<<sum[i][j];}}cout<<endl;}return 0;
}

P1563 [NOIP 2016 提高组] 玩具谜题

P1563 [NOIP 2016 提高组] 玩具谜题 - 洛谷

设定------>顺时针减,逆时针加

#include<bits/stdc++.h>
using namespace std;
struct People
{string name;int toward;
}people[100005];int main()
{int n,m;cin>>n>>m;int cur=0;for(int i=0;i<n;i++){cin>>people[i].toward>>people[i].name;}int a=0,s=0;for(int i=0;i<m;i++){cin>>a>>s;if(people[cur].toward==a)
// 两个相等的时候,即面向内部的左边和面向外部的右边都是顺时针方向,此时是减,所以要乘 -1{s*=-1;}cur=(cur+n+s)%n;}cout<<people[cur].name;return 0;
}

P1601 A+B Problem(高精)

P1601 A+B Problem(高精) - 洛谷

#include<bits/stdc++.h>
using namespace std;int main()
{string x,y;cin>>x>>y;int num1=x.size();int num2=y.size();int a[501]={0};int b[501]={0};//低位数在前for(int i=0;i<num1;i++){a[i]=x[num1-1-i]-'0';}for(int i=0;i<num2;i++){b[i]=y[num2-1-i]-'0';}int maxn=max(num1,num2);int c[1002]={0};for(int i=0;i<maxn;i++){c[i]=a[i]+b[i];}//处理进位for(int i=0;i<maxn+2;i++){if(c[i]>9){c[i+1]+=c[i]/10;c[i]%=10;}}int num=maxn+1;//看有没有进位,使结果多出了一位,没有的话就减掉不考虑while(num>0 && c[num]==0){num--;}if(c[0]==0 && num==0){cout<<0;}else{for(int i=num;i>=0;i--){cout<<c[i];}}return 0;
}

P1303 A*B Problem

P1303 A*B Problem - 洛谷

#include<bits/stdc++.h>
using namespace std;int main()
{string x,y;cin>>x>>y;int num1=x.size();int num2=y.size();int a[501]={0};int b[501]={0};//低位数在前for(int i=0;i<num1;i++){a[i]=x[num1-1-i]-'0';}for(int i=0;i<num2;i++){b[i]=y[num2-1-i]-'0';}int maxn=max(num1,num2);int c[1002]={0};for(int i=0;i<maxn;i++){c[i]=a[i]+b[i];}//处理进位for(int i=0;i<maxn+2;i++){if(c[i]>9){c[i+1]+=c[i]/10;c[i]%=10;}}int num=maxn+1;//看有没有进位,使结果多出了一位,没有的话就减掉不考虑while(num>0 && c[num]==0){num--;}if(c[0]==0 && num==0){cout<<0;}else{for(int i=num;i>=0;i--){cout<<c[i];}}return 0;
}

P1009 [NOIP 1998 普及组] 阶乘之和

P1009 [NOIP 1998 普及组] 阶乘之和 - 洛谷

#include<iostream>
#include<cstdio>
using namespace std;
int n,a[101]={0},s[101]={0};
void do_jiecheng(int x)
{int g=0;for(int i=100;i>=0;i--)//从末尾开始存,a[100]存的是个位数{a[i]=a[i]*x+g;g=a[i]/10;a[i]=a[i]%10;}
}
void jiecheng_add()
{int g=0;for(int i=100;i>=0;i--){s[i]=s[i]+a[i]+g;g=s[i]/10;s[i]=s[i]%10;}
}
void output()
{int w;for(int i=0;i<=100;i++){if(s[i]!=0){w=i;break;}}for(int i=w;i<=100;i++)printf("%d",s[i]);
}int main()
{scanf("%d",&n);s[100]=a[100]=1;for(int i=2;i<=n;i++){do_jiecheng(i);jiecheng_add();}output();return 0;
}

P4924 [1007] 魔法少女小Scarlet

P4924 [1007] 魔法少女小Scarlet - 洛谷

#include<bits/stdc++.h>
using namespace std;int n,m;
int x,y,r,z;
int a[505][505]={0};
int b[505][505]={0};int main()
{cin>>n>>m;int num=1;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){a[i][j]=num;num++;}}							//按顺序输入数字for(int i=0;i<m;i++){cin>>x>>y>>r>>z;int len=2*r+1;if(z==0){for(int p=x-r;p<=x+r;p++){for(int j=y-r;j<=y+r;j++){b[x-y+j][x+y-p] = a[p][j];}}}else if(z==1){for(int p=x-r;p<=x+r;p++){for(int j=y-r;j<=y+r;j++){b[x+y-j][y-x+p] = a[p][j];}}}for(int p=x-r;p<=x+r;p++){for(int j=y-r;j<=y+r;j++){a[p][j]=b[p][j];b[p][j]=0;}}}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cout<<a[i][j]<<" ";}cout<<endl;}return 0;
}

P1328 [NOIP 2014 提高组] 生活大爆炸版石头剪刀布

P1328 [NOIP 2014 提高组] 生活大爆炸版石头剪刀布 - 洛谷

#include<bits/stdc++.h>
using namespace std;int N;                  //猜拳次数
int N_A;                //A的猜拳周期长度
int N_B;                //B的猜拳周期长度
int circle_A[205];      //A的猜拳周期
int circle_B[205];      //B的猜拳周期
int score_A = 0;		//A的得分
int score_B = 0;		//B的得分
int game[5][5] =        //游戏的结果情况,1表示A赢,-1表示A输,0表示平
{{0, -1, 1, 1, -1},{1, 0, -1, 1, -1},{-1, 1, 0, -1, 1},{-1, -1, 1, 0, 1},{1, 1, -1, -1, 0}
};int main()
{cin >> N >> N_A >> N_B;for(int i = 0; i < N_A; i++){cin >> circle_A[i];}for(int i = 0; i < N_B; i++){cin >> circle_B[i];}int i = 0;          //遍历A的猜拳周期int j = 0;          //遍历B的猜拳周期while(N--){if(i >= N_A){i = 0;}if(j >= N_B){j = 0;}//比较结果int result = game[circle_A[i]][circle_B[j]];if(result == 1){score_A++;}else if(result == -1){score_B++;}i++;j++;}cout << score_A << " " << score_B;	return 0;
}

P1518 [USACO2.4] 两只塔姆沃斯牛 The Tamworth Two

P1518 [USACO2.4] 两只塔姆沃斯牛 The Tamworth Two - 洛谷

#include<bits/stdc++.h>
using namespace std;int main()
{char a[15][15];		//地图int cx,cy,fx,fy;	//坐标for(int i=0;i<10;i++){for(int j=0;j<10;j++){cin>>a[i][j];if(a[i][j]=='C'){cx=i;cy=j;}if(a[i][j]=='F'){fx=i;fy=j;}}}int flagf=1,flagc=1;	//flag=1--->向上走;flag=2--->向右走;flag=3--->向下走;flag=4--->向左走int cnt=0;while(!(cx == fx && cy == fy)){if(flagc==1){if(cx-1<0 || a[cx-1][cy]=='*')	//向上走遇到障碍或者边界{flagc=2;}else{cx-=1;}}else if(flagc==2){if(cy+1>=10 || a[cx][cy+1]=='*')	//向右走遇到障碍或者边界{flagc=3;}else{cy+=1;}}else if(flagc==3){if(cx+1>=10 || a[cx+1][cy]=='*')	//向下走遇到障碍或者边界{flagc=4;}else{cx+=1;}}else if(flagc==4){if(cy-1<0 || a[cx][cy-1]=='*')	//向左走遇到障碍或者边界{flagc=1;}else{cy-=1;}}if(flagf==1){if(fx-1<0 || a[fx-1][fy]=='*'){flagf=2;}else{fx-=1;}}else if(flagf==2){if(fy+1>=10 || a[fx][fy+1]=='*'){flagf=3;}else{fy+=1;}}else if(flagf==3){if(fx+1>=10 || a[fx+1][fy]=='*'){flagf=4;}else{fx+=1;}}else if(flagf==4){if(fy-1<0 || a[fx][fy-1]=='*'){flagf=1;}else{fy-=1;}}cnt+=1;if(cnt>=100000){cout<<0<<endl;return 0;}}cout<<cnt;return 0;
}

P1067 [NOIP 2009 普及组] 多项式输出

P1067 [NOIP 2009 普及组] 多项式输出 - 洛谷

情况分为以下几种:

  • 当前 i=n 并且输入的数是正数,输出 +
  • 当前 i=0 并且输入的数是 −1,输出 -
  • 输入的数的绝对值大于 1 或者当前 i=0,输出输入的数。
  • 当前 i>1,输出 x^ 和 i。
  • 当前 i=1,输出 x
#include<bits/stdc++.h>
using namespace std;int main()
{int n;cin>>n;for(int i=n;i>=0;i--){int x;cin>>x;if(x){if(i!=n && x>0)cout<<'+';if(i!=0 && x==-1)cout<<'-';if(abs(x)>1 || i==0)cout<<x;if(i>1)cout<<"x^"<<i;if(i==1)cout<<'x';}}return 0;
}

P1065 [NOIP 2006 提高组] 作业调度方案

P1065 [NOIP 2006 提高组] 作业调度方案 - 洛谷

#include <iostream>
#define maxn 50
using namespace std;int n,m;
int ans = 0;// 给定的安排顺序
int worklist[maxn * maxn];// 每个工件的每个工序所使用的机器号
int worknumber[maxn][maxn];// 每个工件的每个工序的加工时间
int worktime[maxn][maxn];// 表示当前取到工件的工序数
int cnt_now_work_step[maxn];// 代表某个工件出现的最晚的时间(点)
int lasttime[maxn];// 代表某一台机器在某一个时间(点)上是不是正在干活
// 时间轴要开大一点,不然样例通过不了
bool timeline[maxn * maxn][maxn * maxn * maxn];// 检查一个机器是否在干活
bool check_in_line(int begin_time_point,int end_time_length,int workid)
{for (int time = begin_time_point; time <= end_time_length;time++)if (timeline[workid][time])return false;			// 在干活return true;    				// 不在干活
}int main(){cin >> m >> n;for (int i=1;i<=n*m;i++)cin >> worklist[i];for (int i=1;i<=n;i++)for (int j=1;j<=m;j++)cin >> worknumber[i][j];for (int i=1;i<=n;i++)for (int j=1;j<=m;j++)cin >> worktime[i][j];for (int i=1;i<=n*m;i++){int nowitem = worklist[i];		// 当前工件cnt_now_work_step[nowitem]++;	// 工序数// 记录当前工件在当前工序时位于哪一台机器int nownumber = worknumber[nowitem][cnt_now_work_step[nowitem]];// 做完这道工序应该花费的时间int costtime = worktime[nowitem][cnt_now_work_step[nowitem]];// lasttime[nowitem]+1便是我们扫描时间线的开端// 注意lasttime记录的是时间点// 这个for没有终止条件,因为时间轴可能会无穷远for (int time = lasttime[nowitem]+1;;time++)     			// 扫描时间轴{if (check_in_line(time,time+costtime-1,nownumber))		// 如果没有在干活{for (int marktime = time;marktime <= time+costtime-1;marktime++){timeline[nownumber][marktime] = true;			// 让这个机器干活}lasttime[nowitem] = time + costtime - 1;			// 更新下一轮的起始时间break;}}}for (int i=1;i<=n;i++){ans = max(ans,lasttime[i]);}cout << ans << endl;return 0;
}

P1786 帮贡排序

P1786 帮贡排序 - 洛谷

【关键】怎么排序!!!

详见代码里的注释

【知识点】结构体;多级比较;排序

#include<bits/stdc++.h>
using namespace std;string zhiwei[7]={"BangZhu","FuBangZhu","HuFa","ZhangLao","TangZhu","JingYing","BangZhong"};struct BangPai
{string name;string position;int cost;int grade;int shunxu;
}BP[120];// 比较函数1:帮贡降序 > 输入顺序升序
bool cmp_1(BangPai a, BangPai b)
{if (a.cost != b.cost) return a.cost > b.cost;  		// 贡献值降序return a.shunxu < b.shunxu;    		// 输入顺序升序
}// 比较函数2:职位 > 等级 > 输入顺序
bool cmp_2(BangPai a, BangPai b)
{// 获取职位优先级(数值越小职位越高)int priority_a = -1, priority_b = -1;for (int i = 0; i < 7; i++){if (zhiwei[i] == a.position){priority_a = i;}if (zhiwei[i] == b.position){priority_b = i;}}// 比较优先级if (priority_a != priority_b) return priority_a < priority_b;// 比较等级if (a.grade != b.grade) return a.grade > b.grade;// 比较输入顺序return a.shunxu < b.shunxu;
}int main()
{int n;cin>>n;int num=0;for(int i=0;i<n;i++){cin>>BP[i].name>>BP[i].position>>BP[i].cost>>BP[i].grade;BP[i].shunxu=i;// 统计帮主和副帮主数量if(BP[i].position=="BangZhu" || BP[i].position=="FuBangZhu"){num++;}}// 对普通成员排序(帮贡降序 > 输入顺序升序)sort(BP+num, BP+n, cmp_1);// 分配职位(注意边界检查)int idx = num;// 分配护法(最多2人)int count = min(2, n - idx);for(int i=0;i<count;i++){BP[idx++].position=zhiwei[2];}// 分配长老(最多4人)count = min(4, n - idx);for(int i=0;i<count;i++){BP[idx++].position=zhiwei[3];}// 分配堂主(最多7人)count = min(7, n - idx);for (int i = 0; i < count; i++){BP[idx++].position=zhiwei[4];}// 分配精英(最多25人)count = min(25, n - idx);for (int i = 0; i < count; i++){BP[idx++].position=zhiwei[5];}// 剩余成员为帮众while (idx < n){BP[idx++].position=zhiwei[6];}// 整个帮派最终排序sort(BP, BP + n, cmp_2);// 输出结果for(int i=0;i<n;i++){cout<<BP[i].name<<" "<<BP[i].position<<" "<<BP[i].grade<<endl;}return 0;
}

P1591 阶乘数码

P1591 阶乘数码 - 洛谷

  • memset 函数

  • 是一个C标准库中的函数,用于将一块内存区域的每个字节设置为指定的值;

void *memset(void *ptr, int value, size_t num);

函数的参数包括 ptr,表示要设置的内存区域的起始地址
value,表示要设置的值,通常以整数表示;
num,表示要设置的字节数
memset 函数的工作原理是将指定值 value 拷贝到指定内存区域 ptr 所指向的每个字节中重复拷贝 num 次
常见的用法是将内存区域初始化为特定值,例如将整个数组清零。

// 将数组清零
int arr[10];
memset(arr, 0, sizeof(arr));

 memset 函数只能设置每个字节的值,因此对于非 char 型的数组,设置的值可能会被截断或产生不可预测的结果。针对非字符类型的数组或结构体,应该使用其他方法来进行赋值。 

  • memcpy 函数

  • 是 C 标准库中的一个函数,用于在内存之间进行字节级别的数据拷贝。memcpy 可以将源内存区域的内容复制到目标内存区域,并返回指向目标内存区域的指针。

void *memcpy(void *dest, const void *src, size_t n);

函数的参数包括 dest,表示目标内存区域的起始地址
src,表示源内存区域的起始地址
n,表示要复制的字节数
memcpy 函数会将源内存区域中的 n 个字节的数据复制目标内存区域,可能包含原先的内容。函数不会检查边界,因此保证源和目标内存区域的大小至少为 n 是非常重要的。

// 示例
#include <stdio.h>
#include <string.h>int main() {char src[] = "Hello, world!";char dest[20];memcpy(dest, src, strlen(src) + 1);printf("Copied string: %s\n", dest);return 0;
}
// 输出:Copied string: Hello, world!

 memcpy 函数在进行内存拷贝时是按字节级别操作的,不关心内存中保存的是什么类型的数据。这也意味着在使用 memcpy 时,应确保源和目标内存区域之间没有重叠,以免产生意想不到的结果。如果源和目标内存区域有重叠,可以使用 memmove 函数来避免数据被破坏。

  • memmove函数

  • 是一个 C 标准库中的函数,用于在内存之间进行字节级别的数据拷贝。与 memcpy 函数不同的是,memmove 函数可以处理可能发生重叠的内存区域的拷贝。
void *memmove(void *dest, const void *src, size_t n);

函数的参数包括 dest,表示目标内存区域的起始地址;
src,表示源内存区域的起始地址;
n,表示要复制的字节数
memmove 函数将会将源内存区域中的 n 个字节的数据复制到目标内存区域中,即使源和目标内存区域有部分或完全重叠。函数会自动处理重叠情况,以确保数据被正确复制。

// 示例
#include <stdio.h>
#include <string.h>int main() {char str[] = "Hello, world!";memmove(str + 7, str, strlen(str) + 1);printf("Moved string: %s\n", str);return 0;
}
// 输出:Moved string: world! Hello,

 上述代码将字符串 str 移动了 7 个位置,即将字符串的前部分移动到后部分。在这个例子中,memmove 函数被用来处理源和目标内存区域可能重叠的情况。

需要注意的是,相比于 memcpy 函数,memmove 函数的实现可能会更加复杂和耗时,因为需要处理内存区域的重叠情况。因此,在没有重叠的情况下,推荐使用 memcpy 函数来进行拷贝操作,因为它的实现更简单且通常更高效。只有当存在内存区域重叠的情况时,才需要使用 memmove 函数。

#include<bits/stdc++.h>
using namespace std;int s[3001]={0};void do_jiecheng(int x)
{int g=0;for(int i=3000;i>=0;i--){int temp=s[i]*x+g;g=temp/10;s[i]=temp%10;}
}int main()
{int t;cin>>t;int n,a;for(int i=0;i<t;i++){cin>>n>>a;// 重置数组并初始化阶乘为1memset(s,0,sizeof(s));s[3000]=1;if(n>=1){for(int i=2;i<=n;i++){do_jiecheng(i);}}int w=0;for(;w<=3000;w++){if(s[w]!=0){break;}}int num=0;for(int i=w;i<=3000;i++){if(s[i]==a){num++;}}cout<<num<<endl;}return 0;
}

P1249 最大乘积

P1249 最大乘积 - 洛谷

#include<bits/stdc++.h>
using namespace std;int a[10001]={};	// 存储分解的数字
int s[10001]={};	// 高精度数组存储乘积int n,len=1;		// len: 高精度数字的位数// 高精度乘法 (s = s * x)
void mul(int x)
{// 逐位相乘for(int i=1;i<=len;i++){s[i]*=x;}// 处理进位for(int i=1;i<=len;i++){s[i+1]+=s[i]/10;s[i]%=10;}// 扩展位数while(s[len+1]>0){len++;s[len+1]+=s[len]/10;s[len]%=10;}
}int main()
{cin>>n;// 处理特殊情况if(n==3){cout<<3<<endl;cout<<3<<endl;return 0;}if(n==4){cout<<4<<endl;cout<<4<<endl;return 0;}// 初始化高精度数组 (s=1)s[0]=s[1]=1;// Sum: 当前总和, tot: 数字个数int Sum=0,tot=0;// 构建连续自然数序列 (从2开始)for(int i=2;Sum<n;Sum+=i,i++){a[++tot]=i;}// 调整序列if(Sum>n+1)				// 情况1:超出值较大{a[Sum-n-1]=0;		// 去掉特定位置的数}else if(Sum==n+1)		// 情况2:刚好超出1{a[tot]++;			// 最后一个数加1a[1]=0;				// 去掉第一个数2}// 输出分解方案并计算乘积for(int i=1;i<=tot;i++){// 跳过被去掉的数(值为0)if(a[i]){cout<<a[i]<<' ';mul(a[i]);		// 乘以当前数}}cout<<endl;// 输出高精度乘积 (逆序输出)for(int i=len;i>=1;i--){cout<<s[i];}cout<<endl;return 0;
}

P1045 [NOIP 2003 普及组] 麦森数

P1045 [NOIP 2003 普及组] 麦森数 - 洛谷

使用快速幂(二进制取幂)来优化;

#include<bits/stdc++.h>
using namespace std;
int p;
int f[1005],l[1005];
int s[1005];						//用于存储高精度乘法的中间计算//函数s1:计算 l=l*f(结果乘以当前基数)
void s1()
{memset(s,0,sizeof(s));			//清空临时数组for(int i=1;i<=500;i++){for(int j=1;j<=500;j++){s[i+j-1]+=l[i]*f[j];	//l的每一位乘以f的每一位}}//处理进位for(int i=1;i<=500;i++){s[i+1]+=s[i]/10;			//进位到高位s[i]%=10;					//当前位保留个位数}memcpy(l,s,sizeof(l));			//将结果复制回l数组
}//函数s2:计算f=f*f(基数平方),方法同函数s1
void s2(){memset(s,0,sizeof(s));for(int i=1;i<=500;i++){for(int j=1;j<=500;j++){s[i+j-1]+=f[i]*f[j];}}for(int i=1;i<=500;i++){s[i+1]+=s[i]/10;s[i]%=10;}memcpy(f,s,sizeof(f));
}int main()
{cin>>p;//计算2^P-1的位数公式:log10(2^P)=P*log10(2),加1得到位数cout<<(int)(log10(2)*p+1);l[1]=1;f[1]=2;//通过二进制分解Pwhile(p!=0){if(p%2==1){s1();}p/=2;						//去掉p二进制中的最后一位s2();}//直接对个位减1,因为末尾只可能是2,4,6,8l[1]-=1;//输出需从高位到低位输出,因为逆序存储for(int i=500;i>=1;i--){if(i%50==0)cout<<"\n";		//每50位换行cout<<l[i];}return 0;
}

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

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

相关文章

数据结构学习基础和从包装类缓存到泛型擦除的避坑指南

目录 1.数据结构的概念和算法 1.1 数据结构的概念 1.2 数据结构的集合框架 1.3 算法 1.3.1 时间复杂度 1.3.2 空间复杂度 2.包装类 2.1 为什么需要包装类&#xff1f; 2.2 装箱和拆箱 3. 初识泛型 3.1 认识泛型 3.2 泛型类的使用 3.3 泛型的编译 3.4 通配符 3.4.1 …

网络安全基础知识【6】

什么是防火墙1.防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、 专用网与公共网之间的界面上构造的保护屏障 2.防火墙实际上是一种隔离技术 3.防火墙重要的特征是增加了区域的概念防火墙的定义 隔离可信与不可信网络的设备/软件&#xff0c;基于策略控制流量…

Apache Doris数据库——大数据技术

Apache Doris一、简介1.1、Apache Doris简介1.2、Apache Doris 与传统大数据架构相比1.3、doris是java团队掌控大数据能力最优选择1.4、 OLTP&#xff08;在线事务处理&#xff09; 与 OLAP&#xff08;在线分析处理&#xff09;1.5、发展历程1.6、应用现状1.7、整体架构1.7.1、…

Conda和pip的使用记录

Conda和pip的使用记录一、创建新的 Conda 环境二、激活环境三、安装其他包&#xff08;可选&#xff09;四、查看已有环境五、删除环境&#xff08;可选&#xff09;⚙️ Conda 下载缓慢的解决方案&#xff08;推荐使用国内镜像&#xff09;&#x1f527; 方法一&#xff1a;**…

详解Python标准库之互联网数据处理

详解Python标准库之互联网数据处理 在互联网时代&#xff0c;数据的产生、传输和处理无处不在。从电子邮件的收发到 API 接口的数据交换&#xff0c;从二进制数据的编码到 MIME 类型的识别&#xff0c;Python 标准库提供了一整套强大的工具集&#xff0c;帮助开发者轻松应对各种…

适 配 器 模 式

前阵子&#xff0c;笔者在网上淘来一个二手显示屏来搭配我装好的主机&#xff0c;但是送到手上后我却找不到电源适配器的踪迹。于是我就在家找了根电源线接上了显示屏&#xff0c;倒是能亮&#xff0c;就是屏幕闪得和机关枪似的。这是因为我的显示屏需要12V的供电&#xff0c;我…

智慧零售商品识别准确率↑32%:陌讯多模态融合算法实战解析

原创声明本文为原创技术解析&#xff0c;核心技术参数与架构设计引用自《陌讯技术白皮书》&#xff0c;禁止任何形式的未经授权转载。一、行业痛点&#xff1a;智慧零售的 "看得见的障碍"在智慧零售场景中&#xff0c;从自助结算终端到智能货架管理&#xff0c;计算机…

Linux系统编程-gcc(黑马笔记)

1 gcc的编译流程gcc编译的整个过程并且整个过程下来的每个过程。并且给出了每个阶段产物和gcc命令。1.1 数据段合并其实就是因为“块” 一次是读多个字节而不是一个字节&#xff0c;所以会将一些地址段合并从而提升效率1.2 地址回填这张图也有些问题&#xff0c;正确的结论是:地…

Git踩坑

文章目录前言❓问题分析&#xff1a;为什么你的提交会“覆盖”别人的代码&#xff1f;✅ 正确的代码提交流程&#xff08;结合你原文的说明&#xff09;**1. 确认自己在正确的分支上****2. 从主开发分支&#xff08;如 dev&#xff09;拉取最新代码并合并****3. 解决冲突&#…

sqli-labs:Less-20关卡详细解析

1. 思路&#x1f680; 本关的SQL语句为&#xff1a; $sql"SELECT * FROM users WHERE username$cookee LIMIT 0,1";注入类型&#xff1a;字符串型&#xff08;单引号包裹&#xff09;、GET操作提示&#xff1a;参数需以闭合关键参数&#xff1a;cookee php输出语句…

基于LevitUnet的超声图像分割

完整项目包获取&#xff1a;点击文末名片本项目旨在开发一个基于深度学习的图像分割模型&#xff0c;专门用于处理医学或遥感领域的图像数据&#xff08;以 TIFF 格式存储&#xff09;。通过结合 LeViT&#xff08;基于 Vision Transformer 的轻量模型&#xff09;和 U-Net 架构…

Java 17 新特性解析与代码示例

Java 17 新特性解析与代码示例 文章目录Java 17 新特性解析与代码示例引言1. 密封类&#xff08;JEP 409&#xff09;1.1. 介绍1.2. 详细说明1.3. 代码示例1.4. 与之前功能的对比1.5. 使用场景1.6. 总结2. switch 模式匹配&#xff08;预览&#xff0c;JEP 406&#xff09;2.1.…

SQL中的GROUP BY用法

GROUP BY 是 SQL 中用来“按列分组”的子句。 它把相同值的行分到同一个组&#xff0c;然后通常配合聚合函数&#xff08;COUNT, SUM, AVG, MAX, MIN 等&#xff09;对每个组做统计&#xff0c;最终每组只返回一行结果。✅ 1. 基本语法 SELECT 列1, 列2, 聚合函数(列3) FROM 表…

AI Agent开发学习系列 - LangGraph(10): 带有循环的Looping Graph(练习解答)

在AI Agent开发学习系列 - LangGraph(9): 带有循环的Looping Graph中&#xff0c;我们学习了如何创建带有循环的Looping Graph。为了巩固学习&#xff0c;我们来做一个练习。 用LangGraph创建如下图的一个Agent: 要求&#xff1a; 输入玩家姓名通过输入的上限值和下限值之间…

【保姆级 - 大模型应用开发】DeepSeek R1 本地部署全攻略:Ollama + vLLM + PyTorch 多选方案

DeepSeek R1 本地部署全攻略&#xff1a;Ollama vLLM PyTorch 多选方案 想部署 DeepSeek-R1 模型到本地&#xff0c;开启高性能推理体验&#xff1f;本文汇总了 Ollama、vLLM 及原生 PyTorch 的部署方法&#xff0c;适合不同开发者需求。 &#x1f3af; 下载模型 (必做) ----…

使用 Vive Tracker 替代 T265 实现位姿获取(基于 Ubuntu + SteamVR)

在Dexcap这篇工作列出第二版硬件清单时&#xff0c;我注意到其使用 Vive Tracker 替代 Intel T265 来获取位姿数据&#xff0c;对这个东西的性能感到好奇&#xff0c;最近因为需要跟进相关工作&#xff0c;参与了一部分实现&#xff0c;由于这方面的中文资料相对较少&#xff0…

博物馆 VR 导览:图形渲染算法+智能讲解技术算法实现及优化

本文面向博物馆数字化开发技术员、VR 系统工程师等技术同仁们&#xff0c;聚焦图形渲染算法在博物馆 VR 导览中的核心应用&#xff0c;解决虚拟展馆还原精度不足、多终端适配卡顿、智能讲解触发延迟等实际技术问题。如有项目合作及技术交流欢迎私信作者~一、VR导览技术痛点1.3D…

zset 中特殊的操作

首先 zset 与我们常规的 redis 操作有所不同, 这里的时间复杂度基本都是 O(log N) 起步的 目录 1. zcount 2. zpopmax 1. zcount zcount key min max : 这里求的是 key 中下标在 min 和 max 之间的 元素的数量, 这里是比区间 我们要是想排除端点, 就需要加上 ( , 无论是…

KSP与ASM深度对比:原理、性能与使用场景

一、核心目的差异1. KSP&#xff08;Kotlin Symbol Processing&#xff09;核心目的&#xff1a;在编译时生成新代码&#xff0c;解决样板代码问题(操作对象:.kt源文件编译过程中的中间表示)主要场景&#xff1a;自动生成DI&#xff08;依赖注入&#xff09;配置代码创建路由映…

【LLM】如何在Cursor中调用Dify工作流

这篇文章将通过一个接口文档知识库示例&#xff0c;带你了解如何在 Cursor 中通过 Mcp Server 调用 Dify 平台配置的工作流。 1. 准备工作 需要准备文本生成模型、向量模型、Rerank 模型&#xff08;可选&#xff09;&#xff0c;这些都可以在 阿里云百炼平台 申请免费使用额度…