
ACM_构造.想法
文章平均质量分 57
RaAlGhul
这个作者很懒,什么都没留下…
展开
-
HDOJ 5365 Run
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5365题意就是给你几个整点,问你能构成多少个正的三角形、正方形、正五边形、正六边形。一看几何,又看数据不大,果断把两两之间的距离算出来后……就不知道该怎么办了,懵逼的我看了别人的题解,结果上来就是一句地球人都知道整点构不成正三角形、正五边形、正六边形(TT),那么只需要枚举所有四个点的情况,判断原创 2016-05-29 23:37:37 · 667 阅读 · 0 评论 -
HDOJ 5204 Rikka with sequence
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5204题意很简单,有两种操作,第一种是在当前所有的数收尾以及两两缝隙之间填上一个数,第二种是查询L,R之间第K小的数。官方题解:这题看起来一副非常厉害的样子。。其实是大水题。对于一个询问,考虑这个询问前第i次修改操作,那么这次修改操作出现在序列中第一个位置是2i?1。然后在询问范围内最多只有原创 2016-07-01 18:48:42 · 707 阅读 · 0 评论 -
数字游戏
几个通信学院的同学问我的一道他们算法课程上的题,拿到还是想了一会儿才想出解题的方法,还是有点意思。这题不是什么高深的算法题,倒是有一点考验思维,以及对进制存储的理解,首先,在十进制下,后面的0的个数能用肉眼看出来,不难想到,我们一直把这个数除以10,直到不能再整除为止,除的次数就是后面跟着的0的个数。因为我们可以把这个数拆成a1*10^1+a2*10^2+……an*10^n,那么前面有多少个a原创 2016-07-02 20:59:06 · 528 阅读 · 0 评论 -
HDOJ 1060 Leftmost Digit
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1060题意:计算出n^n最左边一位的数字,一道想法题,小编想了老半天也没想明白的问题,最后还是看别人的题解才会的。这里我们用到了一个取对数的技巧,设a = log 10(c)即(c = 10^a),我们把a拆成整数k和小数d两部分,那么整数的部分就是表示的c可以拆成的10^k(k为整数)原创 2016-07-25 14:53:35 · 507 阅读 · 0 评论 -
HDOJ 5718 Oracle
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5718题意给我们一个数字,然后我们可以将其分成两个不含前导零的正整数,且可对每一位进行重新排列,问我们能够得到的最大的两数之和为多少。很容易想到位数越高肯定值越大,所以最后分出来的结果肯定是一个是1位的数,一个是len-1位的数。比赛一开始就看出来这点了,但最后还是用了很久才A,题目原创 2016-07-18 14:43:49 · 459 阅读 · 0 评论 -
Codeforces Round #362 Lorenzo Von Matterhorn
题目链接:http://codeforces.com/problemset/problem/696/A题意:给我们一个二叉树,一开始每条边的权值都是0,现在给我们两个操作,第一个是讲从点u到点v这条路上的每一条边边权都加上w,第二个操作是询问我们从u到v这条路上的权值和。很显然,如果我们能用一个二维数组来存储两两之间的关系的话,那么问题会非常简单,但是很明显我们是开原创 2016-07-18 16:43:30 · 350 阅读 · 0 评论 -
HDOJ 5247 找连续数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5247我们可以枚举n*n种情况,算出每一种情况里面的最大值和最小值,如果最大值-最小值+1等于枚举的当前情况的长度,那么当前情况就可以构成一个连续数。#include #include #include #include #include using namespace std;co原创 2016-06-23 16:18:36 · 441 阅读 · 0 评论 -
HDOJ 5428 序列变换
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5248题目如果从正面去做的话,很难想到一种有效的贪心策略去处理这个问题(不排除一些大神有特殊的想法),但是反过来,给我们一个答案,我们能够很容易的贪心去判断是否可行,所以我们采取二分答案,再反过来判断是否可行。关于二分答案之后的判断,我们采取的贪心策略就是每一位都尽量的低。#include原创 2016-06-23 16:26:46 · 516 阅读 · 0 评论 -
HDOJ 5773 (2016多校联合训练 Training Contest 4) The All-purpose Zero
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5773题意,0可以变成任何数,问我们可以得到的最长的上升序列的长度为多少。首先0可以变成任何数,那么最长的上升序列不一定包含所有的0,但是包含了所有的0的序列一定可以达到最长上升序列的长度,所以我们采取的策略就是把每一个数都减去它之前的0的个数,然后再进行一次LIS,最后再加上0的总个数原创 2016-07-30 14:49:59 · 582 阅读 · 0 评论 -
Codeforces #363 One Bomb
题目链接:http://codeforces.com/contest/699/problem/B很悲催的一题啊,小编刚刚把这道题锁住就想起了一个错误点,虽然靠着错误点hack了很多人,但是仍然抵不上过不了终端的痛。首先小编就先来介绍一下一个错误的做法,统计出现最多的横坐标和纵坐标,然后以这个为炸弹,反过来看有没有点不在这个炸弹范围内来判断可不可以。这种做法乍一看是对的,但是原创 2016-07-20 12:02:59 · 512 阅读 · 0 评论 -
HDOJ 5776 sum
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5776题意就是说在n个数中能不能找到一段连续的子串,使得其和为m的倍数。我们采取的办法就是直接求出所有的前缀和对m取模的值,仔细思考如果两个位置的前缀和相等,那么一定这中间这段和就是m的倍数,举个例子,1~x1的和模m为2,1~x2的和模m也为2,那么一定会有x1~x2的和模m为0.原创 2016-07-31 13:13:42 · 630 阅读 · 0 评论 -
HDOJ 5792 (2016多校联合训练 Training Contest 5) World is Exploding
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5792题意,给我们n个数的序列A,问我们能够找到多少四个不同位置a,b,c,d的数满足:a≠b≠c≠d,1≤aAd.这题很明显可以用到容斥原理去处理,我们可以先找到所有的情况然后我们再去减去多余的部分即可,算总个数显然就是所有的上升序列个数*所有的下降序列的个数。仔细思考,我们多余的是哪原创 2016-08-05 18:17:45 · 626 阅读 · 0 评论 -
HDOJ 1275 两车追及或相遇问题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1275追击星宇问题是小时候最讨厌的问题,因为追击和相遇我们得考虑完全不同的情形,得分成两部分去讨论,很烦,这道题也是,如果是两者相遇的话,那么第i次相遇所需要的时间就是s*(2*i-1) / (va+vb),而第i次慢车被快车追上的时间是s*(2*i-1) / (v块-v慢),但是第i次相交的时候是原创 2016-07-13 14:15:47 · 882 阅读 · 0 评论 -
HDOJ 5750 Dertouzos
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5750一道数学+想法的题,看着最大因子,我相信大家第一反应都是和小编一样,d*2,d*3,d*4……但是想到这里就会发现,这种想法肯定是错的,举个例子,33 8 这组数据很明显只有8*2可以,明显8*3,8*4都不可以,那么我们思考,首先是合数,如果一个数是合数,那么这个合数可以分成几个因子原创 2016-07-24 16:24:52 · 476 阅读 · 0 评论 -
HDOJ 5748 Bellovin
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5748一开始小编以为f就是表示的是到这一位的最长上升子序列长度,于是直接不是当前最大值就填1,WA了两发才发现是以这一位结束的最长上升子序列长度,那么问题其实求出每一位的f,f就是答案。#include #include #include #include #include u原创 2016-07-24 15:51:02 · 418 阅读 · 0 评论 -
BestCoder Round #59 Reorder the Books
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5500题目又臭又长……题意是说,一堆书本来是按编号从上往下依次增大的顺序堆好的,现在被打乱了,我们每次能操作的是从中间抽出一本书放到最上面,问我们最少需要的操作数。当然,因为n最大才19,你当然可以去暴力求解,暴力深搜绝对能够搞定的,但是那么这么一道想法题便数去了意义,我们得去认真思考才能有所收原创 2016-05-17 20:31:02 · 443 阅读 · 0 评论 -
BestCoder Round #67 N bulbs
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5600题意:给我们一排灯的情况,每走过一次就能造成灯的开关情况,问我们可不可以达到一种刚刚好到达最后的一个灯且所有的灯都关掉的状态。我们分析一下灯的情况,如果灯是开着的,那么只需要奇数次经过就能达到关闭的状态,而本来关闭的需要经过偶数次经过就可以达到这个状态。我们分析,如果想要达到偶数次的话,那原创 2016-05-07 12:22:12 · 385 阅读 · 0 评论 -
BestCoder Round #58 LCS
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5495题意:给我们两个序列a和b,这两个序列的元素都是1~n,问我们能否给出一个排列方式,使得a和b经过这个排列方式的变化后的最长公共子序列最长。a和b的排列方式都是根据一个排列方式变化的,所以很明显每一位的a的值和b的值是绑定了的,也就是排列方式一定是一起移动的,那么我们完全可以直接搜索就能得原创 2016-05-18 17:31:38 · 382 阅读 · 0 评论 -
ACdream 1023 Xor
题目链接:http://acdream.info/problem?pid=1023题意:给一个集合A,一个集合B,问可否存在一个数字C,使得A中所有元素和C做异或运算得到B集合。小编做这道题的时候真的是很幸运,在草稿本上画字典树的时候,打了几个表一下子就被小编发现规律了,在验证的时候也没想太严谨,但是运气好的出奇的一A了。首先,小编发现 一句话,n is odd,起初没有在意这句话,可原创 2016-06-02 20:04:47 · 432 阅读 · 0 评论 -
HDOJ 5256 序列变换
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5256题目要求的目标状态是求得最小的调整数使得这个序列变成一个严格递增的序列。仔细思考,如果是让我们求一个不严格的递增序列的话很简单,那就简单了很多,此时最小调整数就是:n-最长不严格递增序列的长度,这个问题很好想,所以如果我们能把这个这个问题转换成求最小的调整数使得这个序列变成一个不严格的递增原创 2016-06-24 11:20:17 · 578 阅读 · 0 评论 -
TOJ 4146 seq
题目链接:http://acm.tju.edu.cn/toj/showp4146.html一道怎么看都很简单的一道题,比赛的时候就是想不到怎么去优化TT。题意是给我们一串数,然后给我们两种操作,一种是把所有i中对b[v]取模得到的结果为x的a[i]加上一个add,一种是所有i中对b[v]整除得到x的a[i]加上一个add。小编直接说优化方法了,对于前一个取模,可以先把结果存在一个c[v原创 2016-06-29 19:36:02 · 475 阅读 · 0 评论 -
HDOJ 5744 (2016多校联合训练 Training Contest 2) Keep On Movin
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5744在多校训练中难得一见的水题,比赛刚刚开始的时候题目还有错,根本看不懂题意,后来题目改了,就变成一道真正的大水题了,题意是说要我们用所有的字符做成多个回文串,然后在所有可能的每一个组合里面最短的回文串在所有的组合中最长是多少。首先显然,如果直接把所有的字符都用上构成一个回文串,那么这原创 2016-07-22 15:12:07 · 581 阅读 · 0 评论 -
HDOJ 5734 (2016多校联合训练 Training Contest 2) Acperience
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5734本来一道很简单的题,我们对居然比赛的时候贡献了5发罚时=.=。题意让我们找到一个数,让所有的数加或减去这个数的平方和最小。既然是求平方和,而且是自己决定是加还是减,那么我们就不用担心正负号了,直接全部变成正的来处理。仔细思考,实际上我们的目的就是把这么多个数通过加减一个数使得它原创 2016-07-22 17:16:07 · 449 阅读 · 0 评论 -
TOJ 4153 I like graph
题目链接:http://acm.tju.edu.cn/toj/showp4153.html题目很长,但是题意实际上是说……求一个最大上升子序列长度……#include #include #include #include using namespace std;const int maxn = 100002;int a[maxn],dp[maxn];int main(){原创 2016-06-29 23:02:24 · 449 阅读 · 0 评论 -
HDOJ 1210 Eddy's 洗牌问题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1210上来大家的第一反应都是去找规律,想着去找通解,但是如果打表的话会发现并没有什么特别明确的通解,所以方向都错了,其实这道题对书写方式也是一个误导,我们看着n+1,1,n+2,2……2n,n,这组数据心里面想的往往都是把前面n个数插入到后面n个数里面,这样想当然没问题,但是就看不出这其实是一种置换原创 2016-07-12 14:04:46 · 671 阅读 · 0 评论 -
HDOJ 1214 圆桌会议
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1214谈到邻位交换,冒泡排序应该是所有人编程中最先接触到的,如果是一条直线的话,很容易想到时间为n(n-1)/2,但是这个问题中变成了一个圆,我们不能单单的把它当成是一条直线来判断,但是我们可以把它看成是两条直线来判断,那么两条直线的长度又分别是多长呢,这里我们可以证明一下,设其中一段的长度为a,那原创 2016-07-12 16:55:25 · 474 阅读 · 0 评论 -
HDOJ 5806 NanoApe Loves Sequence Ⅱ
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5806作为HDU集训队的一员,我很清楚Claris是一位数据结构大师,但正是如此,比赛的时候小编老是往数据结构上去想,哎,然而此题完全不用(=.= GG),只需要用到双指针就能够解决。仔细思考,我们是要区间里面第k大的数大于m,那么其实只要区间里面有k个大于m的数就可以了,接下来就只需要原创 2016-08-06 22:03:01 · 530 阅读 · 0 评论