![](https://img-blog.csdnimg.cn/20200104105452658.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ACM算法
ACM重要算法题笔记
Linux猿
CSDN博客专家,华为云享专家,HDZ核心组成员,Linux中国翻译组成员,ACM退役选手,分享 Linux、C/C 、Go、算法编程和面试经验,与大家一起成长,把握青春、不负韶华!
展开
-
LeetCode 题目
尽量一天更新一道题。PS:代码是自己做完后经过查看优代码修改后的代码。1. 题目 :Two Sum题意:给你一个n个数的数组A[ ] 和一个数值target,在数组中找到两个加起来等于target的元素的位置。注意:位置下标从1开始的。解题思路:vector + map/hash_map(hash_map可能更好点,但是有的编译器不支持),复杂度: O(nlogn); 先对数...原创 2017-08-05 11:18:34 · 2330 阅读 · 0 评论 -
Codeforces Round #276 (Div. 1)
Codeforces原创 2014-11-13 09:55:48 · 2611 阅读 · 0 评论 -
ZOJ 3805 Machine
简单有想法原创 2014-11-12 15:34:53 · 2587 阅读 · 0 评论 -
ACdream 1417 Numbers
想法题原创 2014-10-18 17:03:09 · 2729 阅读 · 0 评论 -
HDU 5063 Operation the Sequence
想法题原创 2014-10-14 19:14:41 · 2599 阅读 · 0 评论 -
Codeforces 164 E Compatible Numbers
想法题!原创 2014-10-12 18:45:51 · 2905 阅读 · 0 评论 -
Codeforces 385 C Bear and Prime Numbers
想法题原创 2014-10-02 16:34:07 · 2717 阅读 · 0 评论 -
ACM 遗憾题!!
做题感悟:这题其实不难,想的太多的,思路有点乱。解题思路: 状态压缩方程: dp[ i ] [ j ] = max( dp[ i -1 ] [ j ] , dp [ i - m ] [ j-1 ] + sum[ i ] - sum[ i - m ] ) ; sum[ i ] 为前 i 项和 ,dp[ i ] [ j ] 代表选到第 i 个选择了 k 段的原创 2014-09-26 16:46:20 · 2500 阅读 · 0 评论 -
Codeforces 106 D Treasure Island
简单+想法原创 2014-09-26 12:20:23 · 2712 阅读 · 0 评论 -
Codeforces 468B Two Sets
做题感悟:比赛时原创 2014-09-23 16:52:22 · 2526 阅读 · 0 评论 -
Codeforces Round #264 (Div. 2)
题目链接~~>原创 2014-08-31 10:30:03 · 2386 阅读 · 0 评论 -
HDU 4923 Room and Moor
题目链接~~>做题感悟:b原创 2014-08-16 19:32:53 · 2378 阅读 · 0 评论 -
HDU 4941 Magical Forest
题目链接~~>做题感悟:原创 2014-08-16 09:26:56 · 2490 阅读 · 0 评论 -
ZOJ 1639 Hang Up the System
题目链接~~>做题感悟:这题其实用原创 2014-08-02 19:09:47 · 2471 阅读 · 0 评论 -
UVA-10404-Bachet's Game
题目链接~~>原创 2014-07-17 08:52:05 · 2465 阅读 · 0 评论 -
九度 1554 区间问题
题目链接~~>做题感悟:九度比赛时原创 2014-04-12 08:50:32 · 2687 阅读 · 0 评论 -
POJ 2689 Prime Distance
题目链接~~>做题感悟:这题是在学习了区间筛法后才做的,学习了区间筛素数后,这题真 so easy !解题思路:可以用两次筛法,也可以直接用区间平移。代码:#include#include#include#include#include#include#include#include#include#include#includeusing namespace原创 2014-04-01 16:08:16 · 2134 阅读 · 0 评论 -
BNUOJ 14519 HT的奖金
题目链接~~>做题感悟:这是比赛时没做出来的一题,想到暴力了,应该再深入一点,优化一下暴力。解题思路:枚举起点与终点,找区间的最大值和最小值,只要最大值减最小值等于区间长度那么就是连号,至于最大值和最小值开始就记录一下,以后不断更新。代码:#include#include#include#include#include#include#include#include原创 2014-03-16 19:55:14 · 1927 阅读 · 0 评论 -
NYOJ 416 氢气球
题目链接~~>做题感悟:开始就想到了解题思路,但是不知道怎样求约数的个数的公式。解题思路:这题主要是知道求约数的公式: 一个数的约数就等于这个数所有的质约束的指数加 1 相乘的结果。例如:12 = 2*2*3 所以 12 的约数的个数为 (2+1)*(1+1)=6 ,同时也可以知道所有约数的和,例如 12 所有约数的和为:(2^0 + 2^1)*( 3^0 +3^1 ) 把这个式子分解开就原创 2014-03-13 16:01:57 · 1933 阅读 · 0 评论 -
知识点积累(三)
一、输入外挂非负整数:int read(){ int c,res ; while((c = getchar())'9'); res = c-'0'; while((c = getchar())>='0' && c<='9') res = res*10 + c-'0'; return res ;}存在负整数:int read原创 2014-03-07 07:31:13 · 1772 阅读 · 0 评论 -
HDU 4509 湫湫系列故事——减肥记II
题目链接~~>做题感悟:这题不错,如果你思维灵活 5 分钟左右就可以搞定,否则。解题思路:这题可以用线段树,也可以用结构体,也可以用跟简单的方法,把24小时全分成分钟,然后统计。代码(结构体):#include#include#include#include#include#include#include#include#include#includeusing原创 2014-03-01 20:17:45 · 1818 阅读 · 0 评论 -
NYOJ 52 无聊的小明
题目链接~~>做题感悟:这题其实很简单,只是尝试了很久。解题思路:这题就是取模的思想,一定要注意输出 - 1 的情况,循环必须与第一个次取模得的结果一样,否则如果出现循环不是与第一个产生的循环则输出 - 1 。代码:#include#include#includebool vis[100005] ;int main(){ long long int T,n,k,s原创 2014-01-08 19:33:32 · 1988 阅读 · 0 评论 -
知识点积累(二)
一、HDU 4548 美素数做题感悟:这题是在比赛时做的,开始没做这题,看见有三个人 AC 而且没超时现象,所以……解题思路:用线性筛法(在本体与一般筛法时间一样)把素数筛出来,然后判断是否为美素数,可以把美素数存起来或者选择二分(内存少)。代码~>原创 2013-12-25 10:34:33 · 1955 阅读 · 0 评论 -
HDU 1597 find the nth digit && HDU 2141 Can you find it?
题目链接~~>做题感悟:开始做时直接就考虑到了二分可以解决这个问题,没考虑找规律等等,本以为自己想的方法很好,但是百度了一下。方法一: 解题思路:用二分的方法求出在第几个数可以满足 n ,然后就可以对 9 取余了。代码:#include__int64 f[67000] ;__int64 binary(__int64 le,__int64 rt,__in原创 2013-12-19 20:20:07 · 1732 阅读 · 0 评论 -
NYOJ 157 487-3279
题目链接~~>做题感悟: 开始做这题时就是完全的暴力,很显然超时。之后又听说 map 可以搞定这一题,于是乎学 map 今天搞了一天 map 终于把 map 给搞懂了。其实这题还可以用另一种方法,把电话号码映射成一个数字(数字7位)。应该想到的……题意: 给你许多字符(包括大写字母,数字,‘-’),经过某种转换,都可以转换成一个七位的电话原创 2013-11-26 20:12:17 · 1868 阅读 · 0 评论 -
知识点积累(一)
NYOJ 最小公倍数解题思路:1~n 的最小公倍数为小于 n 的所有质数的最大幂(值小于n)的乘积。比如 n=10 小于 10 的质数有 2 3 5 7 对应的最大幂是: 3 2 1 1 ,所以最小公倍数是: 2^3 * 3^2 * 5^1 * 7^1 = 2520 。 优代码~~>原创 2013-11-24 16:48:52 · 2819 阅读 · 0 评论 -
NYOJ 902 一道难题
题目链接~~>做题感悟: 这题在比赛时只想到正向去 mod ,还是考虑的有点少做的类型少。比完赛后又被 long long 坑了两次真无语。经过这题充分说明做题经验太少,被坑的太少,不长记性。题意: 给你 n 个数有 m 次询问,求对于每次询问 k , 求出 ( ( A1*A2*A3*……*An ) / Ak ) % mod原创 2013-11-17 17:28:43 · 2607 阅读 · 0 评论 -
NYOJ 788 又见Alice and Bob
题目链接~~> 一看见类似博弈的就不想做(但是这题和博弈没关系!!)。。。。解题思路: 给一个原始集合,每次操作都会往集合中加入一个新的元素,找出最后集合中元素的个数total,然后用 total-n 就是新加进去的元素个数。判断total-n 的奇偶性就可以判断出谁赢了。如何求total呢?如果开始时集合中只有2个数6 27,通过这两个数可以加进集原创 2013-11-12 12:36:52 · 2632 阅读 · 0 评论 -
NYOJ 427 Number Sequence
题目链接~~> 这题可以找规律也可以用矩阵乘法做。矩阵解法: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 题意:给出一个递推公式,求第N项。 然后使用矩阵乘法时间复杂度为log(n)的一个算法。原创 2013-11-11 19:29:46 · 1853 阅读 · 0 评论 -
NYOJ 776 删除元素(二分查找)
题目链接~~> 做了这题后觉悟了很多,首先是如果你没读懂题意,做再多遍也是 WA 。其次是当你做一个题一直 WA 时你就应该考虑一下是否没读懂题意,是否该用 long long 的没用 long long 等。不要不管三七二十一狂提交!二分查找: (1)、单纯查找一个数是否在一个序列里。 (原创 2013-11-10 13:51:56 · 2016 阅读 · 0 评论 -
NOJ 295 Magicka
题目链接~~> 一看分类就知道这一题是一个简单题,但是开始没注意单个字符输入时要吸收换行!!!!代码(代码有点乱):#includestruct zhang{ char c1,c2,c3 ;}t1[105] ;struct node{ char b1,b2 ;}t2[105] ;char s[105],s1[105原创 2013-10-31 13:21:20 · 1263 阅读 · 0 评论 -
NYOJ 528 找球号(异或)
题目链接~~> 题意就不再叙述 ! 位异或的运算法则: 1、a^b = b^a。 2、(a^b)^c = a^(b^c)。 3、原创 2013-10-11 18:17:29 · 1325 阅读 · 0 评论 -
HDU 2306改革春风吹满地
题目链接~~> 这题求的是任意多边形的面积。(1).用向量叉乘:A(x1,y1), B(x2,y2) , C(x3,y3) . AB(x2-x1,y2-y1),AC(x3-x1,y3-x3) 然后求ABxAC(求AB AC的行列式)然后将结果的绝对值除以2. 求多边形面积不用绝对值。(2).补充:海伦公式:AB=a BC原创 2013-09-24 09:50:58 · 1543 阅读 · 0 评论 -
HDU 1013 Digital Roots
题目链接~~> 求Digital Roots的简单方法。代码:#include#includechar s[1005] ;int main(){ while(scanf("%s",s)!=EOF) { if(!strcmp(s,"0")) break ; int原创 2013-09-20 15:51:23 · 1217 阅读 · 0 评论 -
NOJ 212题K尾相等数
题目链接~~> 这题属于简单题,本来不想写进博客,但看了别人的优代码,真没想到那种方法,比较好。我用的快速幂然后开始遍历,之间可想而知。。。代码(本人):#includeint pow(int b,int m)//快速幂{ int ans=1; while(b) { if(b%2) { ans原创 2013-07-24 13:08:23 · 1278 阅读 · 0 评论 -
NOJ 240题小明的调查统计(二)结构体按照多个条件排序
题目链接~~>这一题其实一点也不难,属于简单题。开始wrong了好几次,后来才发现sort排序不稳定,需要在给结构体排序时先按成绩排,如果成绩一样,再按班级号从小到大排,如果班级 号一样,再按学号从小到大排!!!代码:#include#includeusing namespace std;struct zhang{ int a,b,exam,c; }t[10原创 2013-07-18 12:54:52 · 1283 阅读 · 0 评论 -
ZOJ 3790 Consecutive Blocks
二分原创 2014-11-14 21:19:05 · 2673 阅读 · 0 评论 -
Codeforces 164 D Minimum Diameter
二分原创 2014-10-18 12:49:22 · 2918 阅读 · 0 评论 -
九度OJ 1534 数组中第K小的数字 && codeforces 448D Multiplication Table
题目链接~~>做题感悟 :zh原创 2014-08-21 17:10:06 · 2406 阅读 · 0 评论 -
HDU 2241 考研路茫茫——早起看书
题目链接~~>做题感悟:翻译 2014-04-07 17:43:49 · 2809 阅读 · 0 评论