- 博客(113)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 2021年河南省CCPC大学生程序设计竞赛赛后反思
第一次参加ccpc最后来了个小铜尾,全程整体还是比较破防的。比赛过程:怎么说经过我们三人的“探讨”完美的计划应该是这样的:我主打,一开始就把常用头文件输入输出套上去,SYH和NQL就直接找水题,等我模板敲得差不多了他们俩直接给我说水题怎么写,一通写直接A,另一个人直接找下一个水题… 但是实际上确实非常痛苦的,前面看似挺顺利的我敲完之后SYH也真是直接给我说了1001题怎么写,一通写,一发WA了…debug吧,改了超长时间,起初我俩的思路是一直一样的,结果还是WA,没办法,看一样榜单,1011,我俩转手解决
2021-10-31 17:22:16
378
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 基本算法——前缀和与差分
一维前缀和建立原数组 a: a[1], a[2], a[3], ……, a[n];构造数组s : s[1], s[2], s[3] , ……,s[n];解决问题:给定m个区间【l,r】让你求数组a(长度为n)在区间所有元素之和暴力区间求和:sum += a[l] + a[l + 1] + ……+ a[r];时间复杂度:O(n + m)利用前缀和:数组s的构造:s[i] = s[i - 1] + a[i];输出:区间【l, r】中a元素和:s[r] - s[l - 1]原理:
2021-10-24 09:49:03
1973
原创 数论——卢卡斯(Lucas)定理(板子)
文章目录Lucas定理:Lucas板子:Lucas例题ac代码Lucas定理:CabC_a^bCab modmodmod ppp === Cb/pa/p∗Camod pbmod pC_{b/p}^{a/p}*C_{a\\\mod p}^{b\\\mod p}Cb/pa/p∗Camodpbmodp modmodmod pppLucas板子:int qmi(int a, int k, int p) // 快速幂模板{ int res = 1 % p; while (k)
2022-05-05 12:41:19
674
3
原创 数论——乘法逆元求组合数
上次学过一个杨辉三角求组合数也就是暴力打表O(n2)O(n^2)O(n2)的复杂度导致很多情况下都会TLE于是想到用阶乘(因为有快速幂嘛)但是很多情况下还是会有对一个mod求余但是公式中有除法(n!(m−n)!m!\frac{n!}{(m-n)!m!}(m−n)!m!n!)我们知道(a / b) % p != (a % p) / (b % p)除非a∗b−1a * b^{-1}a∗b−1 % p = a % p * b−1b^{-1}b−1 % p那么问题来到该怎么求阶乘的倒数呢?这就有了
2022-05-02 15:12:47
691
原创 PTA L2-043 龙龙送外卖
龙龙送外卖龙龙是“饱了呀”外卖软件的注册骑手,负责送帕特小区的外卖。帕特小区的构造非常特别,都是双向道路且没有构成环 —— 你可以简单地认为小区的路构成了一棵树,根结点是外卖站,树上的结点就是要送餐的地址。每到中午 12 点,帕特小区就进入了点餐高峰。一开始,只有一两个地方点外卖,龙龙简单就送好了;但随着大数据的分析,龙龙被派了更多的单子,也就送得越来越累……看着一大堆订单,龙龙想知道,从外卖站出发,访问所有点了外卖的地方至少一次(这样才能把外卖送到)所需的最短路程的距离到底是多少?每次新增一个点外卖
2022-04-29 18:55:14
443
原创 AcWing 1738. 蹄球(基环树)
AcWing 1738. 蹄球题意分析把每一个牛都看图中的点,把牛和另一个传球对象之间看成一条边,这么来想的话图中会出现环,并且环的长度必定是两个顶点图中每个点的入度最小为零(顶点的两头牛),最大为二(左右都给他)然后图中就会出现两种环一种是不带树的环,一种是基环树#include <iostream>#include <cstring>#include <algorithm>#include <vector>using namesp
2022-02-07 17:59:23
574
原创 AcWing 4217. 机器人移动(二分+向量前缀和)
机器人移动题目给的数据范围10510^5105想想是不是可以用二分来做要想用二分就要看答案是否满足 两端性 意思就是由答案将整个区间分为两部分,小于答案的不满足,大于答案的满足这道题可以二分区间的长度len, 用f(len)来判定修改len区间是否可以走到终点 ,这样最终的ans就是最小的满足条件的len接下来就是f(len)里应该怎么判断是否可以走到终点枚举所有长度为len的区间,因为所有长度为len的区间我们是可以随意改变里面的值的,所有我们只需要找出来除了这个区间后,当前走到的位置和目标位置
2022-01-30 16:57:02
552
转载 由数据范围反推算法复杂度以及算法内容
文章转载自:链接:https://www.acwing.com/blog/content/32/一般ACM或者笔试题的时间限制是1秒或2秒。在这种情况下,C++代码中的操作次数控制在 107∼108107∼108 为最佳。下面给出在不同数据范围下,代码的时间复杂度和算法该如何选择:n≤30,n≤30,n≤30, 指数级别, dfs+剪枝,状态压缩dpn≤100=>O(n3),n≤100 => O(n3),n≤100=>O(n3),floyd,dp,高斯消元n≤1000=>
2022-01-29 22:13:19
105
原创 [kuangbin带你飞]专题一 简单搜索
专题一 简单搜索A - 棋盘问题(DFS)B - Dungeon MasterC - Catch That CowD - FliptileE - Find The Multiple(字符串解法)G - Shuffle‘m UpH - PotsI - Fire GameJ - FireK - 迷宫问题(BFS路径还原)L - Oil Deposits(连通块)M - 非常可乐N - Find a way...
2022-01-19 08:59:57
1171
原创 D - Fliptile
题目:D - Fliptile题意分析:思路:利用二进制枚举第一行的所有状态2152^{15}215当第一行翻转完后, 想要去掉第一行的1, 需要翻转第二行对应列的位置依次类推, 当第i行确定时, 只有i+1行对应列的位置翻转才会影响到i相似题:费解的开关#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 20;const
2022-01-18 19:06:25
186
原创 【算法进阶指南】【递归】递归实现组合型枚举
开卷门题目:从 1∼n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。输入格式两个整数 n,m ,在同一行用空格隔开。输出格式按照从小到大的顺序输出所有方案,每行 1 个。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如 1 3 5 7 排在 1 3 6 8 前面)。数据范围n>0 ,0≤m≤n ,n+(n−m)≤25输入样例:5 3输出样例:1 2 31 2 41 2 51
2021-12-11 05:00:00
356
1
原创 【数据结构】哈夫曼树&哈夫曼编码
哈夫曼树定义:给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。理解:举个栗子:假如你有一个衣柜里面有ABCDEF共6件衣服,但是每个衣服穿的频率都是不一样的,54%(问就是喜欢穿),10%,6%,3%,7%,20%那么现在问题来了,你该怎样把衣服放置才能避免每次找衣服的时候把衣柜搞得一团糟呢?答案肯定是把频率高的放到里你最近的地方没错!!哈
2021-11-27 05:00:00
2225
原创 【DP】- 第一周(基础DP) - day6 - 扑克牌
扑克牌分析题意由排列组合可以得到:CnmC^m_nCnm:从n张扑克里面找出m张牌所有的分法第i个人分的ai张牌,那么第i+1个人所有的分法为:Cn−aiai+1∗CnaiC_{n-a_i}^{a_{i+1}}*C_n^{a_{i}}Cn−aiai+1∗Cnai那么总分法=Cna1∗Cn−a1a2∗Cn−a1−a2a3∗...∗Cn−a1−...−amam总分法=C_n^{a_{1}}*C_{n-a_{1}}^{a_{2}}*C_{n-a_{1}-a_{2}}^{a_{3}}*...
2021-11-15 05:00:00
223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人