随笔分类 - 算法-基本操作 / 常用操作
摘要:题目描述 塔子哥有一个字符串 \(s\)。 现在,他想让你求一下这个串中首尾字符相同的子串数目。 输入描述 一行,一个只包括小写字母的字符串 \(s(1\leq |s|\leq 10^5)\)。 输出描述 一个整数,字符串中首尾字符相同的子串数目。 样例 输入 aaa 输出 6 说明 长度为 1 的
阅读全文
posted @ 2025-01-14 19:20
lipu123
摘要:其中如果不减去v.begin(),返回一个迭代器,然后如果its==v.end()那么就是没有符合的。获取第一个的下标就是its - v.begin(). #include <iostream> #include <vector> #include <queue> #include<algorith
阅读全文
posted @ 2024-05-20 22:44
lipu123
摘要:给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,
阅读全文
posted @ 2023-12-26 16:31
lipu123
摘要:vector 一维 对于一个一维的vector,我们可以用这个,这个是默认从小到大排序的。 vector<int>v; sort(v.begin(),v.end()); 然后我们如果想从大到小排序的话,需要这样 int cmp(int x,int y){ return x>y; } vector<i
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/66943/B 来源:牛客网 对于一个小写字母而言,游游可以通过一次操作把这个字母变成相邻的字母。'a'和'b'相邻,'b'和'c'相邻,以此类推。特殊的,'a'和'z'也是相邻的。可以认为,小写字母的相邻规则为一个环。
阅读全文
摘要:D - Teleportation The Republic of AtCoder lies on a Cartesian coordinate plane.It has N towns, numbered 1,2,…,N. Town ii is at (xi,yi), and no two d
阅读全文
摘要:set的用法 1.定义一个set set<int> a; //存整形变量 set<string> b; //存字符串 set<double> c; //存小数 2.存入 .insert(x) a.insert(1); //向a中存入1 -> a={1} a.insert(3); //向a中存入3 -
阅读全文
摘要:题目描述 你正在参加一个多角色游戏,每个角色都有两个主要属性:攻击 和 防御 。给你一个二维整数数组 properties ,其中 properties[i] = [attacki, defensei] 表示游戏中第 i 个角色的属性。 如果存在一个其他角色的攻击和防御等级 都严格高于 该角色的攻击
阅读全文
摘要:组合数C(a, b) (预处理) typedef long long ll; const ll MOD = 1e9 + 7; // 必须为质数才管用 const ll MAXN = 1e5 + 3; ll fac[MAXN]; // 阶乘 ll inv[MAXN]; // 阶乘的逆元 ll QPow
阅读全文
摘要:题目: 题目链接: Description Input The first line contains an integer T . Then T test cases follow. Each test case contains three lines. The first one contai
阅读全文
摘要:遇到这种问题一定要变形式子 传送门: 给定 n 个石子,编号为 1∼n。 其中第 i 个石子的价值为 ai。 你需要从中任意挑选若干个石子,并将挑选好的石子按照编号从小到大的顺序排成一排。 选中的石子在排好序后需要满足,对于任意两个相邻的石子(不妨设它们的编号为 x,y,x−y=ax−ay 均成立。
阅读全文
摘要:哈夫曼树(最优二叉树) 给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 每次去权值最小的两个,进行合并。这个可以用优先队进行实现的 利用优先队
阅读全文
摘要:求组合数 1,就是杨辉三角 //组合数打表模板,适用于N<=3000 //c[i][j]表示从i个中选j个的选法。 long long C[N][N]; void get_C(int maxn) { C[0][0] = 1; for(int i=1;i<=maxn;i++) { C[i][0] =
阅读全文
摘要:1862. 向下取整数对和 给你一个整数数组 nums ,请你返回所有下标对 0 <= i, j < nums.length 的 floor(nums[i] / nums[j]) 结果之和。由于答案可能会很大,请你返回答案对109 + 7 取余 的结果。 函数 floor() 返回输入数字的整数部分
阅读全文
摘要:srand(time(0));///随机数种子,放在main函数第一行int tmp=(rand()*rand()+rand())%(b-a)+a;///生成[a,b)内的随机整数freopen("1.in","r",stdin);///从1.in里读取数据freopen("1.out","w",s
阅读全文
摘要:这个操作可以把两层for循环2^(2*n)优化为3^n 讲解链接 题目 给定n个元素,问这n个元素组成的每一个集合的所有子集。(不妨n<=15) for (int S=1; S<(1<<n); ++S){ for (int S0=(S-1)&S; S0; S0=(S0-1)&S) //do some
阅读全文
摘要:Tax collectors in the Roman empire, called publicans, are not well perceived, and for good reason. However, they are necessary for the running of the
阅读全文
摘要:链接:https://ac.nowcoder.com/acm/contest/37/A来源:牛客网 多次查询[l,r]范围内的完全平方数个数 定义整数x为完全平方数当且仅当可以找到整数y使得y*y=x 输入描述: 第一行一个数n表示查询次数之后n行每行两个数l,r 输出描述: 对于每个查询,输出一个
阅读全文
摘要:F. 买蛋糕 [ Problem 4833 ] [ Discussion ] Description RB买了个大蛋糕结果发现还是不够吃…… 因为蛋糕不够吃,所以RB只能再去麦都买一些小蛋糕来分给朋友吃,RB的每个朋友都有一个吃蛋糕的最小体积要求,即小于这个体积的蛋糕那个朋友就不吃,即对于朋友ii,
阅读全文
摘要:今天,胖哥在淘宝上购物。刚开始,胖哥的手上没有任何的优惠券。已知在购物过程中,胖哥将会按顺序遇到 nn 个事件:1 xx:购买一个价值为 xx 的商品。当发生这种事时,胖哥最多只能使用一张面值小于 xx 的优惠券去减免。若手中没有优惠券,则全额购买。2 xx:得到一张 xx 元的优惠券。胖哥想知道,
阅读全文