自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(137)
  • 收藏
  • 关注

原创 配置WSL(单纯记录

参考链接(https://blog.csdn.net/mustuo/article/details/133960230)勾选适用于Linux的Windows子系统和虚拟机平台。在控制面板-启用或关闭windows功能中。重启后用管理员权限打开Powershell。查看已安装的系统,图上显示说明未安装。重新键入安装ubuntu的命令。将wsl默认版本改为wsl1。可能是默认安装了wsl2。把wsl版本设置成版本2。进入BIOS启用虚拟化。

2024-09-13 13:06:42 333

原创 F1. 生活在树上(easy version)树,dfs

树、dfs

2022-11-27 19:11:00 460 1

原创 P8198 [传智杯 #4 决赛] 背单词的小智 二分答案+前缀和

二分答案

2022-11-27 19:05:45 293

原创 P8842 [传智杯 #4 初赛] 小卡与质数2 垃圾筛

垃圾筛

2022-11-22 19:56:53 600

原创 小码哥的比赛 概率dp

概率dp

2022-09-25 15:30:11 180

原创 讲价 数学问题

数学类的算法题

2022-09-16 12:11:34 206

原创 字串差值 dp

dp

2022-09-16 11:01:14 97

原创 逆波兰表达式 (利用stl

逆波兰表达式(后缀表达式)

2022-09-16 10:53:19 160

原创 求解同余方程 数论 扩展欧几里得

同于方程 扩欧

2022-07-31 22:42:46 122

原创 分子个数 数论(欧拉函数 前缀和

欧拉函数

2022-07-31 17:09:39 187

原创 河内双塔 递归

题目:思路:总的来说,和有汉诺塔的原题差不多,只要在此基础上*2即可所以先考虑汉诺塔原题该如何解决1.将n-1个盘子通过C然后放置到B上2.再将最大的盘子放到C3.将n-2个盘子通过C放置到A上4.第二大的放到C。。。。。TLE做法:#include <cstdio>#include <iostream>#include <cmath>using namespace std;const int maxn=111111;int n;int

2022-05-21 20:35:09 137

原创 mxr数 map

题目:思路:考虑到如果直接开bool数组可能会爆,所以搞了个map代码:#include <cstdio>#include <iostream>#include <map>using namespace std;const int maxn=511111;int n;map<int,bool> m;bool flag;int main(){ cin>>n; for(int i=1;i*(i+1)/2&lt

2022-05-21 20:04:42 156

原创 进行一个幂的运算 数学杂题

题目:思路:这个题目巧妙的地方在于2的k次-1需要联想到就是每个位上是1的情况,然后看成类似m进制Eg.2的7次=2的一次 * 2的2次*2的4次代码:#include <cstdio>#include <iostream>using namespace std;const int maxn=111111111;const int mod=1e8+7;long long m,k,ans;int main(){ cin>>m>>

2022-05-21 19:35:14 195

原创 P2347 [NOIP1996 提高组] 砝码称重 dp(01背包)

题目:思路:把砝码一个个列出来,成为一个数组,然后做选择(选或者不选)需要注意的是需要从1000开始查询vis[i]是否可行代码:#include <iostream>#include <cstdio>using namespace std;const int maxn=1111;int n,a[maxn],b[11]={0,1,2,3,5,10,20};bool vis[maxn];int main(){ for(int i=1;i<=6;i

2022-05-18 13:56:06 184

原创 购买数字 字符串

题目:思路:总的思路是一个比较巧妙的方法,把前导零去掉后搞成两个int数组,以前面一部分来对称构造前导零,如果构造出来的这个数小于真正的那个数的话就刚好是最大的那个回文数。如果比真正的那个数大的话,从中间开始对应搞回文数。注意点:1.1000,100,10这种情况需要另外讨论代码:#include <cstdio>#include <iostream>#include <cstring>using namespace std;const int m

2022-05-18 13:24:12 81

原创 赌石 dp

题目:思路:一开始直接朝着概率论的方向去了,万万没想到是道dp基本就是把这道题换了个题面考虑状态转移方程dp[i][j]表示剩下i个蓝球和j个红球的时候,最后剩下两个相同的球的概率dp[i][j]=dp[i-1][j]*0.5+dp[i][j-1]*0.5如果某一种球的数量=0且另一种的球的数量大于等于2,那么dp[i][0]=0#include <iostream> #include <cstdio> #include <cstring>

2022-05-02 18:59:28 253 1

原创 矩形相交 几何问题

题目:思路:一开始想着纯分类讨论,讨论x3的位置在哪(以x1,x2作为分隔点)然后越讨论越混乱,然后看了看别人的做法,发现类比圆,用类似圆心的方法去考虑很巧妙。然后只需要特判一下部分情况。Tips:需要把这里的矩形看成空心矩形,只有在两个矩形不完全重合并且有大于一个交点才视为相交AC代码:#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>u

2022-05-02 11:31:16 240

原创 区间修改 差分

题目:思路:可以参考铺设道路两道题的区别在于不仅可以往上加,也可以往下减,如果某一段+1/-1,那么相应的差分数组中就会有一组数+1、-1,但是计算的时候为了可以每次都配对成功,a[1]-a[0]和a[n+1]-a[n]也需要加上,但是计算的时候不需要管,只要d[2]-d[n]最终都变为0了就可以AC代码:#include <cstdio>#include <iostream>using namespace std;const int maxn=111111;i

2022-05-02 10:54:54 189

原创 铺设道路 差分

题目:思路:差分:d[i]=a[i]-a[i-1](记录相邻两个位置的差值,可以类比前缀和)目的是填充不平的区域,并且可以连续区域填充,也就是如果相邻位置经过填充之后高度相同可以看成同一段。所以可以猜测用差分来计算。Tips:需要保留第一个点与地面的差代码:#include <cstdio>#include <iostream>using namespace std;const int maxn=111111;int n,a[maxn],d[maxn],ans

2022-05-02 10:26:34 211

原创 P1801 黑匣子 二叉堆,优先队列

题目:思路:参考AC代码:#include <bits/stdc++.h>using namespace std;const int maxn=211111;int n,m,a[maxn],u[maxn];priority_queue<int> q1;priority_queue<int,vector<int>,greater<int>> q2;int main(){ cin>>n>>m;

2022-04-02 22:00:34 450

原创 P1168 中位数 大根堆 小根堆

题目:思路:把小的数放在大根堆里,大的数放在小根堆里属于一旦想到了就会豁然开朗的题目如果找的是第k个大的只需要一个小根堆即可AC代码:#include <bits/stdc++.h>using namespace std;const int maxn=111111;int n,a[maxn];priority_queue<int> q1;priority_queue<int,vector<int>,greater<int>>

2022-04-02 21:15:50 390

原创 ABC 245 (多项式除法

题目:思路:这道题一开始方向出现了错误,我居然想用dfs,n的范围这么大(n<20的情况下可以考虑,不过确实应该复习一下dfs。其实是道简单的模拟题,看看每个n前面能走到的点是不是可以走到后面,看了代码应该就一目了然了AC代码:#include <bits/stdc++.h>using namespace std;const int maxn=211111;int n,k,a[maxn],b[maxn];bool f[11][maxn];int main(){

2022-03-27 11:25:13 657

原创 根号 未知个数的输入及double和sqrt带来的精度误差

题目:思路:1.未知个数的输入scanf("%d",&x)!=EOF2.精度误差需要多次调整找到合适的值AC代码:#include <bits/stdc++.h>#include <iostream>using namespace std;const int maxn=111111;double ans1;int a[maxn];bool equal(double x,double y){ return abs(x-y)<1e-6;}

2022-03-25 14:10:41 431

原创 八数码问题 暴力搜索例题

题目:AC代码:#include <bits/stdc++.h>using namespace std;string s;unordered_map<string,string> m;bool check(string x){ return x==(string)"12345678x";}int main(){ cin>>s; queue<string> q; q.push(s); m[s]="-1"; while (!q.e

2022-03-23 20:44:18 264

原创 P1404 平均数 二分答案

题目:思路:答案的范围很容易确定,重要的是check()这一步搞一个b[i]=100*a[i]-avg;s[i]是b[i]的前缀和数组AC代码:#include<cstdio>#include <iostream>#include<cstring>#include<algorithm>#include <vector>#include <cmath>#include <queue>using na

2022-03-21 18:53:50 229

原创 P2678 [NOIP2015 提高组] 跳石头 二分答案

题目:思路:依旧是对答案可能的范围进行二分,然后代入并求取需要搬掉多少石头。AC代码:#include<cstdio>#include <iostream>#include<cstring>#include<algorithm>#include <vector>#include <cmath>using namespace std;const int maxn=111111;int d,n,m,a[maxn]

2022-03-20 20:44:31 291

原创 P1182 数列分段 Section II 二分答案

题目:思路:把x可能的范围先确定下来,0-1e13接着对这个范围进行二分处理,判断mid是否大于等于xAC 代码:#include<cstdio>#include <iostream>#include<cstring>#include<algorithm>#include <vector>#include <cmath>#include <queue>using namespace std;co

2022-03-20 19:49:35 180

原创 分析字符 string

题目:AC代码:#include <iostream>#include <cstdio>#include <string>using namespace std;int n,ans[11];string s;int main(){ cin>>n; getline(cin,s); for(int i=1;i<=n;i++) { getline(cin,s); for(int

2022-03-18 19:29:42 241

原创 字母替换 string

题目:思路:AC代码:#include <iostream>#include <cstdio>#include <string>using namespace std;int n;string s;int main(){ cin>>n; for(int i=1;i<=n;i++) { cin>>s; int l=s.size(); for(int

2022-03-18 15:52:55 157

原创 删除子串 string

题目:思路:删除完第一次找的字串之后要从删除的字串的头的位置开始找AC代码:#include <iostream>#include <cstdio>#include <string>using namespace std;int n;string s,s0;int main(){ cin>>n; for(int i=1;i<=n;i++) { cin>>s>>s0;

2022-03-18 15:45:33 884

原创 电话本 map

题目:AC代码:#include <iostream>#include <cstdio>#include <vector>#include <map>#include <string>using namespace std;map <string,vector<string>> a;int n;int main(){ cin>>n; for(int i=1;i<=n;

2022-03-17 19:21:10 210

原创 集合练习 set

题目:注意点:1.Begin(), End()是set的成员函数,返回值分别是set中首个元素的迭代器和set中末尾元素向后一位的迭代器。2.输出时使用迭代器时,要写成it!=a.end();输出的是*it。3.begin()返回的迭代器指向set中的最小值;rbegin()返回的迭代器指向set中的最大值。但end()返回的迭代器指向set中的最后元素的后一个位置;rend()返回指向集合中第一个元素的前一个位置的迭代器4.clear()清除set中的所有元素。时间复杂度O(

2022-03-17 15:48:43 334

原创 队列练习 deque

题目:思路:双向队列deque的具体介绍AC代码:#include <iostream>#include <cstdio>#include <deque>using namespace std;deque <int> q;int n;int main(){ cin>>n; for(int i=1;i<=n;i++) { int opt; cin>>o

2022-03-17 14:55:27 126

原创 数组操作 vector

题目:思路:需要注意Begin(), End()是Vector的成员函数,返回值分别是Vector中首个元素的迭代器和Vector中末尾元素向后一位的迭代器AC代码:#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <vector>#include <cmath>using namespace std

2022-03-17 14:34:57 183

原创 P1144 最短路计数 最短路,bfs(回顾

题目:思路:如果从1开始到x1,和x2的距离(x1,和x2和y相连)相同。那么1->y的最短路的数目=1->x1的最短路数目+1->x2的最短路数目代码说明:dis[i]表示1-i的最短路的距离;AC代码:#include<cstdio>#include <iostream>#include<cstring>#include<algorithm>#include <vector>#include <c

2022-03-16 22:55:12 206

原创 P1522 [USACO2.4] 牛的旅行 Cow Tours 最短路+并查集

题目:思路:题目要求的是加上一条边,连接两个连通块之后,形成的新连通块的最小直径。A连通块与B连通块连接后形成的新连通块的最小直径有三种情况:1.A连通块的直径2.B连通块的直径3.d[i]+d[j]+getdis(i,j)并查集用于分成不同的几个连通块最短路(floyd)用于寻找多源最短路,连通块里点与点直接的“距离”d[i]用于存储i所在的连通块里,与i所在的最长直径a数组用来储存一个连通块里的最长直径AC代码:#include <cstdio>#includ

2022-03-16 21:25:07 300

原创 P1629 邮递员送信 最短路(一对多,多对一

题目:思路:这道题先是

2022-03-16 10:09:43 217

原创 P1119 灾后重建 最短路 floyd算法

题目:思路:一看这道题就是个多源最短路问题,考虑采用floyd算法如果每次都用一次floyd,显然大数据会tle所以先一遍把所有的情况都算出来,后面再去调用如果day不是递增的数组,需要先排序AC代码:#include<cstdio>#include <iostream>#include<cstring>#include<algorithm>#include <queue>#include <vector>

2022-03-15 10:47:22 185

原创 P4779 【模板】单源最短路径(标准版) 最短路

题目:思路:把优先队列的做法改个数据范围就可以了AC代码:#include<cstdio>#include <iostream>#include<cstring>#include<algorithm>#include <vector>#include <cmath>#include <queue>using namespace std;const int maxn=111111;struct n

2022-03-14 21:18:37 287

原创 P3371 【模板】单源最短路径(弱化版) 最短路

题目:思路:模板题,练习一下Dijkstra 算法(需要注意的是边权不能是负数暴力算法:#include<cstdio>#include <iostream>#include<cstring>#include<algorithm>#include <vector>#include <cmath>using namespace std;const int maxn=51111;const int anss=(

2022-03-14 20:58:36 704

空空如也

空空如也

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

TA关注的人

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