02 2022 档案
摘要:搬家到CSDN啦~~~🎆 https://blog.csdn.net/m0_60137414?spm=1000.2115.3001.5343(新家地址)
阅读全文
摘要:T1:排队接水 排队接水这道题当之无愧是我错的最惨的一道题,由于答案的省略,我至今不知道源代码错在哪,甚至一度怀疑自己橙题都做不出来。后来改long long,改空格,重写了一遍才过。 查看代码 #include <bits/stdc++.h> using namespace std; int n;
阅读全文
摘要:T1:奶牛晒衣服 就湿度大的优先烘干 加工生产调度 emmm写他的时候突然想起来学长带着做题时有一个什么产工件的题,其中有一个题解用洗衣机和烘干机模拟 A B 工程。那时候我以为作者大抵是闲的,现在看到此题才明白过来 另外复习一下优先队列 priority_queue<int> a;//默认小根(大
阅读全文
摘要:T1:划分数列 设 fi表示从一到 i 最少可以划分的段数,fi =min ( fbi−1 , fci−1 ) +1 bi 表示以 i 结尾单调递增的一段的起点,ci 表示以 i 结尾单调递减的一段的起点 查看代码 int n,last,a,b[100005],c[100005],f[1
阅读全文
摘要:前情见半年前的《为什么我总写不出递推》 emmm之前还说什么一看题解就会,现在是看了题解就知道考场上打死也想不出来(还有开long long !!!) 把问题分层,分成无数的子问题 根据递归 递推的定义,问题应具有子母问题解决方案一致的性质 找出第n想与他的前几项之间的关系,就是递推式(打表找规律不
阅读全文
摘要:单点修改+区间求和 考虑用lazy数组标记,当我们需要对点k所对应的区间加v时,我们不递归k的左右子树更新其内部值,而是选择lazy[k]+=v,代表这段区间已经加过v了。当我们在查询和修改中遇到一个有懒标记的点k时,由于其子树内部的值还未被更新,我们需要将懒标记的影响下传到子树中,并将懒标记清空。
阅读全文
摘要:在图论中出过一些 emmmmm很难以接受的事情。就打个比方,据说某程序链式前向星初始值为 -1 的时候 RE ,改为 memset(head,0,sizeof(head)); 成功 AC。在比如某树形DP中,由于忘记让出度=入度而WA了无数次。 重建道路 所以,综上, 自己记住谁初始值是啥,尤其是链
阅读全文
摘要:反过来调过去,我还是感觉没学明白缩点 讲一个有向图中的所有强连通分量缩成一个点后,构成的新图是一个DAG。 一个点所在的强连通分量一定被该点所在DFS搜索树所包含 树上的边大致分为:树枝边,前向边(从上往下指),后向边(从下往上指),横叉变。其中前向边肉眼可见地没什么卵用 接下来开始算法流程。 ta
阅读全文
摘要://线段树:单点修改+区间求和 #include<bits/stdc++.h> #define ll unsigned long long using namespace std; ll n,m,a[1000010],ans[2000010],tag[2000010]; ll ls(ll x) {
阅读全文
摘要:在求区间最值,区间最大公约数时ST表时很好的选择。 ST表其实就是二分求值,但是分区间可能重叠,所以不能处理重叠对答案有影响的问题(区间求和等) #include<bits/stdc++.h> using namespace std; int n,m,Log[2000010],f[2000010][
阅读全文
摘要:【模板】树状数组 1 【模板】树状数组 2 前置芝士 电脑存数时用二进制(废话),正常环境下int占4字节,一字节含8比特位,数据范围在-2147483648 ~2147483648 之间,加上unsigned不管负数就可以开到4294967296,long long 更狠,开到 -92233720
阅读全文
摘要:[NOIP2013 提高组] 货车运输 先考虑建最大生成树,但单次查询复杂度O(n),于是用LCA的O(nlogn)预处理一下 #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f const int maxn = 10
阅读全文
摘要:int LCA(int x,int y) { if(dep[x]<dep[y]) swap(x,y); for(int i=20;i>=0;i--) if(dep[f[x][i]]>=dep[y]) x=f[x][i]; if(x==y) return x; for(int i=20;i>=0;i-
阅读全文
摘要:搜出一个入度为 0 的点 推出该点并删除其所有边 一直循环直至图空了或者找不到入度为 0 的点(有环)拓扑排序通常用来“排序”具有依赖关系的任务。
阅读全文
摘要:强连通块只存在于有向无环图DAG中 实际上low[i]的理解是:一个强连通块在dfs搜索树中子树的根节点 //把一个点当成根提溜出来,抖搂抖搂成一棵树 void dfs(int u) { //记录dfs序 //可通过任意多dfs边与最多一条非树返祖边到达的、本强连通分量内最小点 dfn[u]=low
阅读全文
摘要:欧拉回路用于处理图中从某一点是否能不重复边地走到另一点。考虑第 i 个点入度为 n ,那么因为边不可重复,出度也一定为 n (起点终点除外)。 实现的过程可以模拟删边 (摘自Marsrayd 的题解) #include <bits/stdc++.h> using namespace std; con
阅读全文
摘要:floyd 是一种动态规划算法,稠密图效果最佳,边权可正可负 他的原理在于用邻接矩阵存任意两点之间的最短路径,适用于多源最短路,点与点之间: 自己到自己——dis=0; 自己到别人——找一mid,随机二分,就一区间DP //k为中间点 for(k = 0; k < G.vexnum; k++) //
阅读全文
摘要:int find(int x) { if(f[x]==x)return x; return f[x]=find(f[x]); }//查找 void merge(int x,int y) { x=find(x); y=find(y); if(x!=y)f[x]=y; }//合并 通常放在int mai
阅读全文
摘要:#include<bits/stdc++.h> using namespace std; int d,n,dp[1010]; struct node{int t,f,h;} a[1010]; bool cmp(node aa,node bb){ return aa.t<bb.t; } int mai
阅读全文
摘要:T1数字三角形 f[i][j]=max(f[i+1][j],f[i+1][j+1])+a[i][j];//其中i自下向上,因为上受下影响 T2过河卒 if((i!=1||j!=1)&&!vis[i][j]) step[i][j]=step[i-1][j]+step[i][j-1]; T3最长公共子序
阅读全文
摘要:#include<bits/stdc++.h> using namespace std; int l,n,m,a[100010];//与起点的距离 bool check(int d) { int last=0,cnt=0; for(int i=1;i<=n;i++) { if(a[i]-last<d
阅读全文
摘要:#include<bits/stdc++.h> using namespace std; int n,ans1,ans2,f1[300][300],f2[300][300]; int sum[300],num[300]; int main() { scanf("%d",&n); for(int i=
阅读全文
摘要:#include<bits/stdc++.h> using namespace std; int n,a[100010],b[100010],ans; int f[100010],mp[100010]; int main() { scanf("%d",&n); for(int i=1;i<=n;i+
阅读全文
摘要:笑死 不开long long 见祖宗 #include<bits/stdc++.h> using namespace std; int n,m,k,dis[1010]; struct node{ int t,u,v; }a[100010]; int sum[10100],maxx;//每站人数 最多
阅读全文
摘要:代码: 把在A车间加工时间最短的部件最先加工,这样使得B车间能更快开始加工,把在B车间加工时间最短的部件最后加工,这样使得A车间的空闲时间最短 #include<bits/stdc++.h> using namespace std; int n,ans[100010],t[100010],a[100
阅读全文
摘要:两种想法: (样例是真的良心,卡掉了两种错误做法)洗完一件马上塞一件到最快的空闲烘干机去?X,因为最后一件洗完的衣服决定了第二问的答案,但它并不一定得到最优待遇——最快的烘干机。 给最后一件洗完的衣服配最快的烘干机就是答案?X,最后一件烘干的衣服并不一定是最后一件洗完的衣服 那么正解:对于从后往前的
阅读全文
摘要:思路清奇,代码简洁的好题 问题大体分两部: 记录子矩阵个数,统计每一个点作为右下角时可以得到多少矩形,加起来就是答案 剪掉墙挡住的地方 考虑从右下角开始,如果有0已经挡住了矩阵,那么更靠左、上的0都卵用没有->单调栈 #include<bits/stdc++.h> using namespace s
阅读全文
摘要:emmm前缀和真香,就是注意h[]解决负数导致的上一个前缀比下一个大 #include<bits/stdc++.h> using namespace std; long long n,a[1000010],q[1000010],miq[1000010],h[1000010],ans; int mai
阅读全文
摘要:代码: #include<bits/stdc++.h> using namespace std; long long n,c,ff,ans; long long suma[200010],sumb[200010];//前 后 struct score{ long long a,b; }s[20001
阅读全文
摘要:代码:(输入函数很香建议保留)我不理解他是绿的但 The Blocks Problem 是黄的 #include<bits/stdc++.h> using namespace std; int in[100010],post[100010],l[100010],r[100010]; int n,be
阅读全文
摘要:麻麻我更委屈了!!! 天平(即风铃)AC代码:两个答案之间空行隔开也就罢了,为嘛最后一行还不能多空行?! #include<cstdio> using namespace std; bool solve(int &w){ int w1,d1,w2,d2; bool b1=1,b2=1; scanf(
阅读全文
摘要:🙂UVA是什么牛马 注册了无数次后终于成功,与洛谷绑定1:54~2:40 绑定后登不上去+洛谷日爆3:00~4:30 瑞瑞的木板就是合并果子,就是我靠sort水过二叉堆的那个 暴力代码: #include<bits/stdc++.h> using namespace std; int main()
阅读全文
摘要:点击查看代码 for(int i=1;i<=n;i++) { for(int j=i;j<=min(i*2,n);j++) } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j+=i) } for(int i=1;i<=n;i++) { for(int j=1;j
阅读全文
摘要:emmmm ybt 字符串处理 例2题解错了 AC自动机板子错了(据说) 另外字符串处理的题解写的我一脸懵逼 网站上eeeee 点击查看E. 1.排队接水 #include <iostream> #include <cstdio> #include <algorithm> using namespa
阅读全文
摘要:原来错一道题可能不止错在少剪枝,还可能这压根就不是搜索题 题目传送门 第一反应:这不每个点左搜一遍右搜一遍然后比大小吗 点击查看search #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> using n
阅读全文
摘要:
阅读全文

浙公网安备 33010602011771号