自定义博客皮肤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)
  • 收藏
  • 关注

原创 (纪中)1312. 老曹的忧郁【数学】

解题思路题目大意:三个同字母小圆若能组成为一个等边三角形,该字母为不和谐的。我们可以以最后一行的第一个圆的圆心作为原点,规定向右、向上为x、y轴的正方向,圆的半径为单位距离,建立笛卡尔(平面直角)坐标系,然后三重循环枚举同字母的点,判断两两之间的距离是否相等。关键在于怎样求距离,可以先求出每个点的坐标,那么,第x行第y个圆的圆心,在坐标系中哪个点呢?如上图,我们很容易看出A点的横坐标是n+2y−x−2n+2y-x-2n+2y−x−2,竖坐标是n−xn-xn−x,股定理可以得出两点间长度是3–...

2021-08-27 00:18:23 102

原创 【Ybtoj 第31章】第5章 博弈论

目录A. 【例题1】取火柴游戏B. 【例题2】数字游戏C. 【例题3】魔法珠D. 【例题4】剪纸游戏A. 【例题1】取火柴游戏解题思路》》洛谷linkNIM游戏模板 主要是输出方案必胜情况下 必有 ai xor x<xa_i~xor~x<xai​ xor x<x 找到aia_iai​ 并输出即可代码#include<iostream>#include<cstdio>#include<algori

2021-08-24 16:24:53 207 1

原创 【Ybtoj 第30章】组合数学

目录A. 【例题1】计算系数A. 【例题1】计算系数解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#define ll

2021-08-24 15:54:28 194

原创 (纪中)1328. Party【SPFA】

解题思路考虑要计算来回,就从起点分别两遍SPFA,一遍原图,一遍反图(把所有边反向)。计算两遍的和就好了代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#define ll..

2021-08-24 14:53:13 100

原创 (纪中)1327. Mobile Service【DP】

解题思路在第一反应下,我们不难想出以下状态:f[i][x][y][z]f [ i ] [ x ] [ y ] [ z ]f[i][x][y][z] 表 示 完 成 了 前 i 个 请 求 , 三 个 员 工 分 别 位 于 x,y,zx , y , zx,y,z位 置 的 最 小 花 费 f[i][x][y][z]f[i][x][y][z]f[i][x][y][z] 表示完成了前i个请求,三个员工分别位于 x,y,zx,y,zx,y,z 位置的最小花费f[i][x][y][z]f[i][x][y][..

2021-08-24 14:50:17 87

原创 (纪中)1326. Window【单调队列】

解题思路滑动窗口之单调队列经典例题。。(应该用线段树/RMQ等也能过)代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#define ll long long#def...

2021-08-24 14:47:02 78

原创 (纪中)1325. YL杯超级篮球赛【带权中位数】

解题思路因为他求的点与点的距离并不是勾股定理,所以,这道题就变得简单了许多,点与点的距离,只跟横坐标与纵坐标的差距有关系,所以我们就可以将点的横坐标和纵坐标分开来讨论。考虑如果w的值为1的话,那就很好做了,就是都选中位数嘛。对于w>1的情况;你可以想象成复制了w个这样的点,在复制成w个之后再分别找中位数就是答案了;代码#include<iostream>#include<cstdio>#include<algorithm>#include<..

2021-08-24 14:44:22 116

原创 (纪中)1299. 洗盘子【DP】

解题思路我们可以设吃掉第i盘菜的最少时间为fif_ifi​首先我们要明确,这个最少时间的总数一定不超过nnn(一个一个吃都最大为n),设jjj为一次吃jjj盘菜,那么我们显然可知j最大为sqrt(n)sqrt(n)sqrt(n)那么我们构思一个O(nsqrt(n))的算法:用pi,jpi,jpi,j表示从第i盘菜往前数,得到jjj个菜种的最远离第iii盘菜的菜的位置,然后由于每次都需要更新这个p值(因为加了第i盘菜嘛)所以我们把pi,jpi,jpi,j简化为pjpjpj得方程:fi=minf...

2021-08-23 16:26:06 139

原创 (纪中)1298. 牛棚【DP】

解题思路对于奶牛的分布,要求在第1和第s个牛棚上,都有一只奶牛,其次题目给出一个w=(s−1)/(n−1)w=(s-1)/(n-1)w=(s−1)/(n−1),使相邻的两个奶牛的距离最小是w最大是w+1,又因为首尾都有奶牛,所以在n奶牛形成的n−1n-1n−1个空隙中v=(s−1)mod(n−1)v=(s-1)mod(n-1)v=(s−1)mod(n−1)个的长度是X+1X+1X+1,其余都是X。先求出w=(s−1)/(n−1)w=(s-1)/(n-1)w=(s−1)/(n−1),v=(s−1)m...

2021-08-23 16:10:23 88 1

原创 (纪中)1297. 滑雪【SPFA】

解题思路打个SPFA模板,维护到每个点的时间的最小值,多记录一下到某个点的速度。代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#define ll long long...

2021-08-23 16:04:08 83

原创 ( 纪中)1296. 城墙【暴力】

解题思路把原序列和目标序列排个序,求对应每项相差的和。代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#define ll long longusing namesp...

2021-08-23 15:57:12 75

原创 (纪中)3463. 军训【单调队列】【DP】【二分】

解题思路题目中要求最小值的最大值,这种求最大最小双最值得问题可以很容易想到用二分答案来做.那对于判断ansansans的checkcheckcheck是否能用贪心求解?显然对于某一连续段而言,加入一个学生,可以增加其女友指数,但也有可能使得欠扁值增大,并没有什么能够保证正确性和最优性的贪心,那么可以考虑DP,则可得到转移方程如下:(dp[i]表示到第i个学生时,最大的欠扁值)显然转移一次复杂度为O(n),总的时间复杂度为O(n^2),显然是会超时的.但是实际上并非所有的转移都是有效的,有的实际...

2021-08-21 17:05:26 88

原创 (纪中)7221. Portals【并查集】

___解题思路题意还是比较容易读懂的,主要就是关于题意转换比较难想,让我们看一下具体操作,究竟发生了些什么。如以下问题所述:存在两个节点 pipipi , 每个节点有 v1,v2,v3,v4v_1, v_2, v_3, v_4v1​,v2​,v3​,v4​ 四个传送门, 两个节点的关系如下图。每个点出现两次表示每个点的度数为 2,而联通的图如果每个点的度数为 2,则一定是一个环。如果图不连通,则是若干个环。现在我们要使得图联通,也就是合并这些环,我们发现花费 w_i的代价可以将 a_i,c_.

2021-08-21 16:55:43 84

原创 (纪中)最近公共祖先【数学】

解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#define ll long longusing namespace std;const ll mod=...

2021-08-21 16:38:56 62

原创 (纪中)3410. Tree【最小生成树】

解题思路我们可以枚举平均数,然后根据 (ai−aˉ)2(a_i-\bar{a})^2(ai​−aˉ)2 进行排序,跑最小生成树就可以了,边跑边记录加入了哪些边及总边权和,跑完后算出正确的平均数,更新答案。平均数每次加0.250.250.25. (不明原因)代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring&...

2021-08-20 21:00:26 83

原创 (纪中)3442. 期望异或【数学?】

解题思路这道题的解法还是有点颠覆了我,不符合我正常阅题逻辑。。讲解》》大新闻代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#...

2021-08-20 20:55:25 124

原创 (纪中)3441. 小喵喵的新家【线段树】【差分】

解题思路本来在题中扇形面积的计算公式是这样的:S扇形=所占的份数2m\frac{所占的份数}{2m}2m所占的份数​πr2πr^2πr2由于“你只需要输出 T×2m/πT×2m/πT×2m/π的值即可 ”,所以就变成了:S扇形=所占的份数r2r^2r2把整幅图看作一个半径为100000100000100000的大圆。它被分成了2m2m2m份,我们一份一份求覆盖不小于kkk次的面积。例子:其中一份如图所标,我们红色的扇形被三条毛毯所穿过,题目说被不少于k条毛毯覆盖,那我们就从半径最...

2021-08-20 20:47:03 68

原创 (纪中)3440. 答题卡【模拟】

解题思路nmmp,XXoj,气死了,非说我输出了我并未输出的东西。。换了个写法就过了。。。A完后内心:我要热爱生活,热爱生命,不能因为一道题放弃超大模拟,你值得拥有!!关于字符串:stringstringstring类型加字符要直接加a[i].s1=a[i].s1+w;a[i].s1=a[i].s1+w;a[i].s1=a[i].s1+w;不能写成:a[i].s1[++cnt]=w;a[i].s1[++cnt]=w;a[i].s1[++cnt]=w;getlinegetlinege...

2021-08-20 20:30:38 112

原创 (纪中)7240. Just Green Enough

解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#define ll long long#define ldb lon...

2021-08-19 20:37:25 74

原创 (纪中)7239. Year of the Cow【数学】

解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#define ll long long#define ldb long...

2021-08-19 20:34:36 138

原创 (纪中)7238. Comfortable Cows

解题思路就纯模拟,动态的考虑,每加进一个点,给它相邻的四个点的标记加1,一旦一个奶牛所在的点的标记等于3,就给那个点相邻的没牛的最后一个点放牛。加点的时候判断该位置是否已经有牛。若已经有牛,则说明之前的操作必须使该位置有牛才最优,因此此时可以将答案减去 1。PS:存图的时候下标可能会超出边界,就考虑极限,让每个坐标的值加 10001000.不要忘记加上的点自身也可能会是舒适的奶牛,所以不要忘记递归该点。代码#include<iostream>#include&...

2021-08-19 20:31:19 215

原创 【洛谷 P7151 】 Replication G【BFS】

解题思路链接P7151 [USACO20DEC] Replication G 题解代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set&gt...

2021-08-19 20:25:50 76

原创 【Ybtoj 第29章例2】约数之和【同余问题】

解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#define ll long long#define ldb long...

2021-08-18 18:47:32 184

原创 【洛谷 P3369】 普通平衡树【平衡树 Treap】

解题思路平衡树:利用BST性质查询和修改,利用随机和堆优先级来保持平衡,把树的深度控制在log N,保证了操作效率基本平衡树有以下几个比较重要的函数:新建,插入,删除,旋转节点的基本属性有val(值),dat(随机出来的优先级)通过增加属性,结合BST的性质可以达到一些效果,如size(子树大小,查询排名),cnt(每个节点包含的副本数)等由于每个操作用代码比较好介绍,这里就直接放代码介绍:int ch[maxn][2];//[i][0]代表i左儿子,[i][1]代表i右儿子新增节点...

2021-08-18 16:42:13 456

原创 (纪中)4769. graph【二分图线段树分治】

解题思路这道题就是二分图线段树分治的板子,把总时长看成总操作数m,每条边对应的时间区间就是他加入的第i个操作到他删掉的第j个操作,如果没有删掉的操作就是i~m。剩下的就和二分图线段树分治板子题一模一样了:link代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath&...

2021-08-18 16:32:16 108

原创 【洛谷 P5787】二分图 线段树分治【二分图】【线段树分治】

解题思路题目大意:一张图有 n 个节点的图, 在 k 时间中会出现 m 条边,表示有一条连接 x,y 的边在 l 时刻出现 r 时刻消失,求问在第 i 个时间段中图是否为二分图。先对于二分图来分析:如果顶点 V 可分割为两个互不相交的子集 (A,B) ,并且图中的每条边 (i,j)所关联的两个顶点 i 和 j 分别属于这两个不同的顶点集 (i∈A,j∈B) ,则称图 G 为一个二分图。 —— 百度百科。在一般的做法中对于一个图是否为二分图,我们一般是采用染色法,如果一个图为二分图,那么一条边...

2021-08-18 16:27:20 355

原创 【洛古 P7297】 [USACO21JAN] Telephone G【分层图】【SPFA】

解题思路最后跑从1到n的最短路即可(样例的图:超级丑但是是对的)代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#defin...

2021-08-17 20:48:02 143

原创 【洛古 P7296】 [USACO21JAN] Uddered but not Herd G

解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#define ll long long#define ldb long...

2021-08-17 20:39:59 134

原创 (纪中)7236. Modern Art 3【区间DP】

解题思路写过的题也没做出来:blog代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#define ll long long#...

2021-08-16 21:27:32 68

原创 (纪中)7235. Stone Game【博弈论】

解题思路》》详情见 luogu代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#define ll long long#defi...

2021-08-16 21:24:55 62

原创 (纪中)7232. No Time to Dry【树状数组】

解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#include<set>#define ll long long#define ldb long...

2021-08-16 21:19:38 78

原创 (纪中)7218. Maze Tac Toe【DFS】【状压】

解题思路将3×33×33×3的棋盘共999个格子的状态通过状态压缩的方式用一个数字表示,0表示没有棋子,1表示放置了一个′M′'M'′M′,2表示放置了一个′O′'O'′O′所有状态数为39=196833^9=1968339=19683对于某个位置的状态的检查,可以预处理出3的次方幂方便直接进行调用,然后根据除法与取模获取状态考虑深搜这张图,记忆化搜索,设置vis数组标记每种状态是否已经搜索过,vis[i][j][k]表示走到位置(i,j),当前棋盘状态为k。如果走到当前位置需要执行一次行...

2021-08-16 09:10:06 160

原创 (纪中)7220. United Cows of Farmer John【树状数组】

解题思路我们考虑枚举每个右端点。然后前面合法的左端点有哪些呢?假设当前位置为 R,上一次出现位置为L,如果未出现当成1。则对当前位置为右端点来说,合法的左端点区间为 max(L,1)max(L,1)max(L,1)~ R−1R-1R−1树状数组维护每个区间不同数字的种类数代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include&lt...

2021-08-16 09:03:35 92

原创 (纪中)7226. Acowdemia【二分】

解题思路没想到简单的二分就是正解,二分最大可以达到的 h指数,然后维护可以用O(n)O(n)O(n)解决,一共可以帮忙增加K∗LK*LK∗L此引用,判断下达到 hhh指数需要增加多少次引用,若超过了或者某篇文章需要超过KKK次引用,returnreturnreturn 000。代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include&l...

2021-08-16 08:58:43 226

原创 (纪中)7219. Do You Know Your ABCs?【高斯消元】

解题思路我太开心了,T1打了两个小时,结果真的A了!!!其实思路还是挺简单的,就是多方程解三个未知数。先暴搜枚举每个x_i表示什么(A,B,A+C,A+B+C……),就是题目给出的七种,因为每个x_i都不一样所以这里可以剪枝一下。然后把每个x_i作为一个方程的答案,每个方程的样子是:x∗A+y∗B+z∗C=xix* A+y* B+z* C=x_ix∗A+y∗B+z∗C=xi​.我们要解的是A,B,C,已知系数x,y,z(因为系数这就是你深搜的东西,如:xi=A+Bx_i=A+Bxi​=A+B...

2021-08-16 08:53:04 180

原创 【Ybtoj 第28章例5】余数之和【质数和约数】

解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#define ll long long#define ldb long doubleusing namesp...

2021-08-14 14:00:55 116

原创 【Ybtoj 第28章例4】反素数【质数和约数】

解题思路代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#define ll long long#define ldb long doubleusing namespa...

2021-08-14 13:23:38 173

原创 【Ybtoj 第28章例2】质数距离【质数和约数】

解题思路首先我们发现:R−LR-LR−L 的范围很小,我们应该要能够快速求出 L∼RL∼RL∼R 之间的质数。显然有推论:任意一个合数 x 必定包含一个不超过 x\sqrt xx​的质因子。所以我们可以筛出 [1,R][1,\sqrt R][1,R​] 之间的所有质数,对于每个质数 pp,把 [L,R][L,R][L,R]中能被 ppp 整除的数标记为合数。最终没有被标记的数就是质数,对相邻的质数两两比较,找出差值最小和最大的即可。代码#include<iostream>#i...

2021-08-14 08:24:28 133

原创 【Ybtoj 第28章例3】不定方程【质数和约数】

解题思路由原题的式子可推出:y=xn!x−n!y=\frac{xn!}{x-n!}y=x−n!xn!​,我们设t=x−n!t=x-n!t=x−n!,则x=t+n!x=t+n!x=t+n!,得到y=n!+(n!)2ty=n!+\frac{(n!)^2}{t}y=n!+t(n!)2​,因为n和y是整数,所以t一段要是(n!)2(n!)^2(n!)2的约数,题目就变成了求(n!)2(n!)^2(n!)2的约数个数,即求∏i=1m(ci+1)∏_{i=1}^m(c_i+1)∏i=1m​(ci​+1)对于一...

2021-08-14 08:24:16 157

原创 【Ybtoj 第28章例1】线性筛素数【质数和约数】

解题思路欧拉筛就行了代码#include<iostream>#include<cstdio>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<map>#include<queue>#define ll long long#define ldb long doubleusing ...

2021-08-13 22:22:17 119

空空如也

空空如也

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

TA关注的人

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