ACM
纪念一下曾经的那些时光
kicksilver7
人丑多读书!!!
展开
-
51nod 0和1相等串
题目链接:https://www.51nod.com/onlineJudge/submitDetail.html#!judgeId=424616题解:很好的一道思维题,自己一开始的想法就是dp,但是范围比较大,也没什么好的想法。后来又想用二分,但没什么用(范围还是太大),最后看到了大佬的思路,因为数的种类比较少,直接进行+和-的操作就能纪录所有的状态,学到了。代码:#include <cmath>原创 2017-12-11 20:18:13 · 276 阅读 · 0 评论 -
51nod 1051 最大子矩阵和
题目链接: https://www.51nod.com/onlineJudge/submitDetail.html#!judgeId=407086 题解: 最大字段和的变形 代码:#include <cmath>#include <cstdio>#include <string>#include <cstring>#include <vector>#include <iostrea原创 2017-11-22 21:19:47 · 252 阅读 · 0 评论 -
51nod 1006 最长公共子序列Lcs
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1006题解:重新刷一下51,发现自己连这基础题都打了半天,唉,不行了。代码:#include <set>#include <map>#include <cmath>#include <string>#include <vector>#include <cs原创 2017-11-11 09:48:01 · 188 阅读 · 0 评论 -
51nod 1127 最短的包含字符串
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1127题解:尺取。自己用的deque(尺取和滑动窗口都能用)代码:#include <map>#include <cmath>#include <vector>#include <queue>#include <cstdio>#include <cstri原创 2017-10-08 22:11:19 · 192 阅读 · 0 评论 -
51NOD 2006 飞行员配对(二分图最大匹配)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=2006题解:一道很基础的二分匹配题目,自己又重新回顾了一下匈牙利算法。代码:#include <cstdio>#include <cmath>#include <vector>#include <cstring>#include <algorithm>u原创 2017-07-12 21:17:53 · 409 阅读 · 0 评论 -
51NOD 1201 整数划分
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1201题解:一道很好的dp题目,首先我们先要明确dp的含义。这里开的是二维dp,表示i这个数划分为j个数的方案数。(这里j表示的不是max值) 当我们对其进行划分的时候,可以这么去想,我们要把一个数划分为4的时候,那么就相当于在(N-4)这个的基础上这些数进行加1原创 2017-07-11 10:23:51 · 256 阅读 · 0 评论 -
51nod 1278 相离的圆
题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1278 题解: 二分好题 代码:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define met(a原创 2017-05-15 22:08:23 · 165 阅读 · 0 评论 -
51NOD 1021 石子归并
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1021题解:区间dp。 区间dp的样子大致都差不多。模版: for(int i=1;i<=n;i++) dp[i][i]=0; // 初始化 for(int len=2;len<=n;len++) //原创 2017-04-16 10:41:37 · 342 阅读 · 0 评论 -
51nod 1101 换零钱
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1101题解:一道完全背包的问题。代码:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define met(a,b原创 2017-04-16 09:55:06 · 177 阅读 · 0 评论 -
51nod 1270 数组的最大代价
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1270题解:题目本身不难,但是题目的大意自己读了很久才理解。 题目就是让你自己创建大小为n的数组,其中里面元素的值的范围为[1,b[i]]注意这里是闭区间,问你,求你自己构建的a数组的最大代价是多少。 思路其实很简单,首先我们可以直接用贪心的思想去考虑,a[i]原创 2017-04-15 20:07:14 · 192 阅读 · 0 评论 -
51NOD 1672 区间交
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1672题解:这里的数据的范围给的是1e5,所以,对于找到区间以后,一遍的循环是不会超时的。这里的难点主要是怎么找到满足条件的区间。我们可以这么去思考,先将区间的一个端点固定,去找另一个满足条件的最大的端点(因为这里的ai已经保证全部都是大于0的, 没有负数,所以,原创 2017-04-03 10:35:54 · 406 阅读 · 0 评论 -
51nod 1105 第K大的数
题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1105 题解: 一道十分好的二分题目,主要的思路不在是一般的二分其数组的下标,而是二分其数组的具体的值。先确定的大二分的范围[num1[1]*num2[1]-num1[n]*num[n]],这里是大的二分的左右的区间,然后再进行较小范围的二分,首先将题目中的原创 2017-02-10 20:41:11 · 163 阅读 · 0 评论 -
51nod 1267 4个数和为0
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1267题解:感觉是一道非常好的二分题目。本题的方法是先确定两个数,在用两个指针去确定具体的值。for example:-3 -4 1 5 6 7 8 (已经对给出的数字进行了sort)这里,我们用两个for来确定sum的值,sum=原创 2017-02-09 20:56:04 · 226 阅读 · 0 评论 -
51nod 1010 只包含因子2 3 5的数
题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1010题解:简单题,只要打表加二分,虽然自己的表打错了,结果错了半天。代码:#include #include #include #include #include using namespace std;#define me原创 2017-02-09 20:19:46 · 197 阅读 · 0 评论 -
51nod 1013 3的幂的和
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1013题解:简单题,虽然一开始用的是九章的方法去做的,直接用等比数列推出公式,然后在去进行计算,需要注意的是这里的乘法需要乘法快速幂去计算,后面的2这要用逆元,直接计算会出错。代码:#include #include #include原创 2017-02-09 11:32:13 · 145 阅读 · 0 评论 -
51nod 1272 最大距离
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1272题解:本题上面虽然说要用单调队列或者单调栈来写,但是我自己使用贪心的方法来的。先对所有的数字进行从小到大的排序,然后再对位置进行升序的方法。好处:对于数字进行了升序之后,保证这些数字的使用都是满足条件的,之后就很简单了,只要一直维护一原创 2017-01-23 13:34:42 · 257 阅读 · 0 评论 -
51nod 1062 序列中最大的数
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1062题解:水题,数据的范围有点大,自己是直接预处理的,可能数据水的缘故,本来以为过不了的结果过掉了。代码:#include #include #include #include #include using namespace原创 2017-01-19 10:31:32 · 135 阅读 · 0 评论 -
51nod 1266 蚂蚁
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1266题解:这道题目其实很简单,不要想太麻烦。维护一个最小值的最大值就是第一个答案,一直维护最大值就是第二个答案。代码:#include #include #include #include using namespace std;原创 2017-01-18 09:55:57 · 161 阅读 · 0 评论 -
51nod 1428 活动安排问题
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428题题解:这题,好吧,自己还是想了蛮久的,但是感觉还是自己想多了,先对整个进行结构体的排序,然后只要对全部的东西一直维护一个最大值就行了,对了,记得要记录这个点是否已经被访问过了,自己之前就一直忘了这个问题。代码:#include #in原创 2017-01-17 21:51:07 · 144 阅读 · 0 评论 -
51nod 1024 矩阵中不重复的元素
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1024题解:本来自己是想要找到一种映射函数来建立哈希表的,但是这数据的范围太大了,后来看网上的大神都是用对数来做的。(以后一般指数比较之类的题目,一般都先将其进行对数的转化)代码:#include #include #include原创 2017-01-06 14:31:46 · 189 阅读 · 0 评论 -
51nod 1050 循环数组最大子段和
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1050题解:本题的思路主要分为两个方向:1.就是正常的思路的时候,直接去求解最大子列和就行。2.当最大的值出现的是收尾相连的时候的情况,这种时候,我们可以这么想:出现这种情况的主要的原因就是,中的那段比较的小,导致了最大的值出现在了首尾原创 2017-01-05 16:12:50 · 159 阅读 · 0 评论 -
51nod 1007 正整数分组
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1007题解:01背包的思想,直接去做就行了(没什么坑点)代码:#include #include #include #include using namespace std;#define met(a,b) memset(a,b原创 2017-01-04 18:44:38 · 131 阅读 · 0 评论 -
51nod 1095 Anigram单词
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1095题解:直接用两个map存下两次的出现的次数,在直接相减就行了。代码: #include #include #include #include #include #include using namespace std;#de原创 2017-01-02 20:28:05 · 222 阅读 · 0 评论 -
51nod 1094 和为k的连续区间
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1094题解:水题,不说话,直接暴力求解就行了。 (等待好的方法)代码:#include #include #include #include #include using namespace std;const int max原创 2017-01-01 12:53:52 · 162 阅读 · 0 评论 -
51nod 1092 回文字符串
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1092题解:本题要求的是求最小添加的数,那么可以进行反向的思考,直接算最大的公共长度,然后用总长度-最的公共长度之后,就是答案了。 代码:#include #include #include #include #include原创 2016-12-31 20:33:13 · 121 阅读 · 0 评论 -
51nod 1081 子段求和
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1081题解:直接暴力会超时,所以,这里选用树状数字来进行,但是,这里需要注意的是,数据的范围比较大,会出现超int的情况的出现。代码:#include #include #include #include using names原创 2016-12-28 15:49:06 · 107 阅读 · 0 评论 -
51nod 1001 数组中和等于K的数对
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1001题解:水体,先排序,然后直接用类似二分的思想去做。(常规的暴力搜索毫无疑问是会超时的)代码:#include #include #include #include using namespace std;const int原创 2016-12-25 15:04:36 · 137 阅读 · 0 评论 -
51nod 1080 两个数的平方和
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1080题解:可能是数据比较水, 直接暴力做掉了。。。。。代码: #include #include #include #include #include using namespace std;int main(){原创 2016-12-23 15:29:31 · 196 阅读 · 0 评论 -
51nod 1002 数塔取数问题
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1002题解:直接暴力更新求解即可。代码:#include #include #include #include using namespace std;#define met(a,b) memset(a,b,sizeof(a))原创 2016-12-23 15:06:44 · 201 阅读 · 0 评论 -
51nod 1133 不重叠的线段
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1133题解:用贪心的思想,把终点进行升序的操作以后,再按条件进行选择,满足条件的就加一下。代码:#include #include #include #include #include using namespace std;#原创 2016-12-07 18:31:18 · 197 阅读 · 0 评论 -
51nod dai1163 最高的奖励
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1163题解:先按时间升序排列,再把价值降序排列,一直更新最小值就行了。(自己用的优先队列更的新)代码:#include #include #include #include #include #include #include原创 2016-12-02 19:38:16 · 168 阅读 · 0 评论 -
51nod 1433 0和5
题目链接:http://www.51nod.com/onlineJudge/submitDetail.html#!judgeId=174745题解:一道规律题,可以把90看成9*10去进行考虑。代码:#include #include #include #include using namespace std;#define met(a,b) memset(a原创 2016-11-30 21:40:48 · 137 阅读 · 0 评论 -
51nod 1004 n^n的末位数字
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1004题解:主要是找规律,自己找的时候直接pow,错的也太离谱,pow高位的时候会出错。代码:#include #include #include #include using namespace std;int main()原创 2016-11-25 19:01:25 · 183 阅读 · 0 评论 -
51nod 1009 数字1的数量
题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1009题解:一道很好的思维题。不懂的可以看下网上某大牛的博客:http://www.cnblogs.com/jy02414216/archive/2011/03/09/1977724.html代码:#include #include原创 2016-11-24 21:59:08 · 218 阅读 · 0 评论 -
HihoCoder #1513 : 小Hi的烦恼
题目链接:https://hihocoder.com/problemset/problem/1513题解:论bitset的重要行。 看完题目,很明显,如果用常规的方法,每一次都进行处理。那么,很明显会超时。因此,我们可以使用状态的压缩来做这道题目。 关于Bitset的具体的用法,这里贴个链接:http://www.voidcn.com/article/p-cflemkip-cs.html 因此原创 2017-08-17 10:34:25 · 356 阅读 · 0 评论 -
hihoCoder #1039 : 字符消除
题目链接:https://hihocoder.com/problemset/problem/1039题解:暴力模拟直接上。 (自己中文的题意都理解成错了,心累啊。)代码:#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;原创 2017-07-23 10:19:10 · 236 阅读 · 0 评论 -
bzoj 1012
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1012题解:很久没怎么写线段树了,一个小错误错了半天。唉!代码:#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;原创 2017-11-09 19:18:46 · 152 阅读 · 0 评论 -
Bzoj 1036: [ZJOI2008]树的统计Count
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1036题解:树链剖分+线段树操作代码:#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define met(原创 2017-10-19 21:24:14 · 173 阅读 · 0 评论 -
poj 1273 Drainage Ditches
题目链接:http://poj.org/problem?id=1273题解:最大流EK模板代码:#include <cmath>#include <vector>#include <queue>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#d原创 2017-09-28 20:59:34 · 143 阅读 · 0 评论 -
2017 ACM/ICPC Asia Regional Qingdao Online 1003 The Dominator of Strings
题目链接:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1003&cid=778题解:STM,队友讲题意的时候漏掉了范围。。。。。。 强行AC自动机。代码:#include<cstdio>#include<cstring>#define M 100000+10using namespace std;struct AC{原创 2017-09-17 19:08:04 · 362 阅读 · 0 评论