自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【无标题】

2023-04-15 17:28:41 101

原创 POJ 1308 Is It A Tree?(并查集)

POJ 1308 Is It A Tree?(并查集)vj链接Solution和 HDU 1272 一毛一样。。代码#include <algorithm>#include <cmath>#include <iostream>#include <map>#include <queue>#include <set>#include <stdio.h>#include <string.h>#

2021-10-28 21:54:09 136

原创 HDU 1272 小希的迷宫(并查集)

HDU 1272 小希的迷宫(并查集)vj链接Solution并查集模板题,注意如果案例只有 0 0 ,需要输出yes代码#include <algorithm>#include <cmath>#include <iostream>#include <map>#include <queue>#include <set>#include <stdio.h>#include <string.h&gt

2021-10-28 21:52:40 127

原创 POJ 2912 Rochambeau(枚举 + 并查集)

POJ 2912 Rochambeau(枚举 + 并查集)vj链接Solution枚举每个人能否作为裁判,记录能作为裁判的人的个数,超过一个则为 Impossible,0 个则为不能确定。记录最早判断裁判的轮次:最晚出现自相矛盾的轮次。代码#include <algorithm>#include <cmath>#include <iostream>#include <map>#include <queue>#include

2021-10-28 21:50:52 107

原创 POJ 2492 A Bug‘s Life(带权并查集)

POJ 2492 A Bug’s Life(带权并查集)vj链接Solution和POJ 1733 非常像,可以说是 1733 的青春版。。。代码#include <algorithm>#include <cmath>#include <iostream>#include <map>#include <queue>#include <set>#include <stdio.h>#include &lt

2021-10-28 21:44:54 75

原创 POJ 1984 Navigation Nightmare(带权并查集)

POJ 1984 Navigation Nightmare(带权并查集)vj链接Solution乍一看似乎不太好求曼哈顿距离,但是思考后可以发现,只需要维护上下和左右两个方向的距离,计算时将两个的绝对值相加即为曼哈顿距离。代码#include <algorithm>#include <cmath>#include <iostream>#include <map>#include <queue>#include <set&g

2021-10-28 21:41:09 56

原创 POJ 1733 Parity game(离散化 + 并查集)

POJ 1733 Parity game(离散化 + 并查集)vj链接Solution跟 POJ 的那道食物链很像,这里是的环是两个节点,食物链的环是三个节点,其实就是把模数换成 2 即可。数据范围较大,个数较少,使用离散化。代码#include <algorithm>#include <cmath>#include <iostream>#include <map>#include <queue>#include <se

2021-10-28 21:35:45 71

原创 POJ 1456 Supermarket (贪心枚举 + 并查集)

POJ 1456 Supermarket (贪心枚举 + 并查集)vj链接Solution(暴力)按权值从大到小排序,从结束日期开始往前枚举判断是否能安排。(并查集优化)待补。代码#include <algorithm>#include <cmath>#include <iostream>#include <map>#include <queue>#include <set>#include <stdio.

2021-10-28 21:30:39 86

原创 POJ 1182 食物链(带权并查集)

POJ 1182 食物链(带权并查集)vj链接Solution与带权并查集做法类似,由于三者关系是一个环,可以使用取模运算来实现。代码#include <algorithm>#include <cmath>#include <iostream>#include <map>#include <queue>#include <set>#include <stdio.h>#include <strin

2021-10-28 21:18:57 56

原创 Codeforces Round #751 D Frog Traveler(dp)

Codeforces Round #751 D Frog Traveler(dp)cf链接Solution我们先将跳跃的步骤转换一下,即 将每次先跳到一个点,然后滑一段距离看作 每次先滑下一段距离,再向上跳一段距离参考:知乎https://zhuanlan.zhihu.com/p/425837640代码#include <algorithm>#include <cmath>#include <iostream>#include <map&gt

2021-10-27 17:34:42 245

原创 Codeforces Round #750 (Div. 2) E - Pchelyonok and Segments (dp)

Codeforces Round #750 (Div. 2) E - Pchelyonok and Segments (dp)cf链接Solution定义 dp[i][j]dp[i][j]dp[i][j] 代表:从下标 i 到下标 n 区间内,将区间分为 j 段,第一段(即长度为 j 的一段)的最大值定义 sum[i]sum[i]sum[i] 代表:a[1]+...+a[i]a[1]+...+a[i]a[1]+...+a[i] 的区间和。转移方程:if(sum<dp[i+j][j−1]

2021-10-26 21:48:43 117

原创 Codeforces Round #750 (Div. 2) F1. Korney Korneevich and XOR (dp)

Codeforces Round #750 (Div. 2) F1. Korney Korneevich and XOR (dp)cf链接Solution维护数组 v[n] ,v[i]v[i]v[i] 代表以元素 i 作为 x 的值时,子序列末尾元素的最小值,再用一个数组 vis[n],vis[i]vis[i]vis[i] 代表 i 这个值能否取到。对于 a 数组中每一个元素都进行一次遍历,如果 vis[j]==1且v[j]<a[i]vis[j] == 1且 v[j]<a[i]vis[j

2021-10-26 20:33:27 172

原创 2021AutoX安途杯中山大学程序设计校赛 I Lucky Numbers ABCD(构造)

2021AutoX安途杯中山大学程序设计校赛 I Lucky Numbers ABCD(构造)牛客链接Solution等式 [k∗x]∗[(k+1)∗(x+1)]=[(k+1)∗x]∗[k∗(x+1)][k*x]*[(k+1)*(x+1)]=[(k+1)*x]*[k*(x+1)][k∗x]∗[(k+1)∗(x+1)]=[(k+1)∗x]∗[k∗(x+1)]只需要找到 k,x 即可。令 x 等于 sqrt(n),找到 k 即可。我试了直接取n,n+1,n−2,n−1\sqrt n,\sqrt {n

2021-10-26 18:48:43 341

原创 2021AutoX安途杯中山大学程序设计校赛 G Stack Sort I(基数排序)

2021AutoX安途杯中山大学程序设计校赛 G Stack Sort I(基数排序)牛客链接Solution基数排序的变式 (虽然我在写这题之前连基数排序是什么都不知道)先对所有数离散化,然后对于其二进制上的每一位,如果是 1 ,放入栈 3 中如果是 0 ,放入栈 2 中离散化后数组元素最大 1000 ,其二进制最多有 10 位数,即每次取出或放回操作最多执行 10 次,加起来每次执行最多 20 次操作,执行 1000 次之后也小于等于 20000代码#include <algor

2021-10-26 17:31:33 194

原创 2021AutoX安途杯中山大学程序设计校赛 B Lights and Robot(思维)

2021AutoX安途杯中山大学程序设计校赛 B Lights and Robot(思维)牛客链接Solution这里有一个结论 (据说是找规律能找出来) :假设打开了 cntr 行和 cntc 列的灯,那么所有亮灯的总数为n∗cntr+n∗cntc−2∗cntr∗cntcn*cntr+n*cntc-2*cntr*cntcn∗cntr+n∗cntc−2∗cntr∗cntc有了这个结论,我们就可以处理不进行对角线开关的所有操作。对于对角线的操作,我们可以维护对角线上的所有亮灯的数量和对角线状态,

2021-10-26 16:43:58 242

原创 2021 牛客小白月赛39 G-冷静 (离线处理 + 树状数组 + 线性筛)

2021 牛客小白月赛39 G-冷静 (离线处理 + 树状数组 + 线性筛)牛客链接Solution简化题意,此题就是要求 1 ~ n 中有多少个最小质因数大于等于 K 的数。可以用线性筛预处理出值域内所有数的最小质因数,每次使用树状数组查询出 1 ~ n 中有多少个数的最小质因数小于 K,用 n - 1 - K 即可(1 需要特判,所以减去1)。由于每次查询的都是 1 ~ nin_ini​ 中的数,所以应当保证 nin_ini​ 递增的,选择离线处理。如:第一次我们查询了 1 ~ 100 中

2021-10-24 17:25:16 93

原创 2021 牛客小白月赛39 C-奋发 (思维)

2021 牛客小白月赛39 C-奋发 (思维)牛客链接Solution手推一下可以发现,我们可以将操作简化,每次操作完都让 A = a[t], B = b[t]只要计算此过程中有几次 A = B 即可。此时有两种情况:① min(a[t],b[t])>=max(A,B)min(a[t], b[t]) >= max(A,B)min(a[t],b[t])>=max(A,B)此时操作数最大值为 min(a[t],b[t])−max(A,B)+(A!=B)min(a[t],b[t])

2021-10-24 17:04:13 92

原创 HDU 3038 How Many Answers Are Wrong(带权并查集)

HDU 3038 How Many Answers Are Wrong(带权并查集)vj链接Solution带权并查集好题。先把区间和从左闭右闭变为左闭右开,方便我们写并查集。即把 [a, b] 变为 [a, b + 1)然后就是权值的更新 (想了好久,果然还是太菜了。。)代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include&

2021-10-22 22:41:50 55

原创 HDU 1213 How Many Tables(并查集)

HDU 1213 How Many Tables(并查集)vj链接Solution并查集模板题。代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<vector>#include<map>#include<cmath>#include<string>#include<q

2021-10-22 21:52:26 73

原创 POJ 1611The Suspects(并查集)

POJ 1611The Suspects(并查集)vj链接Solution并查集模板题,最后找一遍有多少和 0 点在同一集合即可。代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<vector>#include<map>#include<cmath>#include<string&

2021-10-22 21:50:22 67

原创 POJ 2236 Wireless Network(并查集)

POJ 2236 Wireless Network(并查集)vj链接Solution并查集模板题,套板子就行。代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<vector>#include<map>#include<cmath>#include<string>#inclu

2021-10-22 21:48:08 35

原创 POJ 3169 Layout(差分约束)

POJ 3169 Layout(差分约束)vj链接Solution参考: https://xiaoxiaoh.blog.csdn.net/article/details/104216970代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<vector>#include<map>#include&lt

2021-10-22 21:46:05 60

原创 HDU 4725 The Shortest Path in Nya Graph(分层图 + dij)

HDU 4725 The Shortest Path in Nya Graph(分层图 + dij)vj链接Solution在每一层建一个虚拟入点和出点。每层的所有点向虚拟出点连一条权值 0 的单向边;每层的虚拟入点向所有本层的点连一条权值为 0 的单向边;每层的出点向上一层和下一层的入点连一条权值为 c 的单向边;跑一遍dij即可代码#include<stdio.h>#include<string.h>#include<algorithm>#in

2021-10-22 21:42:32 52

原创 POJ 3159 Candies(差分约束、dij堆优化)

POJ 3159 Candies(差分约束、dij堆优化)vj链接Solution差分约束好题xB−xA≤cx_B - x_A \leq cxB​−xA​≤c 可以变为:xB≤c+xAx_B \leq c + x_AxB​≤c+xA​因此,我们可以建一条 A 到 B 的边,题目求 xn−x1x_n - x_1xn​−x1​ 的最大值,即求从 x1x_1x1​ 到 xnx_nxn​ 的最短路。代码...

2021-10-21 21:37:14 40

原创 Light OJ 1074 Extended Traffic(floyd判负环)

Light OJ 1074 Extended Traffic(floyd找负环)vj链接Solution我发现网上此题好像没有 floyd 的题解,那么我就来写一发。使用 floyd 判负环时,我们可以跑一遍 floyd,然后遍历所有的点,如果此点到自己的距离小于 0,说明其一定在负环内,那我们就以此点作为起点,dfs 染色所有负环内的点(可参考 spfa 解法)注意这里 inf 的值比初始化 dis 数组时的值要小一些,因为松弛时有可能出现 0x3f3f3f3f + (一个小于0的值),此时我们

2021-10-21 21:21:28 103

原创 POJ 1847 Tram(folyd + 思维)

POJ 1847 Tram(folyd + 思维)vj链接Solution乍一看可能会觉得跑最短路时需要改路径的值,但我们仔细思考后会发现,我们在最短路径上走过的点一定不会再走回来,如果有回头路,那么我们完全可以不走到前面的点。因此只需要按题意建边权为 0 和 1 的边即可。代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include&lt

2021-10-21 21:13:45 62

原创 POJ 1602 昂贵的聘礼(区间枚举 + dij堆优化)

POJ 1602 昂贵的聘礼(区间枚举 + dij堆优化)vj链接Solution一开始以为是相邻的两个人等级不能超过m。。wa了好多发观察到点的总数不超过 100,那么只要区间 [level[1]−m,level[1]][level[1]-m,level[1]][level[1]−m,level[1]] 为下界,每次跑一遍 dij 即可,最多跑 m 次,如果使用离散化处理的话可以优化到最多跑 100 次 (数据水了所以代码里没用)代码#include<stdio.h>#inclu

2021-10-21 21:08:08 73

原创 POJ 2502 Subway(dij堆优化)

POJ 2502 Subway(dij堆优化)vj链接Solutiondij 模板题,注意细节速度单位是 km/h,距离单位是 m, 输出时间单位是 min代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<vector>#include<map>#include<cmath>#incl

2021-10-21 20:59:05 68

原创 POJ 2240 Arbitrage(map + floyed)

POJ 2240 Arbitrage(map + floyed)vj链接Solution最短路变形,只要最后有一点到自己的最长路大于 1 说明可以一直刷钱(floyed,我滴超人!)代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<vector>#include<map>#include<cm

2021-10-19 21:39:51 70

原创 POJ 3660 Cow Contest(floyed)

POJ 3660 Cow Contest(floyed)vj链接Solution挺有意思的一题。第一眼看以为是裸拓扑排序,但是本题要求的是有多少头牛可以有一个精确的排名,写 拓扑排序 的时候就会发现不好找出每头牛是否有精确的排名一头牛有精确排名,就意味着比这头牛强的和比这头牛弱的 两种牛数量加起来恰好为 n - 1 ,因此只要想办法找出比这头牛强的牛有多少,弱的有多少即可我们可以每次将强的牛向弱的牛连边,再使用 floyed 跑一遍最短路,从 A 到 B 的最短路程若不为 inf,则说明 A 一

2021-10-19 21:35:47 49

原创 POJ 1502 MPI Maelstrom(floyed模板题)

POJ 1502 MPI Maelstrom(floyed模板题)vj链接Solution模板题。。代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<vector>#include<map>#include<cmath>#include<string>#include&lt

2021-10-19 21:27:55 125

原创 POJ 3259 Wormholes(SPFA判负环)

POJ 3259 Wormholes(SPFA判负环)vj链接Solutionspfa 模板题将虫洞的边权 作为负权边加进图中即可代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<vector>#include<map>#include<cmath>#include<string

2021-10-19 21:25:38 61

原创 2021 robocom 复赛 7-1 (思维)

2021 robocom 复赛 7-1 (思维)pta链接Solution比赛时完全乱搞骗分。。补题时一开始没有把 c == 0 的情况考虑进去。。代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<vector>#include<map>#include<cmath>#include&

2021-10-19 21:02:59 141

原创 2021robocom 复赛 7-2 (01背包)

2021robocom 复赛 7-2 (01背包)pta链接Solution比赛时直接排序乱搞过了。。dp问题做的太少,完全没发现是道 01背包 。。(什么是傻人有傻福啊)代码#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;typedef double dd;const int MAXN = 1010;

2021-10-19 20:45:16 158

原创 POJ 3268 Silver Cow Party(dij堆优化)

POJ 3268 Silver Cow Party(dij堆优化)vj链接Solution吐了这个POJ的评测机。。一道 dij 模板题,我用了堆优化建两张图跑两次 dij 即可,没啥要注意的细节代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<vector>#include<map>#inclu

2021-10-18 22:46:32 49

原创 POJ 2253 Frogger (floyed,路径最小值最大化)

POJ 2253 Frogger (floyed,路径最小值最大化)vj链接Solution直接套 floyed 模板,更新的时候令 dis[i][j]=max(dis[i][j],min(dis[i][k],dis[k][j]))dis[i][j] = max(dis[i][j], min(dis[i][k], dis[k][j]))dis[i][j]=max(dis[i][j],min(dis[i][k],dis[k][j]))代码#include<stdio.h>#includ

2021-10-18 21:30:26 44

原创 POJ 1797 Heavy Transportation(最短路变形、最小距离最大化)

POJ 1797 Heavy Transportation(最短路变形、最小距离最大化)vj链接Solution每次取出最大边更新。注意重边和有些点可能无法到达的情况。代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<vector>#include<map>#include<cmath>

2021-10-18 21:25:39 48

原创 2021 CCPC 1011 Jumping Monkey

2021 CCPC 1011 Jumping Monkeyhdu链接Solution又是这样的建图方式。。与之前 robocom 初赛第四题类似,在一个建好的图中删除点不容易实现,所以考虑实现逆过程,将要删除的点一个个加进图中。题还是做少了,比赛的时候觉得连通块要用 Tarjan 处理,实际上可以使用并查集维护代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iost

2021-10-17 16:48:21 63

原创 2021CCPC重赛 1005 Monopoly

2021CCPC重赛 1005 Monopolyhdu链接Solution注意对负数的取模方法,注意特判0查找最后一个小于等于x的方法:使用 pair <元素值乘 -1 ,数组内下标>,排序后查找第一个大于等于 -x 的值代码#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<vector>#inclu

2021-10-17 15:53:43 83

原创 2021ICPC(II) L (线段树+欧拉函数)

2021ICPC(II) L (线段树+欧拉函数)Solution对数论太过不熟导致知道要用线段树也不知道如何维护。。。Code#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<math.h>using namespace std;typedef double dd;typedef long long ll;cons

2021-10-04 22:35:01 79

空空如也

空空如也

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

TA关注的人

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