随笔分类 - 练题题库
看懂了不代表能写出来, 能写出来不代表自己会了. 自己写和练题是必修课, 不要跳过任何一步
摘要:刷题真的有用,只要是做过了这个题就稳稳的啊 #include <iostream> using namespace std; typedef long long LL; int last[200]; int main() { string s; cin >> s; int n = s.size();
阅读全文
摘要:众所周知,特别地,定义 0!=1 例题在这里:传送门 level 0 一开始的思路必然是挨个算组合数,但是那样必然会超时 level 1 组合数递推法: 故: \(C_n^m=C_{n-1}^{m-
阅读全文
摘要:p4017 拓扑排序 参考dl的博客 看的是可能会Mle的邻接矩阵 那个f[i]是指到i的边数,所以最后满足从入度为0到出度为0加的那个f[i]就是答案 #include<bits/stdc++.h> using namespace std; int n,m,ru[5005],chu[5005],a
阅读全文
摘要:新年快乐啊!现在感觉原来过年就是找个理由不学习啊!!!! 但是学习还得继续,,,呜呜呜,长期生活在舒适圈别走不出来 p5318 这个题其实考的就是图的遍历(废话),但是存点的时候可以用一个vector把每个点的下一个链接存起来 邻接矩阵可能会爆内存!!! // //created by Arc on
阅读全文
摘要:昨天光顾着聊天忘记存盘了,写到一半的blog就,,,没了 今天主要是绿题怕怕, 主要是两个集合之间的东西,,,比如并查集 P1982 反集: 如果a和b是敌人,合并n+b和a,n+a和b 如果c和a是敌人,合并n+c和a,n+a和c 那么b和c就并在一起了 这样就符合了题目敌人的敌人是朋友的规则 #
阅读全文
摘要:补充一下二叉树基础 二叉树的储存 考虑一个二叉树的每个节点都有两个子节点,所以我们可以考虑用一个结构体来存储: struct node { int left, right; }; node tree[MAX] 二叉树的遍历 编号为1的节点是二叉树的根节点。 于是我们可以从根节点出发,先递归遍历该节点
阅读全文
摘要:学个前缀和的进阶 致谢dalao 首先要知道lowbit : int lowbit(x){return x&(-x);} 操作一共就俩 单点更新 //x为更新的位置,y为x要加的数,n为数组最大值 void update(int x,int y,int n){ for(int i=x;i<=n;i+
阅读全文
摘要:https://leetcode-cn.com/problems/get-equal-substrings-within-budget/ 滑动窗口模板题 class Solution { public: int equalSubstring(string s, string t, int maxCo
阅读全文
摘要:643 of leetcode class Solution { public: double findMaxAverage(vector<int>& nums, int k) { double len=nums.size(); double sum_now=0; double sum_max=0;
阅读全文
摘要:BZOJ4195 debug了好久都快烦了呜呜呜呜呜呜呜呜呜呜 // // Created by Arc on 2021/2/3. // #include <bits/stdc++.h> #include <unordered_map> using namespace std; typedef pa
阅读全文
摘要:今天养老了,stl简单题,,,就多看看别人大佬的思路吧 p3613 这个题用的是一个比较巧妙的方法,就是参考dl的博客,,,因为数据范围只有1e5,所以你可以通过第一维*1e5+第二维来表示,这样就用一个map就可 #include <bits/stdc++.h> using namespace s
阅读全文
摘要:想做简单的普及-的题寻找自信,结果还丧失了自信 p1605 一开始满屏MLE了,然后想了想emmm大概是一开始移动的时候开了两个数组dx dy的原因,然后就改成一个数组过了 #include<iostream> #include<algorithm> #include <vector> #inclu
阅读全文
摘要:话说今天本来想学一下dfs的剪枝技巧的 结果感觉啊啊啊啊这都些什么玩意还是回归最质朴的dfsbfs吧 注意传参问题,,, - 如果你在函数的参数里写了一些参数,可以节省空间。 - 比如,第二题选数,你可能要开一个vector记录选出来的数,但实际上你只需要在参数里加一个sum,每次更新sum+a[i
阅读全文
摘要:最近哈,最近发现有一点点怯题,,就是一做题就怕错,,,,,,战胜困难的最好的办法就是面对他!!!刷题走起!还是最容易抠细节的二分~~ 有一个范围,并且数据比较大,并且有递增递减关系,,,,二分 注意!一般得开long long //二分模板 while(left<=right){ int mid=(
阅读全文
摘要:这是俺第一次正式接触图论了吧,储存边权啥的emmmm,还是个写bug机器啊 p.s.感谢leetcode 打卡 来 这个题其实一开始是想dfs,bfs那种搜索 但是太慢了(倒是官方题解那里用了二分,然而二分的细节处理1551) 所以用了并查集(还是照别人的题解描摹的) 思路写代码里了呜呜呜 #inc
阅读全文
摘要:这个deque,caiji整整看了俩小时,,,正所谓代码不长,句句皆精华,, deque 双向队列,支持双向进入 典型例题 滑块问题 题目传送门 一个中心: 维护一个队列,这个队列是单调的。 两个基本点: 在一开始的时候,要判断长度与给定滑块长度的关系,如果超过了长度,则使队头出队 满足第一点后,与
阅读全文
摘要:给定整数N(1<=N<=10^6),试把N!分解成质因数,按照算数基本定理的形式输出分解结果中的pi和ci 这样分析的话,其实把阶乘算出来再搞是必然超时的 对于每个质因子p,就相当于1N每个数包含的质因子p的和。在1Nz中包含1个质因子的有N/p个,p2则为N/p2,,,,,以此类推 所以N!中质因
阅读全文
摘要:题目参考 小蓝p50 对顶栈/堆用于在序列中间某个指定位置进行修改 #include <iostream> #include <stack> #include<algorithm> #include <cstring> using namespace std; const int f=-0x3f3f
阅读全文
摘要:想吐槽一句,我是多少年没有看字符串了呀,,,,,居然真就.... 1 class Solution { 2 public: 3 int repeatedStringMatch(string A, string B) { 4 5 int ans = 1; 6 string tmp = A; 7 int
阅读全文
摘要:九月首发,教师节快乐呀! 这个题,数字可以重复选,那就直接回溯呀!!! class Solution{ vector<int> res; vector<vector<int>> ans; public: void combine(vector<int>& candidates, int target
阅读全文