- 博客(65)
- 收藏
- 关注
原创 2021-07-17
关于博客位置转移2021-07-16 之后的博客我会发在我的个人网站上。下面附上网站地址一只菜阿喵的博客www.yzcam.top
2021-07-17 09:01:20
153
3
原创 武汉ACM集训——二分和尺取-3
武汉ACM集训——二分和尺取-3洛谷 CF371C Hamburgers题解典型二分答案题型。从答案推初始条件,由于不一定刚好 l == r,所以 while 内判断条件为 l <= r。AC代码#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll maxn = 1e13;map<char, ll> mp;ll a[4], b[4];ll n;ll op(
2021-07-14 16:56:58
118
原创 武汉ACM集训——二分和尺取-2
武汉ACM集训——二分和尺取-2Acwing 790 数的三次方根题解典型二分答案题型。从答案推初始条件,由于是浮点数,while 内判断条件为 r - l >= 1e-7。AC代码#include <bits/stdc++.h>using namespace std;int main(){ double n; scanf("%lf", &n); double l = -10000, r = 10000; // 二分判断条件 r
2021-07-14 16:56:27
117
原创 武汉ACM集训——二分和尺取-1
武汉ACM集训——二分和尺取-1Acwing 789 数的范围题解典型的二分查找题二分查找首次出现 ans 的位置的下标,最后出现 ans 的位置的下标。AC代码#include <bits/stdc++.h>using namespace std;const int maxn = 1e5 + 5;int main(){ int n, q; scanf("%d%d", &n, &q); // 存数据 int a[maxn];
2021-07-14 16:56:01
107
原创 武汉ACM集训——贪心-5
武汉ACM集训——贪心-5洛谷 P7427 [THUPC2017] 玩游戏题解如果有 n 轮游戏,则总分有 1 + 2 + 3 + … + n,即n×(n+1)2\frac{n\times(n+1)}22n×(n+1)。统计得分时,需要让大得分先统计,用小得分补空缺。从最后一轮游戏向前遍历,该局游戏得分 i < ans,则统计 i ,ans -= i,如果最后 ans 都不为 0,则不能完成统计。AC代码#include <bits/stdc++.h>using name
2021-07-14 14:21:44
127
原创 武汉ACM集训——贪心-7
武汉ACM集训——贪心-7洛谷 P6878 [JOI 2020 Final] JJOOII 2题解首先将字符串中各字母的下标按照字母种类分类存储。接着依次遍历字母 J, O, I 当符合情况时,存储数据。ans = min{ (右下标 - 左下标 + 1) - (3 x K) }AC代码#include <bits/stdc++.h>using namespace std;const int maxn = 2e5 + 5;#define inf 0x3f3f3f3fint
2021-07-12 21:09:19
154
原创 武汉ACM集训——贪心-6
武汉ACM集训——贪心-6洛谷 P1684 考验题解按照顺序选择诗句,分析题目数据,可以知道组成诗句的条件。出现两种韵脚并且出现次数都大于等于 2,或者出现一种韵脚并且出现次数大于等于 4 。遍历诗句,记录数据,判断是否成立,成立则 + 1,并且初始化数据。AC代码#include <bits/stdc++.h>using namespace std;map<int, int> ans;int main(){ int n; scanf("%d
2021-07-12 21:08:45
87
原创 武汉ACM集训——贪心-5
武汉ACM集训——贪心-5洛谷 P7427 [THUPC2017] 玩游戏题解如果有 n 轮游戏,则总分有 1 + 2 + 3 + … + n,即n×(n+1)2\frac{n\times(n+1)}22n×(n+1)。统计得分时,需要让大得分先统计,用小得分补空缺。从最后一轮游戏向前遍历,该局游戏得分 i < ans,则统计 i ,ans -= i,如果最后 ans 都不为 0,则不能完成统计。AC代码#include <bits/stdc++.h>using name
2021-07-12 21:08:15
72
原创 武汉ACM集训——贪心-4
武汉ACM集训——贪心-4洛谷 P1190 [NOIP2010 普及组] 接水问题题解按照顺序排队接水,一个接完水,另一个瞬间接上。将前 m 个数据作为 m 组,选取时间和最小的组,再该组数据中添加新数据,重复添加新数据。输出最大的时间和。AC代码#include <bits/stdc++.h>using namespace std;const int maxn = 1e4 + 5;int a[maxn];// 优先队列,数值越小优先级越高priority_queue&l
2021-07-12 21:07:45
91
原创 武汉ACM集训——贪心-3
武汉ACM集训——贪心-3洛谷 P1090 [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G题解贪心:选取两个最小的堆合并,产生新堆。重复合并。AC代码#include <bits/stdc++.h>using namespace std;typedef long long ll;#define inf 0x3f3f3f3fconst int maxn = 1e4 + 5;// 优先队列,数值越小,优先级越高priori
2021-07-12 21:07:13
89
原创 武汉ACM集训——贪心-2
武汉ACM集训——贪心-2洛谷 P1803 凌乱的yyy / 线段覆盖题解根据题目可知,如果想要参加一场比赛之后参加越多的比赛,则这场比赛的结束时间要越早。将比赛按照结束时间升序排序,遍历选择开始时间在上次比赛结束时间之后的比赛。AC代码#include <bits/stdc++.h>using namespace std;// 存比赛时间struct s{ int a, b; s(int x, int y) : a(x), b(y) {} // 重
2021-07-12 21:06:29
94
原创 武汉ACM集训——贪心-1
武汉ACM集训——贪心-1洛谷 P1614 爱与愁的心痛题解题目数据量小,可以直接前缀和方法求解。从 n 开始向前遍历,直到遍历到 m 时。ans = min{a[i] - a[i - m]};AC代码#include <bits/stdc++.h>using namespace std;const int maxn = 3e3 + 5;#define inf 0x3f3f3f3fint ans[maxn];int main(){ int n, m;
2021-07-12 21:05:41
114
原创 kuangbin带你飞——专题六 最小生成树(6)
kuangbin带你飞——专题六 最小生成树(6)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 1789 Truck HistoryVJ题目题解题目意思是,有几种类型的卡车,每两种卡车之间的边权值为两个卡车的不同之处两字符串中对应位置上不同的字符个数。Kruskal算法:存卡车类型数组,存边存图,排序遍历,输出 1/ans (ans = 最小生成树权值之和)。AC代码#include <iostream>#include <algor
2021-07-10 15:49:21
86
原创 kuangbin带你飞——专题六 最小生成树(5)
kuangbin带你飞——专题六 最小生成树(3)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:ZOJ 1586 QS NetworkVJ题目VJ 不能提交,下面给出 ZOJ 该题网站ZOJ题目题解经典最小生成树题型。Kruskal 算法:题目意思是,如果有两个节点要连接,则需要购买两个适配器和一条网线。适配器只能绑定一条网线,如果该节点仍然需要再连接一条网线,需要再购买适配器。题目的边权值是两个节点的之和加上边权。先讲各边从矩阵中提取出,再存边,在按照边权值
2021-07-10 14:59:06
107
原创 kuangbin带你飞——专题六 最小生成树(4)
kuangbin带你飞——专题六 最小生成树(3)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 2421 Constructing RoadsVJ题目题解经典最小生成树题型。Kruskal 算法:先讲各边从矩阵中提取出,再存边,将已经连通的边加入最小生成树,在按照边权值排序,在排序后依次选择边,如果这条边连接的点没有加入最小生成树,则加入,否则不加入。AC代码#include <iostream>#include <algorithm&
2021-07-10 11:36:25
82
原创 kuangbin带你飞——专题六 最小生成树(3)
kuangbin带你飞——专题六 最小生成树(3)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 2031 Building a Space StationVJ题目题解经典最小生成树题型。Kruskal 算法:先计算出各边,再存边,在按照边权值排序,在排序后依次选择边,如果这条边连接的点没有加入最小生成树,则加入,否则不加入。AC代码#include <iostream>#include <algorithm>#include &
2021-07-10 10:46:52
87
原创 kuangbin带你飞——专题六 最小生成树(3)
kuangbin带你飞——专题六 最小生成树(3)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 2421 Constructing RoadsVJ题目题解经典最小生成树题型。Kruskal 算法:先计算出各边,再存边,在按照边权值排序,在排序后依次选择边,如果这条边连接的点没有加入最小生成树,则加入,否则不加入。AC代码#include <iostream>#include <algorithm>#include <vec
2021-07-10 10:45:09
64
原创 kuangbin带你飞——专题六 最小生成树(2)
kuangbin带你飞——专题六 最小生成树(2)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 1287 NetworkingVJ题目题解经典最小生成树题型。Kruskal 算法:先存边,在按照边权值排序,在排序后依次选择边,如果这条边连接的点没有加入最小生成树,则加入,否则不加入。用 vector 存图可以减少爆内存情况。AC代码#include <iostream>#include <cstdio>#include <
2021-07-10 10:06:33
79
原创 kuangbin带你飞——专题六 最小生成树(1)
kuangbin带你飞——专题六 最小生成树(1)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 1251 Jungle RoadsVJ题目题解经典最小生成树题型。Kruskal 算法:先存边,在按照边权值排序,在排序后依次选择边,如果这条边连接的点没有加入最小生成树,则加入,否则不加人。AC代码#include <iostream>#include <algorithm>#include <cstdio>#incl
2021-07-09 19:06:05
90
原创 学习编程推荐软件,网站
学习编程推荐软件,网站做题网站学习除了看书,听课之外,还需要实践和训练。你可以选择各大平台和各高校OJ网站,刷题来提升自己。首推 CodeForces 简称 CFhttps://codeforces.com/CodeForces 平台有很多英文题目,每隔一段时间就会举办一两场比赛。比赛分等级(Div.1, Div.2, Div.3),难度递减,并且需要达到对应等级才能参加。完成比赛后会根据你的得分排名情况,给你的账号加上 Rating 分,Rating 分越高,等级越高。等级会在排行榜显示,并且
2021-07-09 13:51:37
1892
原创 kuangbin带你飞——专题一 简单搜索(7)
kuangbin带你飞——专题一 简单搜索(7)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 3087 Shuffle’m UpVJ题目题解暴力模拟该过程,在存入 map 容器之中,如果一种情况出现两次,跳出循环AC代码#include <iostream>#include <map>#include <cstring>#include <cstdio>using namespace std;//
2021-07-09 09:50:58
73
原创 kuangbin带你飞——专题一 简单搜索(14)
kuangbin带你飞——专题一 简单搜索(14)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:HDU 2612 Find a wayVJ题目题解分别计算 yifenfei 和 Merceki 到达 KFC 所用的时间。ans = min { time(yifenfei) + time (Mercekei) }。AC代码#include <bits/stdc++.h>using namespace std;const int maxn = 205
2021-07-08 16:12:16
83
原创 kuangbin带你飞——专题一 简单搜索(10)
kuangbin带你飞——专题一 简单搜索(10)专题网址:VJ网址 [kuangbin带你飞]专题1-23VJ题目UVA题目题解两次BFS(广度优先搜索),第一次先搜索可以着火的位置,并存储他们第一次着火的时间。注意可能有多个着火点。第二次搜索人是否可以通过,如果人通过该位置的时间 < 着火时间,则可以通过。注意队列的初始化AC代码#include <bits/stdc++.h>using namespace std;const int maxn = 1e3
2021-07-08 11:09:27
110
原创 Training-1——F. Building Numbers
Training-2——F. Building Numbers题目来源:Codeforces原题网址题解贪心算法和前缀和算法的应用。已知数 N,欲使从 1 操作到 N 的次数最少,即从 N 反向操作到 1 的次数最少。Ans = 操作(如果被操作数 tmp 为偶数, 则除 2 , 否则减 1)次数。AC代码#include <bits/stdc++.h>using namespace std;const int maxn = 1e5 + 5;typedef long lo
2021-07-07 10:51:09
74
原创 Training-1——B. Linear Algebra Test
Training-1——B. Linear Algebra Test题目来源:Codeforces原题网址题解用map容器自动排序,然后使用迭代器iterator对map容器进行遍历和搜索。或许会被long long卡测试点WAAC代码#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef map<ll, ll> Map;typedef pair<ll, ll>
2021-07-07 10:50:29
96
原创 kuangbin带你飞——专题一 简单搜索(13)
kuangbin带你飞——专题一 简单搜索(13)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:HDU 1495 非常可乐VJ题目HDU网址改动,VJ无法正常提交,附HDU新网址HDU新网址HDU题目题解类似Pots的题型,但是更简单。给一瓶容量为 S 的可乐,用两个容量分别为 N 和 M 的杯子以及可乐瓶本身将可乐平分。BFS记忆化搜索,遍历六个方向分别为 1 -> 2 , 1 -> 3 , 2 -> 1 , 2 -> 3 , 3
2021-07-06 18:48:52
93
原创 kuangbin带你飞——专题一 简单搜索(8)
kuangbin带你飞——专题一 简单搜索(8)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 3414 PotsVJ题目题解一种倒水问题,通过对两个瓶子每次进行一种操作接水(使A装满水),倒水(将A的水倒空),从A向B中倒水(在不浪费水的情况下,能倒多少倒多少),使得一个瓶子中的水量为目标水量。输出最快花费时间(BFS搜索时间)和路径(DFS回溯路径搭配数组BFS)。主要运用记忆化搜索。题目重点超出边界(i>=cnt)时,跳出循环不可到达目标水
2021-07-06 11:23:53
69
原创 kuangbin带你飞——专题一 简单搜索(12)
kuangbin带你飞——专题一 简单搜索(12)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:HDU 1241 Oil DepositsVJ题目HDU网址改动,VJ无法正常提交,附HDU新网址HDU新网址HDU题目题解这题类似连通图问题,判断几个油井是否属于同一个油田,并且输出油田数目。可以通过遍历所有的油井,如果该油井不属于任意一个油田(vis == 0),则对它进行BFS(广度优先搜索),寻找和他属于同一个油田的油井,并且使它们的标记vis都为 1。我
2021-07-05 20:32:37
76
原创 kuangbin带你飞——专题一 简单搜索(11)
kuangbin带你飞——专题一 简单搜索(11)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 3984 迷宫问题VJ题目题解典型的迷宫问题用BFS(广度优先搜索),难点在于将路线再输出出来。从结果回溯回去输出路线,可以使用递归DFS。AC代码#include <iostream>#include <queue>#include <cstring>using namespace std;// 点坐标结构体,p
2021-07-05 19:18:21
81
原创 kuangbin带你飞——专题一 简单搜索(6)
kuangbin带你飞——专题一 简单搜索(6)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 3126 Prime PathVJ题目题解题目要求,将一个四位数每次更改一个位置上的数字,并且要求改后的数字为素数,直到改完的数字为目标数字。输出最短的费用。经典BFS(广度优先搜索)题型,用地图数组num表示经过该点是所花费的费用,从起点入队,将分别更改四个位置的数字作为四个方向,向四个方向遍历,直到队空。最后地图数组num中存储的就是最少的花费。题目重点
2021-07-05 16:26:19
90
原创 kuangbin带你飞——专题一 简单搜索(5)
kuangbin带你飞——专题一 简单搜索(5)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 1426 Find The MultipleVJ题目题解这一题也是搜索题型,有BFS()和DFS()两种做法。但是BFS正常测试会TLE,BFS要想过需要用G++编译器BFS:数字1入队,在末尾加0(× 10),在末尾加1(× 10 + 1),入队,当满足条件ans % n == 0时,结束循环。伪AC代码#include <iostream>#i
2021-07-05 11:35:14
58
原创 kuangbin带你飞——专题一 简单搜索(3)
kuangbin带你飞——专题一 简单搜索(3)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 3278 Catch That CowVJ题目题解经典二维搜索题型,在数轴上按照一定规则从一点到达另外一点,输出最短时间。这题我用的BFS(广度优先搜索),WA了几发,发现改一下搜索范围增加 0就AC了。起点入队,遍历三个方向(左右和传送),符合条件的入队,起点出队,循环操作,直到到达终点。AC代码#include <iostream>#incl
2021-07-05 10:58:01
78
原创 kuangbin带你飞——专题一 简单搜索(2)
kuangbin带你飞——专题一 简单搜索(2)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 2251 Dungeon MasterVJ题目题解这一题是经典迷宫问题,只不过改成三维数组,我用到BFS(广度优先搜索)。建立队列queue,然后起点入队,从起点出发,遍历上下左右前后六个方向,将可到达的地点入队,起点出队。当到达终点时,结束队列循环,输出结果。AC代码#include <iostream>#include <algorit
2021-07-04 21:34:35
123
原创 kuangbin带你飞——专题一 简单搜索(1)
kuangbin带你飞——专题一 简单搜索(1)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 1321 棋盘问题VJ题目题解经典棋盘问题,我用的是DFS(深度优先搜索),按照行的规律,依次遍历,用vis(标记数组)标记已经被棋子占据的列。当k(棋子数目)等于0时,sum(方案数)加1。AC代码#include <iostream>#include <algorithm>#include <iomanip>#inc
2021-07-04 21:15:29
100
原创 简单的最短路——Dijkstra(1)
简单的最短路——Dijkstra(1)题目来源:洛谷 P3371 【模板】单源最短路径(弱化版)原题共十个测试点题解WA代码1#include <bits/stdc++.h>using namespace std;const int maxn = 1e4 + 5;#define inf 0x3f3f3f3ftypedef long long ll;ll dis[maxn], vis[maxn];int n, m, s;struct Node{ int v,
2021-06-12 16:57:11
71
原创 简单的最小生成树——Kruskal(1)
简单的最小生成树——Kruskal(1)题目来源:洛谷 P3366 【模板】最小生成树原题共十个测试点题解最小生成树(MST)两大代码:Kruskal(加边),Prim(加点)// kruskal算法模板#include <bits/stdc++.h>using namespace std;const int maxn = 2e5 + 5;const int maxnp = 5e3 + 5;#define inf 0x3f3f3f3f// 存图结构体struct No
2021-06-12 15:31:37
83
原创 简单的搜索——DFS(8)
简单的搜索——DFS(8)题目来源:洛谷 P1596 [USACO10OCT]Lake Counting S原题共十个测试点题解AC代码#include <bits/stdc++.h>using namespace std;const int maxn = 105;// 地图数组char mp[maxn][maxn];// 标记数组int v[maxn][maxn];int n, m;// 方向数组int dx[8] = {0, 1, 1, 1, 0, -1, -
2021-06-12 01:05:08
236
原创 简单的搜索——遍历(7)
简单的搜索——遍历(7)题目来源:洛谷 P1101 单词方阵原题共五个测试点题解AC代码#include <bits/stdc++.h>using namespace std;const int maxn = 105;// 地图数组和标记数组char mp[maxn][maxn], vis[maxn][maxn];int n;// 方向数组int dx[8] = {0, 1, 1, 1, 0, -1, -1, -1}, dy[8] = {1, 1, 0, -1, -1
2021-06-11 10:03:34
75
原创 简单的搜索——DFS(6)
简单的搜索——DFS(6)题目来源:洛谷 P1605 迷宫原题共十个测试点题解AC代码#include <bits/stdc++.h>using namespace std;const int maxn = 10;// 地图数组和标记数组// mp[x][y] == 0 时,表示不可通行int mp[maxn][maxn], vis[maxn][maxn];int ans = 0;// 起点坐标和终点坐标int sx, sy, ex, ey;int n, m;/
2021-06-11 09:21:16
85
原创 简单的搜索——DFS(5)
简单的搜索——DFS(5)题目来源:洛谷 P2036 [COCI2008-2009#2] PERKET原题共八个测试点题解WA代码#include <bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3fint n;int s[15], b[15];bool v[15];int c = 1, k = 0;int ans = inf;void init(){ memset(v, 0, sizeof(
2021-06-10 20:54:59
102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人