一般枚举题目合集
一般枚举题目合集
- 枚举
- NOIP 2011 提高组 铺地毯
- P2327 [SCOI2005] 扫雷
- 蓝桥真题 跑步
- 蓝桥真题 猜年龄
- 二进制枚举
- 常用的技巧整理
- 子集 - 力扣
- P10449 费解的开关
- UVA11464 Even Parity
- 通过Virtual Judge提交代码
- 正解
- 日期枚举
- 蓝桥真题 跑步
- NOIP 2016 普及组 回文日期
- 日期统计
写这段纯粹是无聊。不想看的可以点击目录跳过。
自己在今年4月12日的省赛拿了一等奖。但自己感觉自己有很大的问题。
- 看到题目不是没思路,而是思路太多,在蓝桥杯的那种赛制下容易选择一个方向去实现,很容易造成样例过、瞎编的测试样例也过但提交后对的不多甚至全错的情况。
- 会被题目带偏,印象深刻的就是某一题题目给的信息我误解成等差数列导致错误(虽然经过证实等差数列的思路只能通过一半的测试样例),这点说明我并不喜欢这种找规律的题,而是通过题干拆解成曾经做过的题。
- 喜欢写题解,自己想不起来怎么搓做过的题了看一眼挺好,但字数太多,太过详细,挤压了很多学习的时间。因此尝试缩减字数。
- 自己毕竟只是个大三,没了刚进大学的激情,还因为做题没做过本校大一的新生信心受挫。后面的蓝桥杯国赛和ICPC邀请赛多半是陪跑的,主要重心还是在就业。
- 自己会很多看起来很d的算法、数据结构,但做题没做过大一的,很大原因是基础的东西忘了。所以会尝试从基础的补进度。毕竟,有人在三千万岁开始学习解一元二次方程,还说不太晚,我这种蒟蒻又算什么
^_^
枚举
顾名思义,就是把所有情况全都罗列出来,然后找出符合题目要求的那一个。因此,枚举是一种纯暴力的算法。
一般情况下,枚举策略都是会超时的。此时要先根据题目的数据范围来判断暴力枚举是否可以通过。如果不行的话,就要用各种算法来进行优化(比如二分,双指针,前缀和与差分等)。
使用枚举策略时,重点思考枚举的对象(枚举什么),枚举的顺序(正序还是逆序),以及枚举的方式(普通枚举?递归枚举?二进制枚举)。
NOIP 2011 提高组 铺地毯
[P1003 NOIP 2011 提高组] 铺地毯 - 洛谷
将所有地毯的信息保存在数组中,逆向枚举数组,当坐标在数组表示的地毯范围内时,编号即为答案。
否则输出-1
。
#include<bits/stdc++.h>
using namespace std;void ac() {int n; cin >> n;vector<int>a, b, g, k;for (int i = 0; i < n; i++) {int q, w, e, r;cin >> q >> w >> e >> r;a.push_back(q);b.push_back(w);g.push_back(e);k.push_back(r);}int x, y;cin >> x >> y;for (size_t i = a.size() - 1; i != -1; i--) {if (a[i] <= x && a[i] + g[i] >= x && b[i] <= y && b[i] + k[i] >= y) {cout << i+1;return;}}cout << -1;
}int main() {int T = 1;//cin >> T;while (T--)ac();return 0;
}
P2327 [SCOI2005] 扫雷
[P2327 SCOI2005] 扫雷 - 洛谷
最初思路:
- 所有标3的格子,附近一定是雷,方法数1;
- 和3有贴贴的2,以及最两端的格子,方法数1;
- 其他2,通过已知的2推,1同理。
但无法证明思路是否正确,而且只能找到填法,不能找到方法数。若是平时,我可能想到了就会一头陷进去。
解法:
发现,每个格子有0、1个雷两种状态,因此可以先确定第1个格子的状态,根据第1个格子的状态去推下一个格子的状态,直到枚举完。
当枚举的地雷数小于0,说明欠地雷;大于1,说明多地雷。此时第1个格子的这个状态,无法安排雷。
而且要枚举到第n+1
个格子,因为会出现第n
个第2列填3的非法情况,需要进一步检测。
#include<bits/stdc++.h>
using namespace std;
const int N = 1e4 + 10;
short l1[N], l2[N];//l1表示第1列
int n;int cnt(bool s) {l1[1] = s;for (int i = 2; i <= n + 1; i++) {l1[i] = l2[i - 1] - l1[i - 1] - l1[i - 2];if (l1[i] < 0 || l1[i]>1)return 0;}if (l1[n + 1] == 0)return 1;return 0;
}void ac() {cin >> n;for (int i = 1; i <= n; i++)cin >> l2[i];cout << cnt(0) + cnt(1) << endl;
}int main() {int T = 1;//cin >> T;while (T--)ac();return 0;
}
蓝桥真题 跑步
2.跑步 - 蓝桥云课
枚举日期,判断是否符合条件即可。
参考程序:
#include<stdio.h> int y=2022,m=1,d=1;
int week=6;
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int judg(){if(d%10==1||week==6||week==7)return 1;return 0;
}void f() {int cnt=0;while(y!=2023){++d;++week;if(d>month[m]){m++;d=1;if(m>12){y++;m=1;}}if(week>7){week=1;}cnt+=judg();} printf("%d",cnt);
}int main() {//f();printf("138");return 0;
}
本题是一道填空题,唯一的测试用例是138。
蓝桥真题 猜年龄
6.猜年龄 - 蓝桥云课
纯枚举,这个数学王子很年轻,所以年龄不会很大。
#include<stdio.h>
int main() {int cnt[10]={0};//count,计数用 int i=0;for(i=11;i<=36;i++){int a=i*i*i;//立方 int b=a*i;//四次方//统计每一位 while(a!=0){cnt[a%10]++;a/=10; }while(b!=0){cnt[b%10]++;b/=10; }//cnt全是1,则i即为正确答案 int j=0;for(j=0;j<10;j++){if(cnt[j]==1)continue;elsebreak;}if(j==10){printf("%d",i);return 0;}for(j=0;j<10;j++){cnt[j]=0;}}//printf("18");//其实可以把次方数输出,肉眼观察 return 0;
}
这是一道填空题,唯一的测试用例是18。
二进制枚举
二进制枚举:用一个数二进制表示中的 0/1 表示两种状态,从而达到枚举各种情况。
利用二进制枚举时,会用到一些位运算的技巧。
关于用二进制中的 0/1 表示状态这种方法,会在动态规划中的状态压缩 dp 中继续使用到。
二进制枚举的方式也可以用递归实现。
常用的技巧整理
- 求某个整数的二进制位。也能用于统计整数的二进制中1的数量。
int cnt(int x){for(int i=0;i<sizeof(x)*8;i++){cout<<(x>>i)&1;}
}
- 想要指定的bit位为1。通过或运算实现。
void get(int& x){int place=0;cin>>place;//想要x的第place位的bit位为1x|=(1<<place);
}
- 以
n==3
为例,[0,(1<<3)-1]
之间所有的数的二进制:
0 0000 []
1 0001 [1]
2 0010 [2]
3 0011 [1,2]
4 0100 [3]
5 0101 [1,3]
6 0110 [2,3]
7 0111 [1,2,3]
8 1000
所以枚举[1,8)
,对每个数提取二进制位,可以得到所有子集。
- 求某数的二进制中1的个数的其他玩法:
int calc(int x){int cnt=0;while(x){++cnt;x&=x-1;}return cnt;
}
这个玩法的巧妙之处在于,它能将最整数x
最低位的1清理掉。
例如5&4=4
等价于0101&0100=0100
,4&3==0
等价于0100&0011=0
,进行了2步运算,正好是5的二进制数汇中1的个数。
子集 - 力扣
78. 子集 - 力扣(LeetCode)
法1:深度优先搜索。详见深度优先搜索。
枚举递归深度,根据这个递归深度来搜索子集。
搜索子集的过程中进行剪枝,排除等效冗余。
class Solution {
public:typedef vector<vector<int>> vvi;typedef vector<int> vi;typedef vector<bool> vb;void dfs(int max_dep,int dep,vi& nums,vvi& ans,vi&tmp,vb&vis,int last){if(dep==max_dep+1){ans.push_back(tmp);return;}//剪枝:通过last排除等效冗余for(int i=last;i<nums.size();i++){if(vis[i])continue;vis[i]=1;tmp.push_back(nums[i]);dfs(max_dep,dep+1,nums,ans,tmp,vis,i+1);vis[i]=0;tmp.pop_back();}}vector<vector<int>> subsets(vector<int>& nums) {sort(nums.begin(),nums.end());vvi ans(1,vi());vi tmp;vb vis(nums.size(),0);//给定递归深度,进行深搜for(int i=1;i<=nums.size();i++){dfs(i,1,nums,ans,tmp,vis,0);}return ans;}
};
法2:二进制枚举
用0表示不选某一bit位的数,1表示选。
- 枚举
[0,1<<n-1]
之间所有的数。 - 枚举1范围内的数中,bit位为1的位置,将这个位置对应的数选出。
发现按[1,7]
的bit位为1的选,正好就是答案。所有bit位都不选,则选出了一个空集,
class Solution {
public:vector<vector<int>> subsets(vector<int>& nums) {vector<vector<int>> ret;int n = nums.size();// 枚举所有的状态for (int st = 0; st < (1 << n); st++) {// 根据 st 的状态,还原出要选的数vector<int> tmp; // 从当前选的⼦集for (int i = 0; i < n; i++) {if ((st >> i) & 1) tmp.push_back(nums[i]);}ret.push_back(tmp);}return ret;}
};
P10449 费解的开关
P10449 费解的开关 - 洛谷
根据题目得到3条性质:
-
重复按同一个开关没意义。
-
按法确定后,最终结果和按的顺序无关。
-
第1行的按法确定后,整个按法都确定。因为目标是让所有灯都亮,所以第1行按完后,第2行的目标是使第1行全亮,第3行的目标是使第2行全亮,于是按法固定。
根据性质得到解法:
-
利用二进制的特性,枚举第1行的按法。范围
[1,1<<5-1]
,这样就能枚举所有bit位的情况。 -
按灯。
- 存灯的状态,可以用二维数组,这里用具体的整数。但需要将状态换一下,1表示灯灭,0表示全亮。这样只需要看最后一行是否全为0即可。这样用二进制的特性去按的时候会很好处理。
- 按灯时,根据1给的按法,将第
i
层的状态a[i]
进行异或处理:a[i]^ push ^ (push >> 1) ^ (push << 1)
。
根据性质2可以证明即使将按法按照bit位拆分开来,和不拆分没区别。 - 按完之后最边缘的1可能会对其他无关 bit 位造成影响,进而影响最终结果。例如按法
10000
,初始状态000000
,按完后最终状态111000
,最高位的1会影响最终结果,需要变成11000
,才能正确表达最终结果。
因此需要进行操作a[i]&=(1<<5)-1
抵消影响。 - 下一行的灯直接
^=push
即可。
-
根据上一次按灯的结果,确定下一行的按法。
下一行的目标是这一行的灯全亮,因此按法也就是当前行的按法。到这里就体现了状态转换的好处:1表示灯灭,也能表示下一行的按法,此时确定下一行的按法时直接复制当前行的状态即可。
-
重复1、2、3。当出现按的次数小于6的情况时就是答案。
#include<bits/stdc++.h>
using namespace std;//求int型数据的32位bit位中,1的数量
int calc(int x) {int cnt = 0;for (int i = 0; i < 32; i++) {if ((x >> i) & 1)++cnt;}return cnt;
}void ac() {vector<int>a(6, 0), b;for (int i = 0; i < 5; i++) {for (int j = 4; j >=0; j--) {char ch; cin >> ch;if (ch == '0')a[i] |= 1 << j;//更换状态,1表示灯灭}}b = a;//备份int res = 2e9;for (int i = 0; i < (1 << 5); i++) {int cnt = 0;//当前按法的步数。a = b;//还原状态测试新方法int push = i;//按法for (int j = 0; j < 5; j++) {cnt += calc(push);//统计按的次数a[j] = a[j] ^ push ^ (push >> 1) ^ (push << 1);//按当前行a[j] &= ((1 << 5) - 1);//抵消最高位造成的影响a[j + 1] ^= push;//按下一行push = a[j];//更新按法}if (a[4] == 0)//当前按法能达到目标res = min(res, cnt);}if (res > 6)cout << -1;elsecout << res;cout << endl;
}int main() {int T = 1;cin >> T;while (T--)ac();return 0;
}
UVA11464 Even Parity
UVA11464 Even Parity - 洛谷
这是一道UVA的题,UVA是国外的OJ网站,只有先在UVA注册账号,并绑定洛谷账号才能在洛谷上提交。
如果无法注册,可以在Virtual Judge注册,通过这里来提交。
通过Virtual Judge提交代码
以这题为例,首先在Vjg中点击Problem。
找到OJ,并输入题号Prob和题目Title。
点击标蓝的题目标题Even Party即可跳转到页面。
后点击Submit提交代码。选择语言(Language),将代码拷贝到Solution处的文本框中,再点击右下角的Submit,vjg后台会用它们的账号提交到UVA的后台服务器。
当页面显示Accepted后,说明代码正确。
正解
UVA11464 Even Parity - 洛谷
例如这个矩阵:
0 1 0
1 0 1
0 1 0
它的每个元素的周围的元素之和:
2 0 2
0 4 0
2 0 2
所以这是一个符合要求的矩阵。
根据题意,可总结出3个性质:
- 每个0只有变1次或不变2种情况。
- 决定改变哪些0后,改变的顺序不影响最终结果。
- 第1行的最终结果确定后,后续行的最终结果也跟着确定(和费解的开关十分类似)。
根据性质得出的解法:
-
输入数据时,将矩阵中的1与进数组
a[i]
,用一个数表示原始状态。根据题意,还得知道a[i-1]
。所以数组需要从下标1开始计数。 -
利用二进制的特性,枚举第一行的所有可能得最终状态。
枚举[0,(1<<n)-1]
。
- 判断最终状态是否合法
一层循环,判断第i
行的状态a[i]
的最终状态是否合法(将原始结果和最终结果进行比对):
- 0变1合法,搞一个变量
sum
记录改变次数。 - 1变0非法,返回-1即可。
之后统计最小改变次数时无视当前循环的结果。
- 判断合法后,推导出下一行的最终状态,重复2、3过程。
首先累加0的改变次数。
例如这种情况:
_ x _
y _ z//当前行
_ ? _//下一行
要推导?
这个bit位的值,同时为了让上一行的每个数都符合条件,则x+y+z+?
为偶数,则{x,y,z,?}
中1的个数为偶数,0的个数也是偶数。
所以求这4个位置的和是否满足条件看x^y^z^?==0
。
至于如何求x^y^z^?==0
,可以这样做:after=a[i-1]^(a[i]<<1)^(a[i]>>1)
。after
是暂定改变之后的结果。
和费解的开关一样,边缘行的1同样会对无关的bit位造成影响,需要将最终结果再进行操作
after&=((1<<n)-1)
。
- 直到推导到最后一行。
更新结果即可。
#include<bits/stdc++.h>
using namespace std;int CNT;
int n;
int ope(int start, int end) {int sum = 0;for (int i = 0; i < n; i++) {if (((start >> i) & 1) == 0 && (((end >> i) & 1) == 1))++sum;if (((start >> i) & 1) == 1 && (((end >> i) & 1) == 0)) {return -1;}}return sum;
}int solve(vector<int> &a) {int res = 2e9;vector<int>b = a;for (int i = 0; i < (1 << n); i++) {int after = i;int cnt = 0;a = b;bool flag = 1;for (int j = 1; j <= n; j++) {int times = ope(a[j], after);if (times == -1) {flag = 0;break;}cnt += times;a[j] = after;after = a[j - 1] ^ (a[j] << 1) ^ (a[j] >> 1);after &= ((1 << n) - 1);}if (flag) {res = min(res, cnt);}}if (res == 2e9)return -1;return res;
}void ac() {cin >> n;vector<int>a(n + 2, 0);for (int i = 1; i <= n; i++) {for (int j = n - 1; j >= 0; j--) {int tmp; cin >> tmp;if (tmp)a[i] |= (1 << j);}}printf("Case %d: %d\n", ++CNT, solve(a));}int main() {int T = 1;cin >> T;while (T--)ac();return 0;
}
日期枚举
公元纪年的日期的性质:
- 一年有12个月,每月的天数不同,我记得有这么个口诀:
一月大,二月平,三月大,四月小,五月大,六月小,七月大,八月大,九月小,十月大,十一月小,十二月大。
大表示这个月有31天,小表示这个月有30天,平表示2月随平年和闰年发生变化。 - 闰年:年份能整除4,不能整除100,或能整除400的年份就是闰年。在闰年,2月有29天,否则平年有28天。
因为地球绕太阳公转的时间是365.2422天,每4年会比实际季节滞后约 1 天(0.2422×4≈1天),长期积累会导致季节错乱(比如几百年后夏季可能出现在日历的冬季)。
日期常用的数组:
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
蓝桥真题 跑步
2.跑步 - 蓝桥云课
枚举日期,判断是否符合条件即可。
参考程序:
#include<stdio.h> int y=2022,m=1,d=1;
int week=6;
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int judg(){if(d%10==1||week==6||week==7)return 1;return 0;
}void f() {int cnt=0;while(y!=2023){++d;++week;if(d>month[m]){m++;d=1;if(m>12){y++;m=1;}}if(week>7){week=1;}cnt+=judg();} printf("%d",cnt);
}int main() {//f();printf("138");return 0;
}
本题是一道填空题,唯一的测试用例是138。
NOIP 2016 普及组 回文日期
[P2010 NOIP 2016 普及组] 回文日期 - 洛谷
因为是回文日期,可以枚举日、月,转换成日期后,看这个日期是否在给定的两个年份之间,在的话则统计。
#include<bits/stdc++.h>
using namespace std;inline void turn(string& tmp, int x, int len) {tmp = to_string(x);while (tmp.size() < len)tmp = '0' + tmp;
}void ac() {size_t cnt = 0;int month[13] = { 0,31,29,31,30,31,30,31,31,30,31,30,31 };int x, y;cin >> x >> y;for (int i = 1; i <= 12; i++) {for (int j = 1; j <= month[i]; j++) {int t1 = j % 10 * 1000 + j / 10 * 100 + i % 10 * 10 + i / 10;int t2 = t1 * 10000 + i * 100 + j;if (x <= t2 && t2 <= y)++cnt;}}cout << cnt << endl;
}int main() {int T = 1;//cin >> T;while (T--)ac();return 0;
}
日期统计
19.日期统计 - 蓝桥云课
八个循环的无脑枚举。
#include <iostream>
using namespace std;
int main()
{int num[] = { 5,6,8,6,9,1,6,1,2,4,9,1,9,8,2,3,6,4,7,7,5,9,5,0,3,8,7,5,8,1,5,8,6,1,8,3,0,3,7,9,2,7,0,5,8,8,5,7,0,9,9,1,9,4,4,6,8,6,3,3,8,5,1,6,6,3,4,6,7,0,7,8,2,7,6,8,9,5,6,5,6,1,4,0,1,0,0,9,4,8,0,9,1,2,8,5,0,2,5,3,3 };int mouth[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };bool flag[13][32] = { 0 };int ans = 0;for (int a = 0; a < 100; a++){if (num[a] == 2)for (int b = a + 1; b < 100; b++){if (num[b] == 0)for (int c = b + 1; c < 100; c++){if (num[c] == 2)for (int d = c + 1; d < 100; d++){if (num[d] == 3)for (int e = d + 1, m = 0, d = 0; e < 100; e++){for (int f = e + 1; f < 100; f++){m = num[e] * 10 + num[f];if (m > 0 && m < 13)for (int g = f + 1; g < 100; g++){for (int h = g + 1; h < 100; h++){d = num[g] * 10 + num[h];if (1 <= d && d <= mouth[m]){if (!flag[m][d]){ans++;//cout<<2023<<(m*100+d)<<'\n';flag[m][d] = 1;}}d = 0;}}m = 0;}}}}}}cout << ans;return 0;
}
相关文章:
一般枚举题目合集
一般枚举题目合集 枚举NOIP 2011 提高组 铺地毯P2327 [SCOI2005] 扫雷蓝桥真题 跑步蓝桥真题 猜年龄 二进制枚举常用的技巧整理子集 - 力扣P10449 费解的开关UVA11464 Even Parity通过Virtual Judge提交代码正解 日期枚举蓝桥真题 跑步NOIP 2016 普及组 回文日期日期统计 写这段…...
MCP(Model Context Protocol,模型上下文协议)
1. 起因, 目的: MCP, 貌似最近很火,简单了解一下, 跟上时代节奏。看似是一个工具,一个新概念,其实是个鸡肋(仅仅代表个人观点)。 2. 先看效果 这里插入图片 3. 过程: 问题1, 什么是 MCP h…...
MQTT 在Spring Boot 中的使用
在 Spring Boot 中使用 MQTT 通常会借助 Spring Integration 项目提供的 MQTT 支持。这使得 MQTT 的集成可以很好地融入 Spring 的消息驱动和企业集成模式。 以下是如何在 Spring Boot 中集成和使用 MQTT 的详细步骤: 前提条件: MQTT Brokerÿ…...
uniapp使用全局组件,
在 Uniapp 中,如果你的组件是应用层组件(例如全局悬浮按钮、全局通知栏等),并且希望它自动出现在所有页面而无需在每个页面模板中手动添加组件标签,可以通过以下两种方案实现: 方案一:通过 app.…...
【三维重建】三维场景生成:综述
标题:《3D Scene Generation: A Survey》 来源:新加坡南洋理工大学 项目:https://github.com/hzxie/Awesome-3D-Scene-Generation 文章目录 摘要一、前言二、准备工作2.1 任务定义2.2 三维场景表示2.3 生成模型 三、方法:分层分类…...
怎样将MM模块常用报表设置为ALV默认格式(MB52、MB5B、ME2M、ME1M等)
【SAP系统研究】 对SAP系统中的报表,最方便的格式就是ALV了,可排序、可导出,非常友好。 但有些常见报表却不是默认ALV界面的,譬如MB52: 是不是有点别扭?但其实是可以后台配置进行调整的。 现将一些常用报表修改为默认ALV的方法进行总结,便于大家使用。 一、MB52、MB5…...
Flutter 开发入门:从一个简单的计数器应用开始
在当今快速发展的移动应用开发领域,Flutter 框架以其高效、跨平台的特点脱颖而出,成为许多开发者的首选。本文将通过一个简单的 Flutter 项目代码,带你深入了解 Flutter 开发的基本概念和流程。这个项目是一个简单的计数器应用,它…...
Python解释器、REPL与脚本的区别
用ChatGPT做软件测试 “初学者写代码,高手理解运行。” 要成为真正理解代码的人,必须透彻理解:Python 是如何运行你的代码的?解释器、REPL 和脚本之间的界限与联系究竟是什么? 一、编程学习常见误区:把“运…...
总共76dp 空出20dp然后放一个控件的写法
<FrameLayout android:id"id/bt_user_agree" android:layout_width"120dp" android:layout_height"76dp" > <ImageView android: 这里里上一个 android:layout_width"wrap_content" android:layout_height"40dp" …...
【PmHub后端篇】PmHub集成 Sentinel+OpenFeign实现网关流量控制与服务降级
在微服务架构中,保障服务的稳定性和高可用性至关重要。本文将详细介绍在 PmHub 中如何利用 Sentinel Gateway 进行网关限流,以及集成 Sentinel OpenFeign 实现自定义的 fallback 服务降级。 1 熔断降级的必要性 在微服务架构中,服务间的调…...
C#扩展方法的入门理解
public static class CanGetModelExtension {public static T GetModel<T>(this ICanGetModel self) where T : class, IModel >self.GetArchitecture().GetModel<T>(); } 前言: 在学习QFramework时,看底层框架代码注意到这个函数&#…...
HTML应用指南:利用POST请求获取全国圆通快递服务网点位置信息
圆通快递作为国内物流行业的领军企业,自2000年成立以来,始终秉持 “客户要求,圆通使命” 的服务宗旨,致力于为客户提供高效、优质的物流服务。凭借其庞大的物流网络、先进的信息技术以及卓越的运营管理,圆通快递在激烈…...
vulnhub靶场——secarmy
靶机:secarmy靶机,IP地址为192.168.230.18 攻击:kali,IP地址为192.168.230.134 靶机和攻击机都采用VMware虚拟机,都采用NAT模式 端口扫描: nmap 192.168.230.18 -O -A -p- --reason -sV 21/tcp (ftp): 开…...
Daily AI 20250514 (迁移学习与元学习)
参考资料:神经网络与深度学习 目录 迁移学习 (Transfer Learning)归纳迁移学习转导迁移学习 元学习 (Meta Learning)基于优化器的元学习模型无关的元学习(Model-AgnosticMeta-Learning,MAML&am…...
牛市买卖数字货币逻辑
在牛市中进行数字货币交易,核心逻辑是顺势而为、控制风险、把握周期。以下是关键策略和逻辑框架: 一、牛市的核心逻辑 资金驱动 牛市由增量资金(新投资者、机构资金、杠杆资金)推动,流动性充裕时,市场情绪乐…...
7.DTH11和PWM波
目录 室内/本地温湿度检测 温湿度传感器介绍 获取手册和例程的方法 从手册中提取重要信息 传感器的分类 温度传感器类型 DHT11 的介绍 温湿度传感器的接口 温湿度传感器的时序 温湿度传感器电路介绍 IO 的配置 定时器输出 PWM 波 PWM 波介绍 PWM 波的作用&#x…...
在UI 原型设计中,交互规则有哪些核心要素?
在UI 原型设计中,交互规则主要有三个核心要素,分别为重要性、原则与实践,具体表现在: 一、交互规则在 UI 原型设计中的重要性 明确交互逻辑:设计阶段制定交互规则,清晰定义界面元素操作响应。 如社交应用…...
树的直径 | 树的最长路径
树的直径: 树上任意两节点之间最长的简单路径即为树的「直径」。 定理: 在一棵树上,从任意节点 u 开始进行一次 DFS,到达的距离其最远的节点 v 必为直径的一端。 B4016 树的直径 - 洛谷 思路: 由于这题中每条边的…...
AbMole解读:脂质体的关键组分和主要合成方法
脂质体(Liposome)是一种由磷脂等两性分子自发形成的封闭囊泡结构,随着纳米技术、材料科学等多学科的交叉发展,脂质体的研究与应用进入了一个新的阶段,并在肿瘤研究、疫苗研发、基因递送等多个领域发挥着关键作用。AbMo…...
Python爬虫之品牌口碑数据抓取
上一篇我们介绍了爬虫营销的优势,这次我就展开详细的说说,如何通过爬取社交媒体或电商平台的公开评论来分析自己或竞争对手的品牌声誉。 选择微博这样的平台,因为它的数据相对公开,而且有API支持,但要注意频率限制和反…...
【android bluetooth 协议分析 12】【A2DP详解 1】【车机侧蓝牙音乐免切源介绍】
“车机蓝牙音乐免切源” 是近年来车载系统(IVI,In-Vehicle Infotainment)中常见的一个用户体验优化功能。它主要是为了简化蓝牙音乐播放流程、减少用户操作,提升使用便捷性。 一、什么是“切源”? 在车机系统中&#…...
眼镜店哪个品牌好,你会选择哪一款眼镜
有些人买眼睛是为了耍帅,有些人买眼镜,可能就是为了调节视力。现在手机以及其他的电子产品越来越普及,近视眼的人群是越来越多了,那么要准备去配眼镜的话,就要找到一个正规的眼镜店,一起来了解一下眼镜店哪…...
基于EFISH-SCB-RK3576/SAIL-RK3576的畜禽养殖监控仪技术方案
(国产化替代J1900的农业物联网解决方案) 一、硬件架构设计 多源环境感知模块 空气质量监测: 集成NH₃/CO₂/H₂S三合一气体传感器(量程0-500ppm,精度2%FS),采样间隔≤1秒激光粉尘检测…...
linux - 权限的概念
目录 用户权限 超级用户与普通用户的区别 超级用户(root): 普通用户: 切换用户身份 使用sudo执行高权限命令 用户管理 用户组管理 文件权限 文件访问者类别 基本权限 权限表示方法 权限修改 chmod chown chgrp u…...
LeRobot 框架的核心架构概念和组件(中)
本文档概述构成 LeRobot 框架的核心架构概念和组件。它介绍主要的子系统,并解释它们如何相互作用以实现机器人学习。 。。。。。。继续。。。。。。 环境接口 环境系统提供与模拟环境交互的统一接口。这些环境允许在部署到物理机器人之前,在受控环境中…...
鸿蒙5.0项目开发——鸿蒙天气项目的实现(主页1)
【高心星出品】 文章目录 页面效果:页面功能:页面执行流程:1. 页面初始化阶段2. 定位获取阶段3. 天气数据加载阶段 这个页面是整个天气应用的核心,集成了天气查询、定位、搜索等主要功能,提供了完整的天气信息服务。 …...
虚幻引擎5-Unreal Engine笔记之摄像机与场景捕获相关概念的解析
虚幻引擎5-Unreal Engine笔记之摄像机与场景捕获相关概念的解析 code review! 文章目录 虚幻引擎5-Unreal Engine笔记之摄像机与场景捕获相关概念的解析1. UE中SceneCapture和UCameraComponent的关系是什么?Camera和SceneCapture2D的关系是什么1.1 UCameraComponen…...
【vim】--- vim 插件说明 超详细持续更新中
在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。【vim】--- vim 插件说明 超详细持续更新中 开发环境一、vim 插件管理器1、Vim-Plug2…...
医学影像系统的集成与工作流优化
🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle,mysql,postgresql等进行开发应用…...
Vue 和 React 状态管理的性能优化策略对比
一、Vue 状态管理优化策略 合理使用 Vuex 模块化 将全局状态拆分为模块,按需加载,避免单一 Store 文件过大。通过命名空间隔离状态,减少状态冗余和无效更新。 const moduleA { namespaced: true, state: { /* ... */ } }; const store new …...
python打包exe报错:处理文件时错误:Excel xlsx file; not supported
背景:最近用python写一个excel解析工具,然后打包成exe可执行文件的时候,遇到这样的问题 1.在我自己编译器运行是可以正常将上传后的excel进行解析,但是在打包成exe后,就无法正常解析excel 问题排查: 1.切换…...
libmemcached库api接口讲解一
前言:好多接口的用法都不怎么会,得学习一下具体的用法 memcached_st ✅ 一个连接 memcached 服务集群的“客户端实例”对象,用于管理连接、执行读写操作、设置行为、维护哈希环等一切功能。 它在使用中通常通过下面的方式创建: …...
【RabbitMQ】发布确认机制的具体实现
文章目录 模式介绍建立连接单独确认代码实现逻辑运行结果 批量确认代码实现逻辑运行结果 异步确认实现逻辑介绍代码实现逻辑运行结果 三种策略对比以及完整代码 模式介绍 作为消息中间件,都会面临消息丢失的问题,消息丢失大概分为三种情况: …...
RabbitMQ是什么?应用场景有哪些?
RabbitMQ 是一款开源的消息代理中间件,基于 AMQP(高级消息队列协议)实现,用于在分布式系统中进行异步通信和消息传递。它通过将消息的发送者和接收者解耦,提高了系统的可扩展性、可靠性和灵活性。 核心特点 多协议支持:不仅支持 AMQP,还兼容 STOMP、MQTT 等多种消息协议…...
数学实验(Matlab符号运算)
一、符号对象的建立 Matlab符号运算特点 计算以推理方式进行,因此不受计算误差积累所带来的困扰 符号计算指令的调用比较简单,与数学教科书上的公式相近 Matlab符号运算举例 符号对象与符号表达式 在进行符号运算时,必须先定义基本的符号…...
使用 hover-class 实现触摸态效果 - uni-app 教程
目录 一、什么是 hover-class 二、常用组件支持 hover-class 三、基本 效果说明: 四、配合 hover-start-time 和 hover-stay-time 五、注意事项 六、实践建议 在移动端开发中,良好的用户交互体验尤为重要,点击或长按某个按钮时&#x…...
# 深度剖析LLM的“大脑”:单层Transformer的思考模式探索
简单说一下哈 —— 咱们打算训练一个单层 Transformer 加上稀疏自编码器的小型百万参数大型语言模型(LLM),然后去调试它的思考过程,看看这个 LLM 的思考和人类思考到底有多像。 LLMs 是怎么思考的呢? 开源 LLM 出现之后…...
Git仓库迁移
前言 前面我讲了GitLab搭建与使用(SSH和Docker)两种方式,那么就会延伸出来一个情况:Git仓库迁移虽然这种情况很少发生,但是我自己公司近期要把 阿里云迁移到华为云,那么放在上面的Git仓库也要全量迁移下面我就写了一个脚本演示&am…...
Windows避坑部署CosyVoice多语言大语言模型
#工作记录 前言 在实际部署与应用过程中,项目的运行环境适配性对其稳定性与功能性的发挥至关重要。CosyVoice 项目虽具备强大的语音处理能力,但受限于开发与测试环境的侧重方向,其对运行环境存在特定要求。 该项目在 Linux 和 Docker 生态…...
《实现模式》以Golang视角解读 价值观和原则 day 1
为什么阅读实现模式? 为什么阅读《实现模式》?Kent Beck 的《实现模式》其核心思想——编写清晰、易于理解且易于维护的代码,对于软件工程的新手而言,直接深入复杂的设计模式或架构理念可能会感到困惑。《实现模式》则弥合了设计…...
解决 PicGo 上传 GitHub图床及Marp中Github图片编译常见难题指南
[目录] 0.行文概述 1.PicGo图片上传失败 2.*关于在Vscode中Marp图片的编译问题* 3.总结与启示行文概述 写作本文的动机是本人看到了Awesome Marp,发现使用 Markdown \texttt{Markdown} Markdown做PPT若加持一些 CSS , JavaScript \texttt{CSS},\texttt{JavaScript} …...
LeetCode 820 单词的压缩编码题解
LeetCode 820 单词的压缩编码题解 题目描述 题目链接 给定一个单词列表,将其编码为一个索引字符串S,格式为"单词1#单词2#…"。要求当某个单词是另一个单词的后缀时,该单词可以被省略。求最终编码字符串的最小长度。 解题思路 逆…...
Windows软件插件-写wav
下载本插件 本插件,将PCM音频流写入WAV音频文件。或将PCM音频流压缩为ALAW格式,写入WAV文件。可以创作大文件(超过4字节所能表示的大小)。插件类型为DLL,可以在win32和MFC程序中使用。使用本插件创建的ALAW格式WAV音频…...
基于 Spring Boot 瑞吉外卖系统开发(十五)
基于 Spring Boot 瑞吉外卖系统开发(十五) 前台用户登录 在登录页面输入验证码,单击“登录”按钮,页面会携带输入的手机号和验证码向“/user/login”发起请求。 定义UserMapper接口 Mapper public interface UserMapper exte…...
【Linux高级IO】多路转接之epoll
多路复用之epoll 一,认识epoll二,epoll的相关接口1. epoll_create2. epoll_ctl3. epoll_wait 三,epoll的原理四,epoll的两种工作模式(ET和LT)1. 两种工作模式2. 对比ET和LT 五,总结 在了解到sel…...
Java 性能调优全解析:从设计模式到 JVM 的 7 大核心方向实践
引言 在高并发、低延迟的技术场景中,Java 性能优化需要系统化的方法论支撑。本文基于7 大核心优化方向(复用优化、计算优化、结果集优化、资源冲突优化、算法优化、高效实现、JVM 优化),结合权威框架与真实案例,构建从…...
“海外滴滴”Uber的Arm迁移实录:重构大规模基础设施
云工作负载在性价比上的自然演进路径: Intel ➜ AMD ➜ ARM 不信?来看看 Uber 的做法: 01/Arm架构:云计算新时代 2023 年 2 月,Uber 正式开启了一项战略性迁移:将从本地数据中心迁移至云端,…...
java加强 -File
File类的对象可以代表文件/文件夹,并可以调用其提供的方法对象文件进行操作。 File对象既可以代表文件,也可以代表文件夹。 创建File对象,获取某个文件的信息 语法: File 对象名 new File("需要访问文件的绝对路径&…...
SQL注入 ---04
1 简单的sql注入 要求: 要有sql注入: 1,变量 2,变量要带入数据库进行查询 3,没有对变量进行过滤或者过滤不严谨 mysql> select * from users where id2 limit 0,1; 当我的语句这样写时查寻到的结果 当我修改为&…...
MySQL知识点总结(持续更新)
聚合函数通常用于对数据进行统计和聚合操作。以下是一些常见数据库系统(如 MySQL、PostgreSQL、Oracle、SQL Server 等)中常用的聚合函数: 常见的数据库聚合函数: COUNT():计算指定列中非空值的数量 SELECT COUNT(*) …...