acm
acm竞赛的一些知识,算法
abysswatcher_1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode力扣(9.回文串(不使用字符串的算法))
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/palindrome-n原创 2020-05-09 20:51:35 · 231 阅读 · 0 评论 -
leetcode力扣(1.两数之和,2.两数相加,3.无重复字符的最长字串)
1.两数之和 题目描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 链接:https://leetcode-cn.com/problems/two-sum 哈希表法 将 nums 中的元素值当下标,nums的下标当值存储在 hash 数组中 ...原创 2020-05-05 22:31:49 · 283 阅读 · 0 评论 -
set,vector
1原创 2020-02-19 20:08:26 · 943 阅读 · 0 评论 -
ACM.map
基本含义 map翻译为映射,是STL中的常用容器。其实,数组就是一种映射,比如:int a[100];就是定义了一个int到int的映射。而a[5]=25;就是把5映射到25。数组总是将int类型映射到其它基本类型(称为数组的基类型),这同时也带来了一个问题,有时候我们希望把string映射成一个int,数组就不方便了。这时就可以使用map,map可以将任何基本类型(包括STL容器)映射到任何基本...原创 2020-02-17 22:54:37 · 621 阅读 · 0 评论 -
ACM.大一寒假2.15考试
机器人 Problem:A Time Limit:1000ms Memory Limit:65535K Description 机器人Bo很聪明,会做许多事情。惟独对自然数的理解与人类不一样,它是从右往左读数。比如,它看到123时,会理解成321.让它比较23与15哪一个大,它说15大。原因是它的大脑会以为是32与51在进行比较.再比如让它比较29与30,它说29大。 当然对于像90,它会把它当成...原创 2020-02-16 12:15:42 · 314 阅读 · 0 评论 -
ACM.质因数分解
唯一分解定理 任意一个大于0的正整数都能被表示成若干个素数的乘积且表示方法是唯一的; 整理可以将相同素数的合并;可以得到 公式————n = P1^a1 * P2^a2 * …………* (P1 < P2 < ……Pn); ...原创 2020-02-15 00:27:28 · 1511 阅读 · 1 评论 -
ACM.素数筛
一.埃氏筛 筛法的思想是去除要求范围内所有的合数,剩下的就是素数 了,而任何合数都可以表示为素数的乘积,因此如果已知一 个数为素数,则它的倍数都为合数。合数的倍数一定会在筛素数倍数时候被筛掉,所以只筛素数就好,只把质数的 数筛掉 ,就是找到一个质数,把它的倍数全部标记为合数。 const int N=1e7+1; int prime[N]; int b[N]; int cnt=0,max1=1e7...原创 2020-02-14 23:19:43 · 1160 阅读 · 0 评论 -
ACM.优先队列
优先队列种比较函数的写法。 可以通过重载“<”操作符来重新定义比较规则,优先队列中元素的比较规则默认是按元素的值从大到小排序; 切记:从小到大排序采用“>”号;如果要从大到小排序,则采用“<”号。 可写作: bool operator < (const node &s1,const node &s2) { return a.sum>b.sum;//表示...原创 2020-02-13 19:52:10 · 722 阅读 · 0 评论 -
ACM.队列
队列题目 一.原创 2020-02-13 19:08:04 · 1072 阅读 · 0 评论 -
ACM.基础题目——寒假培训
28的因子 Problem:A Time Limit:1000ms Memory Limit:65535K Description 我们都知道28的因子中含有4和7,而某些人偏爱数字4和7; 例如数字:747,4,7747,4,7是兴安黑熊喜欢的数字,而476,5,27476,5,27则不是。 对于给定的数字n,能否找出各个数位上数字和为n的最小的兴安黑熊喜爱的数字。 如果找到则输出这个最小数, ...原创 2020-01-12 19:00:43 · 4323 阅读 · 0 评论 -
ACM.二分查找
二分,分的是答案,直接在答案在的区间范围中二分,分出一个值,就判断是不是答案,并进行转移 如果已知候选答案的范围(min,max)(单调有序),有时候我们不必通过计算得到答案,只需在此范围内应用“二分”的过程,逐渐靠近答案(最后,得到答案)! 通过二分的方法,大幅度地跳过一片没必要的比较和选择。 一.二分查找 二分法求零点,把区间折半来找零点,虽然找不到具体的零点值但是可以确定大体零点的一个范围,...原创 2020-01-11 16:14:26 · 1351 阅读 · 0 评论 -
ACM.快速幂取模
给你一个数a,让你求其b次连乘后的结果 当b很小时,一般的循环算法可以解决这个问题(O(B)),但是当b较大时呢 要知道1e18以上,就会long long int 也可能会溢出 而在数论方面这些数又该如何表示?怎样存储? 所以在此我们定义一个模数mod来代替输出 即a^ b=k1mod+t即t=a^b%mod 性质1:(a+b)%m=(a%m+b%m)%m 性质2:(ab)%m=(a%m*b%m...原创 2020-01-11 13:59:36 · 447 阅读 · 0 评论 -
ACM.GCD与LCM
欧几里得算法 取模运算的运算规则 (a + b) % p = (a % p + b % p) % p (a - b) % p = (a % p - b % p) % p (a * b) % p = (a % p * b % p) % p a ^ b % p = ((a % p)^b) % p 又名辗转相除法 代码实现过程 1非递归写法 int gcd(int a,int b) { int r=a%...原创 2020-01-11 13:48:28 · 672 阅读 · 0 评论 -
ACM.二进制枚举
一.二进制运算 算数位运算: 1、与(&): 对于指定的两个数A=60(0011 1100) B=13(0000 1101) 执行一下操作 A&B=12(0000 1100) 就是对二进制每一位进行了一次与操作,同为1,结果为1,否则为0 2、或(|): 对于指定的两个数A=60(0011 1100) B=13(0000 1101) 执行一下操作 A|B=61(0011...原创 2020-01-09 13:11:55 · 1015 阅读 · 0 评论 -
ACM.暴力枚举
#有一类问题可以采用一种盲目的搜索方法,在搜索结果的过程中,把各种可能的情况都考虑到,并对所得的结果逐一进行判断,过滤掉那些不符合要求的,保留那些符合要求的,这种方法叫枚举算法。 暴力枚举适用于数据较少的题目。 ...原创 2020-01-08 23:04:35 · 721 阅读 · 0 评论 -
ACM.结构体排序和桶排序
#结构体排序 ##sort函数 sort是c++自带函数 复杂度 n*log(n) 包含在头文件 #include的c++标准库里 函数有三个参数 1.要排序的数组的起始地址 2.数组的结束地址 3.第三个参数是排序的方法,可以不写,默认是从小到大 4.从小到大可以写成sort(a,a+n,less<数据类型>) 5.从大到小可写成sort(a,a+n,greater<数据类型&...原创 2020-01-08 21:52:51 · 503 阅读 · 0 评论
分享