暑期集訓第五周

一、本周小結

1.手速賽dayday,難度有點大啊....

2.百度之星+1

3.兩場周賽,尊邸,很多啊!!!!

4.收穫++:

  1. 区间的数字中包含x的个数,先暴力求每个数字是否符合条件 ---> 前缀和计算区间个数
  2. 小数的除法计算=含小数的分数化简---->几位小数x*1ek化成整数,再分子分母求gcd,a/gcd(a,b)  /  b/gcd(a,b)
  3. 并查集,归属集合AorB,不可归属A的归属到n+1,不可归属B的,归属到0,若p[0]==p[n+1]说明有数字不归属A显示归属到n+1,且不归属B,n+1归属到0。
  4. tips:下标来进行归属的单位,而不是父亲结点--->子找父,父认祖归宗!
  5. 矩阵求abs(derx+dery)的可以计算行和列的总值再计算----> 数学式子的合并与拆分
  6. 下午cf也遇到了一个a1-a2>=b1-b2  ---> 可以拆成a1-b1>=a2-b2  ----> 只需要竖着减就可以了---->原味也是同样的道理
  7. 排列组合的题目:c(m-1,n-1)*m!
  8. 长度为n的数列能否分成两组,使得两组的奇偶性一致:1.有奇有偶  ----> 奇数个奇数不行;2、全奇--->奇数个奇数不行 ;3.全偶 ---> 都可以
  9. cnt1,cnt2,判断数量 / 和为奇数,不行! 其他可以
  10. 四舍五入,遇到>=5的数字,前一位+1,后面归0:从后往前遍历,前面的能五入就尽量五入,前面的值尽可能增到最大,如果不能五入就不用管
  11. 预处理s,使s是原来数字进行四舍五入后的结果,再用ans来存储答案,从前往后遍历,若数字五入使前一个数值增加,且退出,若没有则原数字存入。
  12. 每一对cp比较挑出较小值存入数组b中,那么较小值从小到大排序,它的个数就是贡献的数量,有t个,数组往前移动t个点,再更新数字
  13. 数学式子的交换律+入度为0的点,也就是值最大的点的个数
  14. a1+a2<=k   ------>转换为求最短路,虚点连接所有点,2指向1,求最短路!

5.下周計劃:刷爆ccf真題!

6.預告周一收穫++:

1.思考問題不是從算法推思路,而是看著題目要求什麽來想最簡單最暴力的辦法是什麽,然後再想可以怎麽優化這個寫法。比如:

  • AcWing 3192. 出现次数最多的数 878人打卡

題目:

给定 n个正整数,找出它们中出现次数最多的数。

如果这样的数有多个,请输出其中最小的一个。

數據範圍:

1≤n≤1000,
1≤si≤10000;

数据范围很小,O(N)一遍也就10000。用最简单的存数字来遍历个数。

  • AcWing 3193. ISBN号码 769人打卡

马蜂的改变--->重复次数>=2次的变量存一下好用---->在原始字符串上改变一个字符然后输出

  • AcWing 3194. 最大的矩形 705人打卡
数据范围

1≤n≤1000,
1≤hi≤10000

O(N^2)也才1e6---->大可从点为中间开始往左,往右遍历寻找边界

tips:优化:一开始的思路的思路很乱,想着第i点的左边如果比它高可行,比它矮,不可行,遇到矮的点死翘翘,甚至说思路很歪,但是如果稍微拐一拐,我们也能成的,怎么说。已经想到了要从第i点的左右两边开始找,且我们也知道了就像水桶问题一样,每一次我们都把第i个高度当成短板,也就是左边的数值只能>=hi,遇到<hi的数值【我要当菜鸡,休想争!】就停止。右边同理。这类问题由于变化多样性,我们要从多样中找一个固定的可以涵盖所有情况的数据,那么就是遍历一遍每一个点的高度的最大面积是多少【目前学到的简单dp也是这样子,用一个状态来遍历使得涵盖所有的情况,再从所有情况里面取最优解】那么,每次为了满足短板而舍弃长板的行为,难道不就是!!!单调栈!让原本凹凸不平的数据,我栈内的数据一定要单调递增,如果无法让即将进入的元素与前面的形成递增,含泪舍去!

用vector<int>q来实现单调栈要注意:是q.back()而不是front!!!!!

用stack<int>q来实现单调栈要注意:是while不是if!!!!!

  • AcWing 3195. 有趣的数 482人打卡

数据范围:4≤n≤1000     可以O(n^2)解法来求C(n,m);

for(int i=0;i<=n;i++)
	    for(int j=0;j<=i;j++)
	    {
	        if(j==0) c[i][j]=1;
	        else c[i][j]=c[i-1][j]+c[i-1][j-1];
	    }

这是一道组合数的题目:好妙的求C(n,m)的办法--->C(n,m)=C(n-1,m)+C(n-1,m-1);O(N^2)可以求C(n,m)!

插入插入插入.....0,1组合一共占k个坑,2,3组合只有n-k个坑可以占,由于0不能在开头,第1个坑一定属于2,3组合so....选择的方案数有C(n-1,k),01组合内部的0又可能可以有【1,2,3,4,.....n-1】个一共k-1种,23组合同理有(n-k-1)种,所以总共就是C(n-1,k)*(k-1)*(n-k-1)咯!

  • AcWing 3196. I’m stuck! 394人打卡

和百度之星的A,B从不同起点开始,求共同到终点的最少消耗的题目注意区分,上一题从终点到其他点的路径的方向是双向边,a->b,一定有b->a,但是这一题是:a是可以左右,b是可以四周,如果b->a合理,那么a->b是否合理,若合理那么a是合法的,若不合理,那么a是不合法的。从x,y到a,b是否合理用check(x,y,i)。从x,y能否有a,b这条路径来到用check(a,b,i)。

有趣!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值