杂
Dan__ge
Today is difficult,tomorrow is more difficult,but the day after is beautiful.
展开
-
HDU 5122 水题
点击打开链接题意:给n个数的数列,求原创 2016-03-24 20:05:59 · 806 阅读 · 0 评论 -
HDU 5387 乱搞
点击打开链接题意:给个时间,然后问时针分针秒针两两的角度思路:对于每一个来说,都转化成秒,然后分类讨论一下即可,只要能将样例写出来就不会错的#include #include #include #include #include #include using namespace std;typedef long long ll;const int inf=0x3f3f3f3原创 2016-07-09 16:37:55 · 4829 阅读 · 0 评论 -
HDU 5033 单调栈
点击打开链接题意:给了好多楼房的高度和位置,然后问一个人在一个位置,它可以看到的左右天空的角度思路:用单调栈维护一个它能看到的最高的位置,然后反过来再求一遍,两遍的和就是结果了#include #include #include #include #include #include #define PI acos(-1.0)using namespace std;typed原创 2016-09-12 20:55:49 · 308 阅读 · 0 评论 -
vijos 1321 搜索
点击打开链接题意:中文思路:思路就是当前已经走过的点,则将所有的需要这个点的边全部走一遍,这样的话复杂度就比较低了#include #include #include #include #include using namespace std;typedef long long ll;typedef unsigned long long ull;const int inf=原创 2016-09-14 10:15:40 · 299 阅读 · 0 评论 -
Gym 100703I 尺取法
点击打开链接题意:给n组和每组有多少人,现在要求你从每组中选出一个人,然后这些人的最大值与最小值的差最小思路:将所有的人按照权值从大到小排序,然后尺取知道每一组都出现一个人,然后比较差值即可,尺取的话直接改一改挑战程序设计的例题就可以了#include #include #include #include #include #include using namespace st原创 2016-09-15 20:40:50 · 398 阅读 · 0 评论 -
Gym 101102D 单调栈
题意:不多说了思路:用单调栈来维护当前点可以围成的高度及长度,注意一些细节附带一组数据: 3 41 2 3 11 1 1 11 1 1 1#include #include #include #include #include using namespace std;typedef long long ll;typedef unsigned long long原创 2016-09-30 12:23:21 · 597 阅读 · 0 评论 -
51nod 1686 想法
点击打开链接题意:中文思路:我们可以二分要求的那个次数,然后对于每次判断遍历整个数组求出大于等于mid的个数即可,用vector寸一下个数即可#include #include #include #include #include #include using namespace std;typedef long long ll;typedef unsigned long原创 2016-10-26 19:39:47 · 390 阅读 · 0 评论 -
51nod 1682 打标记
点击打开链接题意:中文思路:写的比较暴力的n^2,还是跑过去了,对于每一个点来说,将整个区间的小于它的值记为-1.大于它的记为+1,等于的为0,然后因为这个点作为中位数则必须包含它,所以前面打完标记后,后面的计算一下就可以了#include #include #include #include #include #include #include using namespac原创 2016-10-26 20:01:42 · 409 阅读 · 0 评论 -
51nod 1685 树状数组+打标记
点击打开链接题意:中文思路:之前看了好久感觉应该二分答案,但是二分条件不会写,看了出题人的题解恍然大悟,对于二分的mid,统计到i为止的大于等于mid的个数,然后若一段区间的中位数大于等于mid的话,则2*(num[r]-num[l-1]>r-l+1;代表这个区间的大于等于mid的个数比区间一半的元素多,则中位数就大于等于md,转化一下就是2*num[r]-r>2*num[l-1]-l+1原创 2016-10-27 13:06:49 · 455 阅读 · 0 评论 -
HDU 4821 字符串hash
点击打开链接题意:给定M和L,然后一个字符串,问你连续的一段M*L,使得这M个长度为L的串两两不相同,问所有的不同的结果,即不同位置的两个串都满足情况,但是串相同则视为一种,即去重思路:因为是连续的字符串,可以计算每一段串的hash值,然后将结果放到map中,可以自动去重,注意对于ull的数来说,不需要取余操作,会通过自然溢出来完成 PS:弱校的一道比较简单的hash匹配让我认识到原创 2016-10-04 19:41:49 · 418 阅读 · 0 评论 -
Coderforces 7D hash+dp
点击打开链接题意:题意比较简单不说了思路:用hash来判断一下到当前位置是不是回文串,利用hash来写真的是很方便,然后一个(看似)简单的DP就OK了#include #include #include #include #include #include using namespace std;typedef long long ll;typedef unsigned l原创 2016-10-04 19:58:27 · 332 阅读 · 0 评论 -
HDU 3530 单调队列
点击打开链接题意:给n个数和m,k,问你数列中最长的子序列,其中最大值减去最小值大于等于m小于等于k思路:想着想着想到尺取去了,写了一半实现不了((/ □ \)),一看单调队列也没怎么练过,大致就只知道单调队列肯定是维护一个什么东西,只能看大神们的思路了,维护了两个队列,一个是以当前结束所构成的递减序列的位置,另一个是以当前结束构成的递增序列的位置,然后每次的最大值减去最小值,如果大于k,原创 2016-06-23 20:50:54 · 3457 阅读 · 4 评论 -
HDU 5373 乱搞
点击打开链接题意:给一个数n和t,每一次操作是将n的所有位的和的值加在n的后面,共操作t次,问最后形成的数能否被11整除思路:首先要知道的是什么样的数可以被11整除,百度一下只要这个数的奇数位的和与偶数位的和的值可以被11整除就可以了,那就好办了,直接模拟一下这个数的进程,然后统计奇偶的和就行了#include #include #include #include #include原创 2016-07-08 18:01:33 · 472 阅读 · 0 评论 -
coderforces 22C 构图水题
点击打开链接题意:给n个点,m条边,割点为v的一个图,你试图将它还原,不能输出-1,能就将可行的一组输出即可,还有图为联通图思路:这跟割点没什么关系,直接想想就可以写出来了,先判断能不能组成这样的图,对于一个有一个割点的联通图,如何分配可以使边最多呢,以割点为分界线,左边一部分,右边一部分,可以很直白的知道左边只有一个的时候加的边最多,可以列出个式子,这样右边最多可以为(n-1)*(n-2原创 2016-05-05 16:35:19 · 520 阅读 · 0 评论 -
POJ 2559 水题
点击打开链接题意:给出一些连续的高度,求最大可以形成的长方形思路:对于每一个高度求出它左右用这个高度可以覆盖到的左右两个位置,用L[i]和R[i]来保存,相乘后输出最大值即可#include #include #include #include #include using namespace std;typedef long long ll;const int inf=原创 2016-03-14 19:53:02 · 1530 阅读 · 0 评论 -
HDU 3536 乱搞
点击打开链接题意:就是一次给区间上颜色,颜色共n中,然后问整个大区间上有多少中颜色被完全覆盖了思路:没有数据范围的题真是叼,但是各路大神还是可以准确的看出范围真是厉害,然后竟然暴力乱搞就可以过(弱哭),也有说用二维线段树写的,自己考虑了一下,不会写二维的懒惰标记啊,遂停止想法并献上暴力#include #include #include #include #include usi原创 2016-06-25 13:41:24 · 577 阅读 · 0 评论 -
HDU 5288 乱搞
点击打开链接题意:问你给定的方程式最后的值,表达式的含义是在区间L到R中有多少个元素不是其它任意一个元素的倍数,如2 3 4 5 ,结果就是3,因为2,3,5不是剩下的元素的倍数思路:区间太多了,所以不用考虑区间的做法,我们可以考虑每个元素它可以成功的次数,而它可以成功的条件是这个区间没有它的素因子,那么我们可以找到它左侧第一个是它素因子的位置以及右侧第一个是它素因子的位置,那么它可以提供原创 2016-07-01 15:28:04 · 603 阅读 · 0 评论 -
HDU 5289 RMQ+尺取
点击打开链接题意:给一个数字序列然后问你有多少个区间的最大值与最小值的差小于k,输出思路:对于最大值与最小值的差我们直接用RMQ的ST可以快速求得,然后求当前的i到后面哪里是都可以的,这个与尺取的思想如出一辙,直接求出来就行了,输出注意用long long 就行了,没什么难的#include #include #include #include #include using na原创 2016-07-01 16:24:59 · 553 阅读 · 0 评论 -
HDU 3600 乱搞
点击打开链接题意:问你能否将原图形转化成给定的图形,就是八数码的变形思路:这对于本弱来说哪有什么想法啊,但是在网上看到一个大神的写法和证明具体的,那么我们直接引用性质就可以简单的求出来了,若n为奇数,则计算除0以为的逆序数和,若为偶数则YES,若n为偶数,则需要将逆序数和0走到角落处的高度差相加,若为偶数则YES,否则NO PS:10年的多校题目,爆0的节奏#include #inc原创 2016-07-13 17:12:21 · 426 阅读 · 0 评论 -
HDU 4930 斗地主模拟
点击打开链接题意:给两个人的牌,第一个是地主的第二个是农民的,现在问你第一个这回合能否胜利,胜利条件是农民没有比地主出的大的牌或者地主将牌打光了,然后它的大小比较什么的上面给了与我们平时玩的没什么差别思路:首要判断的就是地主这手牌能否打光,打光就直接yes了,然后判断王炸,若地主有就原创 2016-07-14 12:36:38 · 406 阅读 · 0 评论 -
HDU 5328 类似尺取
点击打开链接题意:给一个序列,然后问你连续最长的一段满足等差或者等比思路:因为是连续的就好做很多,对于一段序列的等差值,若进来的值使得等差值不同,那么就更新这个值,对于等比也是一个意思,比较简单#include #include #include #include #include #include #include using namespace std;typedef原创 2016-07-05 19:17:04 · 451 阅读 · 0 评论 -
HDU 5349 乱搞
点击打开链接题意:三个操作,1是加入一个数,2是将最小的数删除,3是将最大的数输出,若没有元素输出0思路:乱搞就行了#include #include #include #include #include #include using namespace std;typedef long long ll;typedef unsigned long long ull;con原创 2016-07-06 16:45:52 · 530 阅读 · 0 评论 -
HDU 5360 优先队列
点击打开链接题意:对于n个人,写出一个选择的顺序使得最后参加的人数最多,对于当前的人,它参加的条件是已经参加的人数要大于等于它的L小于等于它的R,有多种情况满足输出一种既可思路:想一想如何使得人数最多,如当前参加的人数是ans个,那么所有L小于等于ans且没有参加的人都可以试一试,那么这么多人选择哪个最优,当然是选R最小的满足大于等于ans的那个人,这些人用优先队列存起来即可,只要找到满足原创 2016-07-07 13:07:30 · 502 阅读 · 0 评论 -
CSU 1581 hash
点击打开链接题意:给出两组钟上的位置,问能否通过调整使得在一个时间上思路:之前写过一个KMP的,维护差值即可,用hash的话一样枚举其中一个的位置,然后判断hash值是否相等#include #include #include #include #include #include using namespace std;typedef long long ll;typede原创 2016-10-05 20:40:00 · 433 阅读 · 0 评论