自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

syzyaaa

心得

  • 博客(118)
  • 收藏
  • 关注

原创 #3 树分治

目录1. 点分治分治经典题目1. 找到树的根结点2. 计算经过根的路径3. 把根去掉,递归计算子树的答案(与原问题性质相同的子问题)代码2. 边分治原理1.选择一条边2.计算包含这条边的答案3.删除这条边,递归统计得到的两棵子树(与原问题相似的子问题)总结:题目1. 点分治分治分治算法的基本思想:将一个规模较大的问题分解为若干个规模较小的子问题,这些子问题相互独立且与原问题性质相同,求出每个子问题后将解合并,就可以得到原问题的解。点分治和边分治是在树形结构上进行分治的一种操作点分治的题,边分治也

2021-09-28 22:11:35 458

原创 2021牛客5

目录B - Boxes题目思路代码D - Double Strings题目思路代码总结K - King of Range题目思路代码B - Boxes题目有n个箱子,每个箱子里白球和黑球的可能性为1/2,开一个箱子需要花费wi,可以花费c元知道剩余盒子中黑球的数目,求最小花费思路一开始还是有点混乱的@_@首先,只需要在最开始的时候花费c,这样就知道之后的黑球的数目之后每次打开盒子全为黑或白的概率为1−12n−i1-\frac{1}{2^{n-i} }1−2n−i1​把wi从小到大排序然后计

2021-08-09 08:17:06 526

原创 2021牛客4

C - LCS题目LCS(s1,s2)表示s1,s2的公共子序列s1,s2,s3的长度是n,思路可以看成是三个集合的交集,代码#include <bits/stdc++.h>using namespace std;int n,a[3];pair<int,string> p[3];vector<pair<int,int>> t;bool cmp(pair<int,int>a,pair<int,int>b){

2021-08-07 10:28:45 502

原创 2021牛客3

目录E - Math题目思路代码总结J - Counting Triangles题目思路代码总结F - 24dian题目题目链接https://ac.nowcoder.com/acm/contest/11254#questionE - Math题目思路打表找规律,可以看出①(a,a3)②(iii,iiiii-i) 如:i=2时为:2,8,30代码#include <iostream>#include <algorithm>#define maxx 100000

2021-07-31 10:31:57 462

原创 #网络流24# 餐巾计划问题

题目P1251 餐巾计划问题思路根据 标签 题意推断出是最小费用最大流问题,最主要的问题是如何构图才能形成网络流的模型通过读题发现餐巾大致可分为两个部分,一个是新毛巾,要使用的(A类点);一个是旧毛巾,使用过了的(B类点),所以得到:旧毛巾Ai——(inf,f元/条)——>新毛巾Bi+m ( 快洗部 )旧毛巾Ai——(inf,s元/条)——>新毛巾Bi+n ( 慢洗部 )旧毛巾Ai——(inf,0元/条)——>旧毛巾Bi+1 ( 延期送洗 )*流量为inf,但会受到时

2021-07-18 17:55:03 140

原创 网络流问题

概念可以想象成一个运水系统:从源点流出,通过管道运输,途径多个中转点,最后达到汇点▪ 源点:无限的水▪ 管道:运输的水量有限制▪ 中转点:接收多少水,输出多少水,但是可以改变水流的方向▪ 汇点:一般求可以接受的最大水量如下面这个图:最大流量是5:1->3提供2流量1->2->3提供2流量1->2->4->3提供1流量其中,1->2->3是一条增广路(从源点到汇点的路径,其上所有边的残余容量均大于0),扣除掉这条路提供的2流量之后,

2021-07-18 15:25:51 223 1

原创 #总结# 5 - 第三周周五/3h

B - Friend-Graphac#include<iostream>#define maxx 30using namespace std;typedef long long ll;int a[maxx][maxx];int main(){ int T; cin>>T; while (T--) { int n; cin>>n; if (n>6) {

2021-05-28 23:34:14 68

原创 #总结# 2. 第一周周日/5h

目录B - Make Numbers题目思路代码E - Optimization for UltraNet题目思路代码G - August题目思路J - Goodbye**题目思路代码题目集B - Make Numbers题目就是给你四个数字,范围是1~9,每个字母使用一次,可以组成123位数,求出使用+、-、*之后所有可能的结果思路一开始想了一下准备列举所有情况,后来放弃了(还好然后后来模拟的时候有一些情况也没有考虑全面,主要是不会使用这个函数补充知识点: next_permuta

2021-05-27 22:44:30 840 1

原创 #总结# 1.第一周周五/山东省赛/5h

B题目用n-1条路链接n个城市,每个城市有自己的值ai,建路的时候会损失gcd(ai,aj)的值,求最少损失的值是多少与之前不同的是,会生成随机数,而且数据很大思路一开始看这题觉得最小生成树肯定会超时,但又想不出别的办法,就。。如果直接打表、或者尝试的话,就会发现,当n很大的时候,结果为n-1,(依据大概是因为素数的分布规律,随着数字增大,素数会增加,gcd就很容易出现1)然后在打表之后,发现1000之前用最小生成树,1000之后就可以直接n-1输出还要注意的是,L=R的时候,也是直接输出

2021-05-14 16:20:28 400 3

原创 #2019# 山寨贪吃蛇

题目思路通过观察发现,奇数行向上填,偶数行向下填代码#include <bits/stdc++.h>#define maxx 1010typedef long long ll;using namespace std;int main(){ int n; cin >> n; getchar(); string ss; getline(cin, ss); // cout << ss << en

2021-04-28 22:24:26 98

原创 #2020# 完全二叉树的层次遍历

题目L2-035 完全二叉树的层序遍历 思路好久没有写树的了,生疏了都/(ㄒoㄒ)/~~代码#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn = 100010;int n, a[maxn];int Tree[maxn], r;void build(int x){ if(x>n)return ; build(x<<1); build(x&lt

2021-04-23 23:34:50 102

原创 #2020# 网红点打卡攻略

题目L2-036 网红点打卡攻略 思路就是搜索代码#include <bits/stdc++.h>#define maxx 5100#define INF 0x3fusing namespace std;int vis[maxx];int road[maxx][maxx]; //不能用memsetint main(){ int n, m; cin >> n >> m; while (m--) {

2021-04-23 23:32:11 164

原创 #2016# *正整数A+B

题目L1-025 正整数A+B 思路当时提交了好几次,总有一个测试点过不去,拿不到满分,布吉岛是哪里有问题呜呜呜,求大佬解答啊啊啊啊啊啊啊啊啊输入格式:输入在一行给出A和B,其间以空格分开。问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱码。注意 我们把输入中出现的第1个空格认为是A和B的分隔题目保证至少存在一个空格,并且B不是一个空字符串。说明A可能是空串,这样一上来就是B了,但我是一开始就定义的string,cin会跳过那个空串

2021-04-22 22:15:58 125

原创 #2017# 功夫传人

题目L2-020 功夫传人思路dfs和bfs都可以做~个人想练习一下dfs注意只有祖师爷一个人,且他本身就是得到者的情况——测试点2代码#include <bits/stdc++.h>#define maxx 100050typedef long long ll;using namespace std;vector<int> v[maxx];int vis[maxx],spe[maxx];double power[maxx];int n;double

2021-04-22 20:19:28 77

原创 #2017# 10-多项式A除以B

题目https://pintia.cn/problem-sets/994805046380707840/problems/994805060372905984就是模拟多项式的除法思路找到多项式相除的普遍规律,然后模拟一开始用的是结构体+vector,但是后来发现在AB系数不相等的时候,向前插入会出现错误然后看到了有人用map做,觉得很不错,学习了一下规律:A/B先求出指数相减和系数相除,若A的指数<B,则跳出循环,计算结束,得到的A就是余数否则,把结果赋给Q,然后A的第一项就可以消去了

2021-04-22 08:53:15 122

原创 #模拟赛1# B - Hills And Valleys

题目https://codeforces.com/problemset/problem/1467/B

2021-04-14 22:24:21 71

原创 #训练6# 2-N个数求和

题目思路gcd样例三!!long long !!要全给成ll代码#include <bits/stdc++.h>#define maxx 199typedef long long ll;using namespace std;ll up[maxx], down[maxx];ll gcd(ll a, ll b) //最大公因数{ if (a % b == 0) return b; return gcd(b, a % b);}int

2021-04-12 21:23:51 97

原创 #训练6# 1-连续因子

题目L1-006 连续因子 (20 分)思路一开始想的是,用一个双重循环,把每一次符合的结果放到vector里存着,还要记录最大值和长度,最后直接输出即可。可以是可以,但是没必要,而且很容易写的比较混乱。。要仔细读题,让你求什么就记录什么,只需要找连续的数字的长度就可以,而不是把所有的因子都找出来,化简一下运算。。。代码#include <bits/stdc++.h>#define maxx 10001using namespace std;int main(){

2021-04-11 21:55:29 74

原创 #训练6# 3-帅到没朋友

题目思路题目很简单,但是当时没大有时间了所以做的很赶,一直改来改去最后才提交上,一定要注意格式需要注意几个问题:5位数,所以fa数组要大一些11111,33333,55555的fa就是自己,单独判断处理同一个人被查询多次,处理方式与上面类似,用一个vis数组即可只有一个人的时候,不属于任何圈子,单独判断00000的输出格式为printf("printf("%05d", v[i]);printf("空格的处理和回车的处理代码#include <bits/stdc++.h&gt

2021-04-11 16:37:28 88

原创 #训练4# 2-目录树

题目https://pintia.cn/problem-sets/15/problems/857思路建树,不是二叉树,应该叫父母兄弟树还是啥来着。。然后搜索得到结果记得标记一下是文件(记0)还是目录(记1)代码#include <iostream>#include <cstring>#include <stack>#include <algorithm>#include <queue>#include <map&

2021-04-11 14:36:55 77

原创 #训练5# 3-银行排队问题之单窗口“夹塞”版

题目https://pintia.cn/problem-sets/15/problems/895思路看其他人的题解,都是用了queue,但是明明两个循环更方便一些嘛~这个提示救了我一命!一开始情况没考虑全面过程太乱了,就不放上来了(●’◡’●)代码#include <iostream>#include <cstring>#include <algorithm>#include <queue>#include <string&g

2021-04-10 21:37:14 105

原创 #训练5# 2-地铁一日游

题目https://pintia.cn/problem-sets/994805046380707840/problems/1111914599412858890思路啊这,一定要仔细读题目啊,出站有两种可能,一种是计费距离最远(比如3块钱,可以走2+6/6,2+7/6,2+8/6,也就是8,9,10公里,但是只把最远的距离,也就是10公里的站点记录下啦),一种是终点站所以可以:用二维数组road存储两点之间的距离,并用Floyd算法更新为最短距离循环找到每一个站点计费距离最远的站或者终点站,

2021-04-10 17:47:47 211

原创 #训练5# 1-奥运排行榜

题目思路结构体的排序,要注意名次相等时候的处理当时想的是把名次的排名和顺序都放在结构体里面,但是在后面的输出处理时,比较麻烦,所以可以使用多个数组来存储结果,最后再寻找符合的输出比较简单,但是还是提交了很多次。代码#include <iostream>#include <iostream>#include <cstring>#include <stack>#include <algorithm>#include <q

2021-04-08 21:43:19 98

原创 #训练5# 4-特殊堆栈

题目取中值,是中位数,而不是中间的那个数啊啊啊。。。代码#include <iostream>#include <iostream>#include <cstring>#include <stack>#include <algorithm>#include <queue>#include <vector>#include <string>#define MAXX 10010using

2021-04-08 18:17:09 162

原创 #训练4# 4-那就别担心了

题目https://pintia.cn/problem-sets/994805046380707840/problems/1336215880692482060就是找从一个点到另一个点有几条路可以走思路dfs+记忆化搜索,递归代码#include <iostream>#include <cstring>#include <stack>#include <algorithm>#include <queue>#include &

2021-04-07 20:48:48 63

原创 #训练4# 3-部落

题目思路并查集代码#include <iostream>#include <cstring>#include <stack>#include <algorithm>#include <queue>#include <map>#define MAXX 10100using namespace std;int n,m,num;int fa[MAXX];int vis[MAXX];int find(int x

2021-04-07 19:04:11 88

原创 #训练2# 4-家谱处理

题目https://pintia.cn/problem-sets/988034414048743424/problems/988040973986308096思路并查集,主要是STL容器的合理使用①处理输入的空格②如何查找存储字符串,并转换代码#include <iostream>#include <cstring>#include <stack>#include <algorithm>#include <queue>#i

2021-04-05 21:16:36 62

原创 #训练2# 3-最短工期

题目思路拓扑排序~拓扑排序的实现可以用到一个栈(记录有哪几个点被标记过,判断是否有环),一个队列(找顺序的)因为在排序的过程中,需要不断地用到from和to的信息,所以用结构体来存储的话,并不方便;用vector跟便于查找(当然也可以sort一下??),感觉自己stl用的还不熟练灵活(/_ \)代码#include <iostream>#include <cstring>#include <stack>#include <algorithm&g

2021-04-05 19:44:27 173

原创 拓扑排序

1. 用顶点表示活动的网络(AOV)在干工程的时候,比如施工过程、生产过程、程序流程,都会把一个大工程分为好几个小工程,一步一步来,当小工程完成后,大工程也就完成了~可以用一个有向图来存储这些过程,在这种有向图中,用顶点表示活动,用有向边<Vi,Vj><Vi, Vj><Vi,Vj>表示活动Vi 必须先于活动Vj 进行。这种有向图叫做顶点表示活动的AOV网络 (Activity On Vertices)//注意:AOV网络中不能出现有向环*用拓扑排序检测有向环

2021-04-05 11:03:29 69

原创 #训练2# 2-文件传输

题目思路并查集,简单代码#include <iostream>#include <cstring>#include <stack>#include <algorithm>#define MAXX 10100using namespace std;int N;int fa[MAXX];int find(int x){ if (fa[x] == x) return x; fa[x] = find(fa[

2021-04-03 20:33:29 73

原创 #训练2# 1-畅通工程之最低成本建设问题

题目思路最小生成树,注意使用结构体会hin方便的代码#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define MAXX 5002#define inf 0x3f3f3f3fusing namespace std;int n, m;struct Edge{ int x, y, len;} e[MAXX];int fa

2021-04-03 19:01:38 134

原创 #训练1# 4-拯救007

题目思路主要是一个一个找起始点,然后从这个起始点开始,用bfs搜索,如果符合条件了,就跳出循环,yes,都是用勾股定理判断距离代码唉,找不到原题的提交页面了,也布吉岛自己写的对不对(肯定不对哈哈哈),但是思路都是一样的,就先这样子吧。。#include <iostream>#include <cstring>#include <stack>#define MAXX 1005using namespace std;struct node{ i

2021-04-03 16:25:27 74

原创 #训练1# 3-喊山

题目思路一开始题意理解的不清楚,其实说“每个山头最多有两个能听到它的临近山头”,说明是一个稀松的矩阵,用邻接表比较好一些~但是,(一开始并没有注意到。。)我一开始用图存储,结果被告知内存超限了,MAXX改的小了些就会出现段错误,所以还是要用邻接表来做的。。然后最远的传输距离就是能到达的最远的地方~,如果有多条最远的话,就是编号最小的点,用bfs就可以啦代码#include <iostream>#include <cstring>#include <queue&g

2021-04-02 13:13:20 80

原创 最短路问题(Dijkstra/Floyd)

最短路问题就是求 【一个点到另一个点的最短路径】分为单源最短路(一个点到各个点之间的距离)和多源最短路(任意两点之间的距离)1.Dijkstra算法使用广度优先搜索,解决【赋权有向图】或【无向图的单源最短路径】问题,不能出现负边基于【贪心】思想1.1 内容// 用dis[]dis[]dis[]数组储存从顶点到其他点的路径,通过一步步遍历比较,不断更新(保留最小的,改变较大的),最后得到dis即为所求求从v1到各个点的最短路:step1:初始化disstep2:找最小的,固定.

2021-03-31 19:47:48 724

原创 #训练1# 1-城市间紧急救援

题目就是,找到给定两点之间的最短路径+最大救援数量

2021-03-31 19:46:24 109

原创 最小生成树(Kruskal/prim)

4. 最小生成树—Kruskal算法内容从边出发,每次都是找权值最小的边~重复以上操作,如果有不符合的,丢弃,重新选择题目5. 最小生成树—prim算法内容从点出发,分为已选点集和未选点集,找处于两个点集交替地方的所有的边中最小的那个边,把那个未选点变成已知点题目...

2021-03-30 10:02:28 67

原创 #训练1# 2-社交网络图中结点的“重要性”计算

题目就是求图中每个结点到其他节点最短距离之和思路floyd算法代码#include <iostream>#include <cstdio>#include <cstring>#define MAXX 1002#define inf 0x3f3f3f3fusing namespace std;int n, m;int road[MAXX][MAXX];int dis[MAXX];int main(){ cin >> n

2021-03-28 22:34:45 132

原创 #模拟赛1# A - Wizard of Orz

题目

2021-03-28 22:27:23 80

原创 #寒假1# S - A Magic Lamp

题目https://vjudge.net/problem/HDU-3183n位数,去掉m位,使得剩下的数字最小思路维护一个单增的栈,因为写了好多while,所以可能一不小心就有死循环了。。每次碰见单减序列,就把前面大的数字删除代码#include<iostream>#include<algorithm>#include <cstring>#include <cmath>#include <stack>#define MA

2021-03-28 17:46:23 60

原创 #寒假1# R - Frequent values

题目https://vjudge.net/problem/POJ-3368思路这样,查询的时候,先求两个端点的max(要减去之前&之后的个数),再求其他区间的max,之后取max代码

2021-03-28 15:25:10 69

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除