30个题型+代码(冲刺2023蓝桥杯)
愿意的可以跟我一起刷,每个类型做1~5题 ,4月前还可以回来系统复习
2月13日 ~ 3月28日,一共32天
一个月时间,0基础省三 --> 省二;基础好点的,省二 --> 省一
目录
🌼前言
🌼一,前缀和
👊(一)3956. 截断数组
🌳Time Limit Exceeded
🌳Accpted
👊(二)[NewOJ Week 1] 前缀和的因子数
👊(三)P4702 取石子
👊(四)P3056 [USACO12NOV]Clumsy Cows S
🌳栈 AC 12%
🌳栈 AC 75%
🌳栈 AC 100%
🌳前缀和 AC 100%
👊(五)P1147 连续自然数和
🌳AC 56%
🌳AC 100%
🌼二,差分
👊(一)AcWing 3729. 改变数组元素
👊(二)P2367 语文成绩
👊(三)P8772 [蓝桥杯 2022 省 A] 求和
🌼三,二分
👊(一)1460. 我在哪?
🌼四,
🌼五,
🌼六,
🌼七,
🌼八
🌼九,
🌼十,
🌼十一,
🌼十二,
🌼十三,
🌼十四,
🌼十五,
🌼十六,
🌼十七,
🌼十八,
🌼十九,
🌼二十,
🌼二十一,
🌼二十二,
🌼二十三,
🌼二十四,
🌼二十五,
🌼二十六,
🌼二十七,
🌼二十八,
🌼二十九,
🌼三十,
🌼前言
每个类型第一题来自AcWing蓝桥杯集训-每日一题
1,花5块钱
2,上洛谷找替代 / 原题
题型有
前缀和,差分,二分,双指针,递推,递归,并查集,哈希,单调队列,
KMP,Trie,BFS,DFS,拓扑排序,Dijkstra,Floyd,最小生成树,
最近公共祖先,二分图,筛质数,最大公约数,快速幂,组合计数,博弈论,
背包DP,线性DP,区间DP,树型DP,树状数组,线段树,矩阵乘法
如果你想冲省一,拿22年A组为例,你得拿60分,也就是2道填空题 + 4道编程题
5 + 5 + 10 + 10 + 15 + 15
省赛需要掌握的有:
前缀和,差分,二分,双指针,递归,递推,BFS,DFS,Dijkstra, Floyd,质数筛,最大公约数,背包dp,线性dp,区间dp,组合计数,快速幂,KMP,哈希,并查集,博弈论
围绕省赛需要掌握的类型,针对性地下手
先给大家看个时间复杂度(来源于AcWing)
🌼一,前缀和
👂 多年后再见你 - 乔洋/周林枫 - 单曲 - 网易云音乐
→ 前缀和 & 差分 - OI Wiki (oi-wiki.org)
👊(一)3956. 截断数组
3956. 截断数组 - AcWing题库
类型:枚举,前缀和,中等
还有个坑,虽然10^5 * 10^4 < int,但是由于存在1e5个0的情况,这时答案约等于1e10,就会爆int,所以ans还是开long long
按着思路枚举,将数组分为3部分,中间部分左边界i游标,右边界j游标
然后在过了所有样例的基础上,再想2组测试,可以就提交
两组测试
8
7 2 3 2 1 3 10 14
17
3 -2 1 5 -3 4 -2
1
🌳Time Limit Exceeded
#include<iostream>
#include<cstdio> //scanf()
using namespace std;
int a[100010], n;
bool check(int i, int j) //i左游标, j右游标
{int sum1 = 0, sum2 = 0, sum3 = 0;for(int m = 0; m < n; ++m) {if(m < i)sum1 += a[m];else if(m >= i && m <= j)sum2 += a[m];elsesum3 += a[m];}if(sum1 == sum2 && sum2 == sum3)return true;elsereturn false;
}
int main()
{int i, j;scanf("%d", &n);for(i = 0; i < n; ++i)scanf("%d", &a[i]); //读入数据int ans = 0; //截断方法数量for(i = 1; i < n - 1; ++i) //枚举中间部分for(j = i; j < n - 1; ++j) {if(check(i, j)) ans++;}cout<<ans;return 0;
}
当n = 100000,直接暴力会超时,下面是优化
第一次接触前缀和,本题注意几个点
1,ans开long long
2,三部分都非空
3,数据达到1e5,所以复杂度O(n^2)暴力枚举不行,至少得O(nlogn)
4,代码第17,18行,s[i]表示第一部分前缀和,s[i + 1]表示第二部分前缀和
补充一组测试
8
1 0 1 0 0 0 0 1
10
🌳Accpted
#include<iostream>
#include<cstdio> //scanf()
using namespace std;
int s[100010];
int main()
{int n;scanf("%d", &n);for(int i = 1; i <= n; ++i) { //从1开始读入scanf("%d", &s[i]);s[i] += s[i - 1]; //前缀和, s[i]表示前i项的和}long long cot = 0, ans = 0; //截断方法数量if(s[n] % 3 != 0) cout<<0;else {for(int i = 1; i <= n - 2; ++i) { //整个数组下标从1到nif(s[i] == s[n] / 3) cot++; //if(s[i + 1] == s[n] / 3 * 2) ans += cot; //}cout<<ans;}return 0;
}
解释:cot先自增,ans再加上cot,cot表示第一部分满足三等分的数量,ans表示既满足第一部分三等分,又满足第三部分三等分的情况
👊(二)[NewOJ Week 1] 前缀和的因子数
P1791 - [NewOJ Week 1] 前缀和的因子数 - New Online Judge (ecustacm.cn)
分类:基础题,欧拉,数论,前缀和
细心是关键
1,前缀和怎么求要会
2,因数怎么求要会
3,i, j游标别搞反了
AC 代码
#include<iostream>
#include<cstdio> //scanf()
using namespace std;
int s[100010];
int main()
{int n;scanf("%d", &n);for(int i = 1;; ++i) {s[i] = i;s[i] += s[i - 1]; //前缀和int sum = 0;for(int j = 1; j * j <= s[i]; ++j) { if(s[i] % j == 0 && j * j != s[i])sum += 2; //求因数else if(s[i] % j == 0 && j * j == s[i])sum++;}if(sum > n) {cout<<s[i];break;}}return 0;
}
👊(三)P4702 取石子
P4702 取石子 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
类型:前缀和,入门
一看,感觉好难,为什么才入门。。看了眼题解。。
确实入门,纯前缀和,只是前面加了个类似贪心的判断
→想要分出输赢,石子必须取完
为什么呢?因为“a0视为0”,所以。。显而易见
AC 代码
#include<iostream>
#include<cstdio> //scanf()
using namespace std;
int s[100010];
int main()
{int n;scanf("%d", &n);for(int i = 1; i <= n; ++i) {scanf("%d", &s[i]);s[i] += s[i - 1];}if(s[n] % 2 == 0) cout<<"Bob";else cout<<"Alice";return 0;
}
👊(四)P3056 [USACO12NOV]Clumsy Cows S
P3056 [USACO12NOV]Clumsy Cows S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
大概意思就是,输入偶数长度的括号,最少修改多少次,使左右匹配,也就是都朝里
第一次我用栈做(4条消息) C++ STL 之stack_buyizhu021的博客-CSDN博客_stack赋值
🌳栈 AC 12%
#include<iostream>
#include<stack> //st.push(), st.pop(), st.top()
using namespace std;
string s;
int main()
{stack<char>st;cin>>s;for(int i = 0; i < s.size(); ++i) {if(st.size() == 0)st.push(s[i]); //元素不足2个else if(st.size() >= 1) {if(st.top() == '(' && s[i] == ')') {st.pop(); //如果栈顶元素和新的元素匹配}elsest.push(s[i]); //不匹配就把新的元素入栈}}cout<<st.size();return 0;
}
原来是忘记对结果分类讨论了
如果最后剩下 ))(( 或者 ((((,都需要2次;而剩下 )((( 需要3次
🌳栈 AC 75%
#include<iostream>
#include<stack> //st.push(), st.pop(), st.top()
using namespace std;
string s;
int main()
{stack<char>st;cin>>s;for(int i = 0; i < s.size(); ++i) {if(st.size() == 0)st.push(s[i]); //元素不足2个else if(st.size() >= 1) {if(st.top() == '(' && s[i] == ')') {st.pop(); //如果栈顶元素和新的元素匹配}elsest.push(s[i]); //不匹配就把新的元素入栈}}//分类讨论int a = 0, b = 0;for(int i = 0; i <st.size(); ++i) {if(s[i] == ')') a++;if(s[i] == '(') b++;}int c = min(a, b) + (max(a, b) - min(a, b)) / 2;cout<<c;return 0;
}
找到问题了,第23,24行,应该用st[i]代替s[i],无奈栈没有这种用法,应该改用st.top(), st.pop()来操作
🌳栈 AC 100%
#include<iostream>
#include<stack> //st.push(), st.pop(), st.top()
using namespace std;
string s;
int main()
{stack<char>st;cin>>s;for(int i = 0; i < s.size(); ++i) {if(st.size() == 0)st.push(s[i]); //元素不足2个else if(st.size() >= 1) {if(st.top() == '(' && s[i] == ')') {st.pop(); //如果栈顶元素和新的元素匹配}elsest.push(s[i]); //不匹配就把新的元素入栈}}//分类讨论int a = 0, b = 0;while(!st.empty()) {if(st.top() == ')') {a++;st.pop();}else if(st.top() == '(') {b++;st.pop();}}int c;if(a % 2 == 1) c = 2 + (a + b - 2) / 2;else c = (a + b) / 2;cout<<c;return 0;
}
常犯错误了,栈就要用栈的表达,不要老想着什么st[i],日后多多复盘
#include<stack>
int main()
{stack<char>st;st.push();st.top();st.pop();if(!st.empty())......return 0;
}
🌳前缀和 AC 100%
说实话,怎么用前缀和我没想清楚,不过你可以用))((, ((((, ))))三个例子去模拟以下就知道了
#include<iostream>
using namespace std;
string s;
int main()
{cin>>s;int m = 0, n = 0;for(int i = 0; i < s.size(); ++i) {if(s[i] == '(') m++;else m--;if(m == -1) {n++;m = 1;}}cout<<n + m / 2;return 0;
}
👊(五)P1147 连续自然数和
P1147 连续自然数和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
标签:普及-,前缀和,双指针
真的就前缀和 + 双指针
🌳AC 56%
最后三个样例TLE(Time Limit Exceeded)超时了
想法是,把第8,9行代码去掉,放到第二部分里算前缀和,这样就少一个O(n)的复杂度
毕竟题目是2e6的数据?
#include<iostream>
using namespace std;
int s[10010];
int main()
{int n, i, j;cin>>n;for(i = 1; i <= 10010; ++i)s[i] = i + s[i - 1]; //前缀和for(i = 0, j = 2; i <= n / 2;) {if(s[j] - s[i] == n) {cout<<i + 1<<" "<<j<<endl;i++; //漏了会无限循环}if(s[j] - s[i] > n) //尺取法i++; //左指针if(s[j] - s[i] < n)j++; //右指针}return 0;
}
我们用sum代替前缀和的差值,注意 sum += j 和 sum -= i 与 j++ 和 i++ 的相对位置关系
🌳AC 100%
#include<iostream>
using namespace std;
int s[10010];
int main()
{int n, i, j, sum = 3;cin>>n;for(i = 0, j = 2; i <= n / 2;) {if(sum == n) {cout<<i<<" "<<j<<endl;sum -= i;i++; //漏了会无限循环}if(sum > n) {//尺取法sum -= i;i++; //左指针}if(sum < n) {j++; //右指针sum += j;}}return 0;
}
🌼二,差分
👂 自在的少年 - 要不要买菜 - 单曲 - 网易云音乐
→ 差分算法介绍_木木夕夕山的博客-CSDN博客_差分算法
→ (1条消息) 算法笔记(六):差分法_G鸦青的博客-CSDN博客_差分法
→ 前缀和 & 差分 - OI Wiki (oi-wiki.org)
→ 前缀和、二维前缀和与差分的模板小总结 - AcWing
概以括之
差分是前缀和的逆运算,假设有两个数组a[], b[],数组a是数组b的前缀和
即a[i] = b[1] + b[2] + ... + b[i],那么数组b就是a的差分数组
差分算法有什么用呢,比如给定数组a有n个元素,要求在[left, right]上,每个元素 +c,这时你可能会想,遍历一次,加c不就好了,可是这样时间复杂度达到O(n),而采用差分只有O(1)的复杂度
如果进行m次区间[left, right] +c 或 -c 的操作呢,这时遍历m次的复杂度为O(nm),而差分只需O(m)
在数据量达到1e5的情况下,直接遍历会TLE,对于OI赛制只能拿到10%~50%的分,ACM赛制0分
所以学习差分还是有必要的
具体操作
给定数组a,n个元素,我们创建数组b,为数组a的差分数组
令b[i] = a[i] - a[i - 1],因为a是b的前缀和数组
模板
#include<iostream>
using namespace std;
int n;
int a[10010], b[10010];
//插入函数
void insert(int l, int r, int c)
{b[l] += c;b[r + 1] -= c;
}
int main()
{cin>>n;//输入数据for(int i = 1; i <= n; ++i)cin>>a[i];//差分后的数组bfor(int i = 1; i <= n; ++i)insert(i, i, a[i]);//执行操作int l, r, c;cin>>l>>r>>c;insert(l, r, c);//输出操作后数组for(int i = 1; i <= n; ++i) {b[i] += b[i - 1]; //前缀和cout<<b[i]<<" ";}return 0;
}
执行m次只需在“执行操作”那里,加个while(m--),不过我更习惯while(m){ ......m--; }
8
1 2 3 4 5 6 7 8
2 5 3
1 5 6 7 8 6 7 8
先记套路,你可以假设1 3 5 7的数组a,经过insert()函数后,得到的数组b就是1 2 2 2,数组b的前缀和就是原来的数组a
👊(一)AcWing 3729. 改变数组元素
3729. 改变数组元素 - AcWing题库
标签:中等,差分,区间合并
题目没给初始数组,所以我们只需要差分数组b
第二是,我们假定初始长度就为n,用一个for(int i = 1; i <= n; ++i)循环遍历1~n
如果输入的x大于等于当前的长度 i ,就对所有元素执行insert操作
如果输入的x小于 i ,只需要insert(i - x + 1, i),i 表示最后一个元素
#include<iostream>
#include<cstdio> //scanf(), printf()
#include<cstring> //memset()
using namespace std;
int b[200010]; //题目中没有给定初始数组,所以不需要数组a
void insert(int l, int r)
{b[l] += 1;b[r + 1] -= 1; //套路
}
int main()
{int t, n;scanf("%d", &t);while(t) {scanf("%d", &n);memset(b, 0, sizeof(b)); //初始化//执行操作for(int i = 1; i <= n; ++i) {int x;scanf("%d", &x); //每输入一个数, 就操作一次if(x == 0) continue; //跳过本次else if(x >= i) insert(1, i); //全部操作一次else insert(i + 1 - x, i);}for(int i = 1; i <= n; ++i)b[i] += b[i - 1]; //前缀和得到操作后的数组for(int i = 1; i <= n; ++i) {if(b[i] <= 1) printf("%d ", b[i]);else printf("1 "); //如果大于1就输出1}printf("\n");t--;}return 0;
}
👊(二)P2367 语文成绩
P2367 语文成绩 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
标签:普及/提高-
这是一道最简单模板题,不需要变形,直接套模板就能AC
不开O2优化就AC 80%,开了AC 100%
能直接套模板的题,基本一次过,而且耗时才几分钟
#include<iostream>
#include<cstdio> //scanf(), printf()
using namespace std;
int a[5000010], b[1000010];
void insert(int l, int r, int c)
{b[l] += c;b[r + 1] -= c; //模板
}
int main()
{int n, p;scanf("%d%d", &n, &p);for(int i = 1; i <= n; ++i)scanf("%d", &a[i]); //初始分数for(int i = 1; i <= n; ++i)insert(i, i, a[i]); //逆前缀和while(p) { //p次操作int l, r, c;scanf("%d%d%d", &l, &r, &c);insert(l, r, c);p--;}for(int i = 1; i <= n; ++i)b[i] += b[i - 1]; //前缀和int Min = 1e9;for(int i = 1; i <= n; ++i)Min = min(Min, b[i]); //找最小值printf("%d", Min);return 0;
}
👊(三)P8772 [蓝桥杯 2022 省 A] 求和
P8772 [蓝桥杯 2022 省 A] 求和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
标签:普及-,前缀和,差分
虽然标签有差分,但我觉得,它只考了前缀和
temp = 数组a[i]的前缀和,然后用a[i] * temp。暴力的话只能AC 70%
temp = a[1], sum += a[2] * a[1]
temp = a[1] + a[2], sum += a[3] * (a[1] + a[2])
temp = a[1] + a[2] + a[3], sum += a[4] * (a[1] + a[2] + a[3])
......
#include<iostream>
using namespace std;
int a[200010];
int main()
{int n;cin>>n;for(int i = 1; i <= n; ++i)cin>>a[i];long long sum = 0, temp = a[1];for(int i = 2; i <= n; ++i) {sum += temp * a[i];temp += a[i];}cout<<sum;return 0;
}
🌼三,二分
👂 活着 - 郝云 - 单曲 - 网易云音乐
→ 二分算法学习_码龄?天的博客-CSDN博客
→ OI Wiki - OI Wiki (oi-wiki.org)
模板
int binary_search(int left, int right, int key)
{int ret = -1; //未搜索到数据返回-1下标int mid;while(left <= right) {mid = left + ((right - left) >> 1); //避免溢出,用该算法if(key > a[mid]) left = mid + 1;else if(key < a[mid]) right = mid - 1;else { //最后检测相等ret = mid;break;}}return ret; //单一出口
}
要用二分算法,首先判断
1,能不能用, 即是不是一个有序数组,这里的“有序”是广义的有序,也就是一个数组中,某个点左侧或右侧都满足某一条件,而另一侧不满足
2,其次判断,左右边界是什么
👊(一)1460. 我在哪?
1460. 我在哪? - AcWing题库
标签:简单,二分,哈希
原文是“最小的K值,使任意连续K个,唯一”,比如样例ABCDABC中,有人问为什么CD确定不了2呢,因为任意2个里面,包含AB,而AB的位置显然不是唯一的,3个的话也存在ABC重复,所以只能4个
方法一:二分 + 哈希 ,但是我不会哈希,想了半小时只用二分没结果
方法二:利用set中,元素不重复的特点,但是没想明白怎么做
方法三:考虑到数据量不大,还是暴力 + s.substr() + s.find()
(9条消息) C++中s.find()和s.rfind()的用法_暖风有凉意的博客-CSDN博客_s.find
1,s.find(str)或s.find(str, pos)要与 != string::npos连用,最后没有找到子串的话,会返回
string::npos
2,s.substr(i)从下标 i 开始到结尾,s.substr(i, j)从下标 i 开始截取 j 个字符
string s1 = s.substr(j, i);
if(s.find(s1, j + 1) == string::npos)
//没有找到子串, 返回string::nposif(s.find(s1, j + 1) != string::npos)
//找到子串
#include<iostream>
#include<cstring> //s.substr(), s.find()
using namespace std;
int main()
{int n;cin>>n;string s;cin>>s;for(int i = 1; i <= n; ++i) { //i表示截取长度int flag = 1;for(int j = 0; j < n - i; ++j) { //j为截取起始坐标string s1 = s.substr(j, i); //下标j开始截取i个字符if(s.find(s1, j + 1) != string::npos) //j + 1flag = 0;}if(flag) {cout<<i;break;}}return 0;
}
🌼四,
👂 就是我 - 林俊杰 - 单曲 - 网易云音乐
🌼五,
👂 菲菲 - 沈以诚 - 单曲 - 网易云音乐
🌼六,
🌼七,
🌼八
🌼九,
🌼十,
🌼十一,
🌼十二,
🌼十三,
🌼十四,
🌼十五,
🌼十六,
🌼十七,
🌼十八,
🌼十九,
🌼二十,
🌼二十一,
🌼二十二,
🌼二十三,
🌼二十四,
🌼二十五,
🌼二十六,
🌼二十七,
🌼二十八,
🌼二十九,
🌼三十,
相关文章:

30个题型+代码(冲刺2023蓝桥杯)
愿意的可以跟我一起刷,每个类型做1~5题 ,4月前还可以回来系统复习 2月13日 ~ 3月28日,一共32天 一个月时间,0基础省三 --> 省二;基础好点的,省二 --> 省一 目录 🌼前言 🌼…...

快速且有效减小代码包的方法
前言当我们在发布一些APP或者小程序等比较小的程序时候,常常会对其主包大小进行一定的规定,若超过推荐的主包大小则性能会被大大影响,或者再严重一点就不给你过审。如微信小程序中也对主包有一定的大小要求。对此一些比较复杂的小程序就需要考…...

基于matlab评估星载合成孔径雷达性能
一、前言本示例展示了如何评估星载合成孔径雷达 (SAR) 的性能,并将理论极限与 SAR 系统的可实现要求进行比较。SAR利用雷达天线在目标区域上的运动来提供更精细的方位角分辨率。给定雷达的主要参数(例如工作频率、天线尺寸和带宽&…...

Linux_基本指令
新的专栏Linux入门来啦!欢迎各位大佬补充指正!! Linux_基本指令导入文件绝对路径与相对路径隐藏的文件指令ls查看stat查看文件属性cd进入路径mkdir创建目录touch创建文件rm删除man查询手册cp复制mv移动cat查看文件morelessheadtail时间相关的…...

Keras深度学习实战——使用深度Q学习进行SpaceInvaders游戏
Keras深度学习实战——使用深度Q学习进行SpaceInvaders游戏 0. 前言1. 问题与模型分析2. 使用深度 Q 学习进行 SpaceInvaders 游戏相关链接0. 前言 在《深度Q学习算法详解》一节中,我们使用了深度 Q 学习来进行 Cart-Pole 游戏。在本节中,我们将利用深度Q学习来玩“太空侵略…...

从事架构师岗位快2年了,聊一聊我对架构的一些感受和看法
从事架构师岗位快2年了,聊一聊我和ChatGPT对架构的一些感受和看法 职位不分高低,但求每天都能有新的进步,永远向着更高的目标前进。 文章目录踏上新的征程架构是什么?架构师到底是干什么的?你的终极目标又是什么&#…...

零基础机器学习做游戏辅助第十二课--原神自动钓鱼(二)
一、模拟训练环境 上节课我们已经能够判断人物的钓鱼状态,接下来我们就需要对鱼儿上钩后的那个受力框进行DQN训练。 方案有两个: 使用卷积神经网络直接输入图像对网络进行训练。使用普通网络,自己写代码模拟出图像中三个点的动态并把值给神经网络进行训练。这里我们选用第二…...

MapReduce paper(2004)-阅读笔记
文章目录前言摘要(Abstract)一、引言( Introduction)二、编程模型(Programming Model)三、实现(Implementation)3.1、执行概述(Execution Overview)3.2、主节点数据结构(Master Data…...

【蒸滴C】C语言指针入门很难?看这一篇就够了
目录 一、前言 二、指针是什么 小结: 三、指针变量是什么 小结: 四、指针在32位机器和64位机器中的差别 32位机器: 64位机器: 小结: 五、指针和指针类型 (1)指针的意义 (2ÿ…...
C++11新的类功能
文章首发公众号:iDoitnow 1. 特殊的成员函数 C11在原有的4个特殊成员函数(默认构造函数、复制构造函数、复制赋值运算符和析构函数)的基础上新增了移动构造函数和移动赋值运算符。这些特殊成员函数在各种情况下是会通过编译器自动提供的。 …...

Laravel创建定时任务
创建一个任务,创建成功后会在App/Console/Commands中生成一个以Test命名的文件,我们可以在这里面写我们的任务指令。 php artisan make:command Test 运行这个定时任务 run 是运行一次,我们可以用来测试是否成功,work是一直运行&a…...
SaveInstanceState
1. 保存与读取当前状态,MainActivity.java public class MainActivity extends AppCompatActivity {private String TAG "MyLog";TextView textView;Button button;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedI…...
Fluent Python 笔记 第 16 章 协程
从句法上看,协程与生成器类似,都是定义体中包含 yield 关键字的函数。可是,在协程中,yield通常出现在表达式的右边(例如,datum yield),可以产出值,也可以不产出——如果 yield 关键字后面没有表…...
山东科技大学校历 代码分析 获得以前学期学年的老版校历
校历-山东科技大学网络安全与信息化办公室http://tech.sdust.edu.cn/wlfw/xl.htm JavaScript var studyStart new Date(2021, 8-1, 30);//8-1 -1没有意义,30代表30号,2021年8月30号开始这个学期 var commonWeeks 19;//这个学期有多少周 var s…...

第五章.与学习相关技巧—权重初始值(随机初始值,Xavier初始值,He初始值)
第五章.与学习相关技巧 5.2 权重初始值 本节将介绍权重初始值的推荐值,并通过实验确认神经网络的学习是否会快速进行。 1.权值衰减 权值衰减就是一种以减少权重参数的值为目的进行学习的方法,通过减少权重参数值来抑制过拟合的情况发生。 2.权重初始值不…...

Linux进程间通信(管道)
进程间通信的目的 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源。 通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如…...
写一个基于node.js的api后台管理系统(三)
创建登录页面 在项目目录下创建一个名为public的文件夹,并在其中创建一个HTML文件login.html。添加以下代码: <!DOCTYPE html> <html> <head><title>Login - Task Management</title> </head> <body><h1…...

【23种设计模式】行为型模式详细介绍(上)
前言 本文为 【23种设计模式】行为型模式 相关内容介绍,下边将对访问者模式,模板模式,策略模式,状态模式,观察者模式,备忘录模式,中介者模式,迭代器模式,解释器模式&…...

PID控制算法进阶
关于PID控制算法基础概念在本文不再重复了,详情可参考:PID控制算法基础介绍 本文主要从PID算法代码实现,代码解析,理论进阶,PID调参等方向进行阐述。 目录位置式PID和增量式PID1.1 位置式PID1.2 增量式PID1.3 位置式和…...
嵌入式工程师有什么值得一看的网站和书籍吗?
原文直达: 嵌入式工程师有什么值得一看的网站和书籍吗? - CodeAllen的回答 - 知乎 https://www.zhihu.com/question/68423119/answer/2885623392 我是资深网站保存爱好者,浏览器分门别类存了应该有几百个网址,关于嵌入式的也有很…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...

Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...
在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7
在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤: 第一步: 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为: // 改为 v…...
[USACO23FEB] Bakery S
题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC 的时间内生产一块饼干或在 t M t_M tM 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC,tM≤109)。由于空间…...
Linux安全加固:从攻防视角构建系统免疫
Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...
2.2.2 ASPICE的需求分析
ASPICE的需求分析是汽车软件开发过程中至关重要的一环,它涉及到对需求进行详细分析、验证和确认,以确保软件产品能够满足客户和用户的需求。在ASPICE中,需求分析的关键步骤包括: 需求细化:将从需求收集阶段获得的高层需…...