自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 要是我再犯这种憨憨错误就.../(ㄒoㄒ)/~~

1. 乘法取模的时候,记得先取模再相乘,不然很可能炸。eg: HDU6961数据范围达到 1e18,而答案为

2021-07-26 11:45:46 31

原创 1005 Monopoly 同余求解(2021中国大学生程序设计竞赛CCPC-网络选拔赛重赛)

传送门题意:告诉你一个长度为n的环及每个点的权值,从起点0出发,经过一个点时精力就加上其权值;现问达到精力x需要最少走多少步。思路: ·后面才发现自己赛中的思路是错的:很明显 x = y+ k*sum (y就是一个对应的(pre[j]%sum+sum)%sum,而显然 ans = k*n+j),我是先利用 x/sum求到对应的 k,再判断是否有相应的 pre[j]存在;但是显然这种方法存在错误,因为不管怎样 j<=n 是必然的,所有我们这样求到的 k 肯定是最大k...

2021-10-29 11:20:25 36

原创 Yapi的安装与配置(转载)

在最近的flutter项目中遇到必须使用自定义接口获取数据时遇到了一些问题。这里是关于yapi工具的下载安装及配置的收藏教程,比官网教抽象的教程详细具体多了。b站视频教程 百度网盘资源 提取码:dr97...

2021-08-31 02:53:47 113

原创 1003.VC Is All You Need (思维 / 多维SVM问题)(2021“MINIEYE杯”中国大学生算法设计超级联赛5)

传送门题意:问是否始终能找到一个k-1维的空间能将k维空间中的n个点区分开,n个点只有两种颜色选择。思路:仔细分析,但凡n比k-1大2及以上都无法实现,即n-k>1都不满足。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define l.

2021-08-15 10:38:58 27

原创 1008.Smzzl with Greedy Snake (模拟贪吃蛇) (2021“MINIEYE杯”中国大学生算法设计超级联赛7)

传送门题意:给你贪吃蛇的初始位置以及依次出现的n个食物的坐标位置,'0' '1' '2' '3' 分别表示y轴顺时针表示的四个方向,当前食物被吃掉后才会出现下一食物,因此贪吃蛇必须依次吃掉这n个食物。贪吃蛇无论是向前移动一步还是顺时针/逆时针旋转90°的耗时都是一个时间单位.现需要你找到其最快吃完所有食物的移动方案。'u'表示逆时针旋转90°,'c'表示顺时针旋转90°,'f'表示前进一步。思路:点到点的模拟一下即可,只不过需要注意以下当贪吃蛇的头向和食物为反向时的路径方案最优可以少消耗一个时间..

2021-08-15 10:26:53 21

原创 1009.Singing Superstar (子串数量统计) (2021“MINIEYE杯”中国大学生算法设计超级联赛8)

传送门题意:需要寻找母串s中总共有多少个不相交的子串ai。思路:由于|s|达到1e5,且子串数量n也有1e5的大小,显然不能暴力寻找。再结合子串|ai|最多30的长度,我们可以遍历到s的每个位置时都截取1~30长度的子串,这样复杂度最多O(n*30)再加上一些函数和map的耗时2s也足够了,再利用二维数组统计每个子串的数量。最后需要注意的是,会有重复的ai,于是再利用二维数组统计时需避免重复。代码实现:#include<bits/stdc++.h>#define endl..

2021-08-15 10:14:50 46

原创 H.Happy Number (进制转换/第n个特殊数)(2021牛客暑期多校训练营9 )

传送门题意:寻找第n个只包含 ‘2’ ‘3’ 和 ‘6’的数字。思路:有点类似与二进制,只不过这里是把 n 转换为三进制数 x ,再通过 x 转换为对应的数字。特别需要注意的是 x 中为 0 的位置 其实代表需要向前借一位,再将余下的数对应为相应的数字。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#def..

2021-08-15 10:00:11 50

原创 1001.Calculus(函数收敛性判断)(2021“MINIEYE杯”中国大学生算法设计超级联赛4)

传送门题意:题目要求判断S(x)函数在正无穷是是否收敛,给出S(x)是f(x)的前缀和,而f(x)又是函数集合F中的n个子函数组合而成的,题目t组数据,每次给出f(x)函数,求S(x)的收敛性。思路:由于S(x)需要收敛,于是F集合中具有周期波动性的子函数就不可取,再者S(x)是f(x)的前缀和,于是F中无论是单调还是不单调的子函数甚至常量也是不可取的(0除外)。于是题目就变得很简单了,由于C又是非负的常量,便不会存在子函数的加减相互抵消;我们子需要通过判断是否有除0以外的常量存在即可。代码

2021-07-29 23:58:32 23

原创 1009.License Plate Recognition(思维 / 线性扫描 / 标记汉字边界)(2021“MINIEYE杯”中国大学生算法设计超级联赛4)

传送门题意: 每次给出一张30*100的矩阵,其中"#"表示车牌字迹部分,"."表示黑色背景。现需要你找到7个字的左右边界。思路:直接一列一列扫描判断边界即可,但是注意有一个坑——第一个汉字像"川"在这种方法下分别会有三个左右边界,于是在输出的时候对应找到汉字真正的左右边界即可。代码实现:#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#...

2021-07-29 23:39:38 24

原创 1002.Kanade Loves Maze Designing(路径上的边种类数 / dfs暴力搜索) (2021“MINIEYE杯”中国大学生算法设计超级联赛4)

传送门题意:一个无向树形图上每个点都有其自己的权值 c[i], 给出第 i(2<=i<=n) 个点直接相连的点 p[i],现在需要求 f(i, x)的值并分别对1e9+7和1e9+9取模输出答案。思路:建立无向图后,每次以第 i 个点为根节点进行暴搜,得到a[i][j]的值,然后再求对应的 f(i, x)即可。暴搜时复杂度为 O(n*(n-1)),结果处理时复杂度O(n^2),题目5000的数据范围是能够通过滴。代码实现:#include <cstdio&gt..

2021-07-29 23:27:35 47

原创 A. Alice and Bob (博弈?思维&暴力)(2021牛客暑期多校训练营1)

传送门题意:Alice先手,与Bob轮流进行拿石子操作,每次从一堆石子中拿出 k(k>0) 颗石子则从另外一堆拿出 k*s(s>=0) 颗石子。谁无法进行操作谁输掉比赛。思路:说实话是不怎么知道这个博弈该怎么写的,听说赛中许多人都是打表过的这题(就很绝)。赛后看其他大佬题解才知道这个题其实是可以暴力卡过去的。我们初始化标记 f[i][j] ==1 表示初始两堆石子为 i和j 时为必赢态,反之为必输态。然后我们枚举 i 和j,再分别枚举 k和s 处理 f[i+k][j+k*s] .

2021-07-29 11:29:39 18

原创 1007.Photoshop Layers (十六进制 / 前缀和)(2021“MINIEYE杯”中国大学生算法设计超级联赛3)

传送门题意: 有n层具有颜色涂层,其颜色由Ri, Ci,Bi三个指标对应6个长度的16进制数表的。现问你 [li, ri]区间涂层的颜色重叠在一起是什么颜色。重叠规则如下: * 若第i层的 wi==1,那么它只会显示自己的颜色(Ri,Gi,Bi)。 * 若第i层的 wi==2,那么它的颜色就是自身与先前层次的颜色和(min(Rp+Ri,255),min(Gp+Gi,255),min(Bp+Bi,255),颜色会有上限255。针对 p 次询问回答每个区间最后的颜色是什么。...

2021-07-27 18:26:32 68

原创 F. Find 3-friendly Integers (特殊数字 / 找规律) (2021牛客暑期多校训练营1)

传送门题意:将每个数看作一个字符串的话,如若其任何一个子串的十进制数对 3 取模为 0 的话,则这个数为 3-friendly 数字。现需要你找到区间 [L,R]中有多少个这样的数字。思路:通过寻找规律不难发现,当数字上升到三位数时就都是 3-friendly 数字了;因此我们只需要预处理出 [1,100] 中的非3-friendly数即可。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NU.

2021-07-24 10:52:19 27

原创 B. Ball Dropping (简单几何计算 / 相似三角形) (2021牛客暑期多校训练营1)

传送门题意: 给出如图所示的梯形柱和球的 a, b, h, r ,试问该球体是否能成功掉出柱体,若无法掉落则计算出其球星距柱体底面的距离 ?思路:简单的利用三角形的相似就能推算出来了。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int&g...

2021-07-24 10:38:56 49

原创 D. Determine the Photo Position (简单找子串)(2021牛客暑期多校训练营1)

传送门题意:在 n*n 的字符矩阵中的每一行找出能把 m 长由 '2' 组成的字符串放入的位置数('0' 的位置表示空缺可填补)。思路: 简单遍历每一行记录一下即可。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lo...

2021-07-24 09:58:12 22

原创 换根dp(啊啊啊啊啊)

传送门思路: * 首先就是常规的dfs求根节点到其他所有点的距离和。如若x为根节点,y为x的直系子节点,那么y所在子树对x的贡献为dis[y]+cnt[y],dis[y]为y到以y为根节点的所有子树节点的距离和,cnt[y]为y做根节点的所有子树节点数。 * 再进行换根dp处理。在将根节点从x移动到y的时候,dp[y] = dp[x]-cnt[y]+(n-cnt[y);其中的-cnt[y]是将以y引申出来的cnt[y]条路径都-1,而+(n-cnt[y])是将从x引申出来的不...

2021-07-09 15:04:20 33

原创 pip一直更新失败?多数是网络问题!

连接超时,在国内找个镜像服务器就解决了python-mpipinstall--upgradepip-ihttps://pypi.douban.com/simple

2021-06-03 19:54:04 99

原创 HDU Ice_cream‘s world I (并查集判环)

传送门题意:给出yi'g

2021-05-28 01:45:09 24

原创 I.Jam-packed (均分/最大最小值) (2021年度训练联盟热身训练赛第五场)

传送门题意:有 n 罐果酱和无限的箱子,每个箱子最多装k罐果酱,现让你对这些果酱进行装修,试问箱子重果酱的最大最小值为多少。思路:即要保证装箱数最少的同时,尽量均分的装入。如果n罐果酱正好能装满所有箱子(即n%k==0),则答案即为k;否则必定至少需要 n/k +1个箱子,又由于果酱不能浮点化,答案即为 n/(n/k+1)。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define

2021-05-07 01:41:03 111 1

原创 A.Binary Seating (概率) (2021年度训练联盟热身训练赛第五场)

传送门题意:n个人可以选择进或不进你负责的教室进行考试,他们考试需花的时间分别是,该教室所有人完成考试后你才能回家,现让你求回家时间的期望值。思路:先将时间序列进行降序排列;考试总时间为的概率为1/2;考试总时间为的概率为一号选手不选择该教室,二号选手选择该教室,即1/4;考试总时间为的概率为一二号选手都不选择该教室,三号选手选择该教室,即1/8;因此考试总时间为的概率为,期望即为。代码实现:#include<bits/st...

2021-05-07 00:54:56 74

原创 E.Figure Skating (字符串排序/签到) (2021年度训练联盟热身训练赛第五场 )

传送门题意:给出n个人的历史排名成绩和现在排名成绩,如果有人进步就输出进步最大的人名,否则输出"suspicious"。思路: 1.可以结构体排序写 2.也可直接标记前后排名情况,如果没有一点改变就是可疑,否则必定有进步的人,找出进步最大者即可。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long.

2021-05-07 00:16:13 32

原创 C.Ducky Debugging(简单判断/签到)(2021年度训练联盟热身训练赛第五场 )

传送门题意:这是一个简单的判断交互题,用getline()输入带空格的一整行字符串,如果最后是"?"结尾就输出“Quack!”,如果是"."结尾就输出“*Nod*”。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define l

2021-04-30 00:08:13 23

原创 B.Cutting Corners (简单几何/签到)(2021年度训练联盟热身训练赛第五场)

传送门题意:让求直角三角形两直角边的和与斜边的差值,告诉你两条直角边的值。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lowbit(x) (x &(-x))#define ls(x) x<<1#d

2021-04-30 00:00:01 47

原创 HDU 6206 Apple (计算几何_三点求圆 & 高精度浮点数 & Java大数_BigDecimal)

传送门题意:确定第四个点是否在前三个点形成的圆以外,若是输出"Accepted",否则输出"Rejected"。思路:这里应用其他大佬的证明过程(截图偏于保存,细则可移步查看)。有了圆心 (,),再带入任意一点便能求得半径值了。但是由于这个题的精度爆double,于是采取Java的大数BigDecimal来求解,这里先展示C++的代码思路结构。C++代码实现:#include<bits/stdc++.h>#define endl '\n'#def

2021-04-20 20:49:47 25

原创 A. Weird Flecks, But OK (计算几何&三维最小圆覆盖)(2021年度训练联盟热身训练赛第一场)

传送门题意:一个三维立方体中有 n 个瑕疵点,现希望能从某个平面垂直向下切一个圆能把所有瑕疵都去除,需要找到这个一次能去除所有点的最小圆直径,即找到三个维度上的最小圆覆盖。思路:比常规的最小圆覆盖多了一个维度,分三个方向求解三次取最小答案即可。代码实现1:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long

2021-04-20 00:56:09 36

原创 最小圆覆盖(计算几何基础)

传送门思路:① 随机化点集(可降低复杂度)② 初始随意找到两点,设为和,以和为直径做出初始圆(以 表示覆盖前 i 个点的最小圆)。③ 依次加入新的点,若当前点在圆中,则,否则以作为新的直径端点做圆(显然点在新圆的边界上)。④ 但是新圆又不一定能包含之前的所有 i 个点,于是我们遍历找到前 i 个点中不在中的点,那么点和一定都会在新圆的边界上,于是直接以为直径做出新圆。⑤ 同样也不一定能包含之前的所有 j...

2021-04-20 00:43:01 159

原创 H.On Average They‘re Purple(最短路裸题)(2021年度训练联盟热身训练赛第一场)

传送门思路:题目需要寻找 Bob 不得不改变的最小最大次数,即相当于找 1 到 n 最短路径,算是非常裸的题了。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lowbit(x) (x &(-x))#defin

2021-04-19 19:27:29 57

原创 F.Pulling Their Weight(数学思维&均分两组的分界只)(2021年度训练联盟热身训练赛第一场)

传送门题意:寻找一个中间值 t ,使得小于t的所有数的和与大于t的所有数的和能够相等(至于等于 t 的数则想办法均分),保证存在这样的t 值。思路:题目说了所有数不会超过20000,那么我们就从小枚举 t 值,且在过程中以前求小于 t 的数和进行判断即可。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long.

2021-04-19 14:58:12 56

原创 J.This Ain‘t Your Grandpa‘s Checkerboard (简单遍历)(2021年度训练联盟热身训练赛第一场)

传送门题目要求:①每一行的黑色方块数量相等 ②每一列的黑色与白色的方块数相等 ③ 每一行或列没有连续3个会以上的相同色块。思路:直接遍历统计一遍即可。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lo...

2021-04-19 14:29:22 36

原创 D. Some Sum (特判) (2021年度训练联盟热身训练赛第一场)

传送门思路:也没什么特别的,就是分情况特判下连续n哥数的奇偶即可。代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lowbit(x) (x &(-x))#define ls(x) x<<1#defin

2021-04-19 13:27:22 31

原创 CCF 202006-1 线性分类器 (结构体&扫描判断)

传送门题意:判断每条直线是否都能将AB两类点都分割开。思路:以第一个A点做标准,看其他的A点是否都和它在同一侧,或是否有B点和它同一侧,将所有点都扫描遍历一遍即可。代码实现:import java.util.*;public class Main { public static class node{ int x, y; public node(int x, int y){ this.x = x;

2021-04-11 10:47:36 22

原创 CCF 202009-2 风险人群筛查 (简单遍历统计)

传送门题意:给你一个矩阵范围和 n 个人的 t 个位置,让你判断有多少人进入过这个矩阵,又有多少人连续 k 个位置一直处于矩阵内。直接遍历统计一下即可,注意逗留的人也算经过。代码实现:import java.util.*;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = i

2021-04-10 02:12:09 19

原创 CCF 202009-1 称检测点查询 (简单结构体排序)

传送门题意:目标就是找到 n 个点中离 (X,Y)直线距离最近的情况下编号最小的三个点,直接记录每个点与 (X,Y)的距离再结构体排序一下就好啦。代码实现:import java.util.*;class node implements Comparable<node>{ int id, da; public node(int id, int da){ this.id = id; this.da = da;

2021-04-10 01:16:14 29

原创 J. Stop Counting (最大平均前缀|后缀) (2021年度训练联盟热身训练赛第三场)

传送门思路:要求找到去除一个数列中间的一个连续片段后剩下数的平均值Max。显然这个Max的最小值为0,我们利用最大平均值前缀和最大平均值后缀处理更新一下即可。C++代码实现:#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lo

2021-03-29 00:49:16 89

原创 Codeforces B. Partial Replacement (简单模拟)(Round #710 Div.3)

传送门题意:给你一个只有 '.' 和 '*' 组成的长度为n的原始字符串,你可以将其任何一个 '*' 替换成 'X',但需要满足一定条件。条件:①第一个和最后一个 '*' 必须替换,②替换过后字符串中任意两个相邻的 'X' 的下标差不得超过k。要求:求出需要替换的最少 '*' 数。思路:从第一个 '*' 到最后一个 '*' 遍历一遍就好,在遍历的过程中记录上次替换的位置 pre 和上次遇到 '*' 的位置 px ,每过k各位置就替换一次即可。代码实现:import java.u

2021-03-26 17:02:22 86

原创 Codeforces G. Maximize the Remaining String (单调栈&字符串子序列) (Round #710 Div.3)

传送门题意:给你一个长度为n的全由小写字母组成的字符串,要求你保持原序列顺序的前提下去重得到字典序最大的子序列。思路:思路其实很清晰,就是在能让大的字符靠前且自身还能在后面出现的情况下先输出较大的字符。赛中代码基本框架没啥问题,但是万万忘了单调栈这个好东西呀!呜呜呜嗝~后面才知道这是个牛客原题,嗐,太垃圾了,人菜还不喜欢刷题,代码如下,具体思路见原题代码注释。C++代码实现:#include<bits/stdc++.h>#define endl '\n'#def

2021-03-26 12:50:59 90 2

原创 E. Early Orders (单调栈&字符串子序列) (2021年度训练联盟热身训练赛第一场)

传送门思路:打cf知道原题回来补的,原本思路感觉和这个差不多,但是万万没想到用单调栈来直线就很简单了。具体实现还是参考了大佬博客,简直不要太nice!(具体思路见代码注释。)#include<bits/stdc++.h>#define endl '\n'#define null NULL#define ll long long#define int long long#define pii pair<int, int>#define lo

2021-03-26 11:13:28 75

原创 CCF 202006-2 稀疏向量 (简单遍历)

传送门思路:不外乎就是,直接暴力写就好啦,主要答案会爆int,不然就只有60%通过率了。代码实现:import java.util.*;public class Main { static Map<String, Integer> mpa = new HashMap<String, Integer>(); static Map<String, Integer> mpb = new HashMap<String, I.

2021-03-24 16:28:19 28

原创 Codeforces A. Alexey and Train (Round #707 Div.2)(简单模拟)

传送门题意:有n个车站,每个车站都有个到达时间、出发时间和到该点前的延迟时间。现让你推算按顺序到达第n个车站所需的时间为多少。思路:挺简单一题,就是题意有点点绕。模拟注意一下每次出发的时间最小休息时间(b[i]-a[i])/2上取整的关系处理即可,就是别忘了两点之间本来就需要花费的时间(b[i]-a[i-1])和到达第i个点前还有个另外的延迟时间c[i]。代码实现:import java.util.Scanner;public class Main { public

2021-03-21 01:18:25 60 1

原创 Codeforces A. Domino on Windowsill (Round 106 Rated for Div.2)(思维)

传送门题意:给你一个n*2的矩阵,第一行的前格是白色,第二行的前格是白色,其余格子都为黑色。现有w颗白棋和b颗黑棋,每颗棋子都是1*2的大小,要求不重叠的放置在相应颜色的空格上,试问能否将两种棋子都放完。思路:简单题,判断一下相应空格数是否比棋子面积小即可。代码实现:import java.util.Scanner;import java.util.*;public class Main { public static void main(String[] ar...

2021-03-21 00:51:05 64

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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