
hdoj
keyboarder_zsq
你所认为的极限,其实是别人的起点。
展开
-
hdoj5327【前缀和思想】
题意: 找给定区间的美丽数,美丽数的意思就是这个数每个位上的数都是唯一的。 思路: 前缀和的思想。 感想: 就是你当前位置代表某个特性的前面的所有和(瞎比比的,说了下感觉)。前提是你必须找到这样的特性,比如CF的很多题目都是这样子,给你1e5的查询,题解马上一堆线段树,这种区间的预处理,前缀和的思想很好。还有就有一题实现区间的压缩,也是很棒啊。#include <bits/stdc++.h原创 2016-07-22 21:50:49 · 692 阅读 · 0 评论 -
hdoj5813【构造】
2016 Multi-University Training Contest 7 05 真的真的好菜哇。。。 思路: 暴力。 我对那些到达目的地少的点做硬性规定就是去比他要到达目的地更少的点,这样一来肯定是满足的嘛,题目也没要求输出路径的唯一,这个方法正好把某个点能到达的所有点都指了出来,就是这样啊。。。 贴一发挫code…….#include <iostream>#include <c原创 2016-08-10 10:05:43 · 360 阅读 · 0 评论 -
hdu5443 【线段树】
题意: 略 思路: 暴力是可以的O(1e7),这里采用线段树,线段树区间查找O(logn)#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;const int INF=-0x3f3f3f3f;const int MAXN=200000;struct s原创 2016-09-02 18:00:06 · 418 阅读 · 0 评论 -
hdoj5821【贪心-神题】
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊,比赛的时候直接读错题了,实力带坑队友。。。。 题意: 有两个序列都代表筐,每个筐里只有一个球,然后序列的值代表筐里的球的颜色,问你在m次操作后,a序列的球能否变成b序列的球,每总操作虽然是收集这个区间所有的球,但是每个筐只能放一个,也就是说这只是交换位置的操作。 思路: 补完题,也完全想不出可以用标记下标,然后对m个区间的a数组下标排序,因为在排序的过程中原创 2016-08-12 15:10:17 · 552 阅读 · 0 评论 -
HDU5113【DFS+剪枝】
题意: n*m的矩阵 k种颜色 每种颜色有c[i]个 上下左右相邻的格子不能一样的颜色 问你有没有一种染色方法,有的话输出方案。 思路: 暴搜啊,n,m都才5,做完以后大哥的剪枝是奇偶剪枝,其实画完图我就应该想到了。然后自己想了好多,关于奇偶剪枝,自己也就做了HDU1010而已吧。 然后自己的思路,一开始暴搜无剪枝T了,然后想到了最终两种颜色的时候一定是相等的,剩下的一半,然后还是T原创 2016-09-19 22:26:32 · 497 阅读 · 0 评论 -
HDU5112【水】
#include <bits/stdc++.h>using namespace std;typedef long long LL;const int N=1e4+10;struct asd{ double time; double x;};asd d[N];int n;bool cmp(asd a,asd b){ return a.time<b.time;}i原创 2016-09-19 22:31:35 · 390 阅读 · 0 评论 -
HDU5122【水】
题意: 有n个数,然后按照冒泡排序的手段,只能往后移,然后问你最小几轮可以实现1-n 思路: 后边有比他小的数的话就一定要到后面去 求一下有多少个 PS: 如果还可以往前移,那么我们可以求一个最大确定个数,然后除外的就一定要移。#include <bits/stdc++.h>using namespace std;typedef long long LL;const int N=1原创 2016-09-20 09:20:29 · 359 阅读 · 0 评论 -
hdoj3665【简单DFS】
题意: 略。 思路: n就10而已,没有环,搜一下就好了。。#include <bits/stdc++.h>using namespace std;typedef long long LL;const int mod=1e9+7;const int N=10+10;const int INF=0x3f3f3f3f;int ma[N][N];bool flag[N];bool vis[原创 2016-09-08 19:09:45 · 404 阅读 · 0 评论 -
HDU5904【瞎搞】
哇咔咔,挂完。 靠着hack的100分挂在了rank167。。。 就是memset的问题,超时了;用map好了。。 思路: 标记a串以当前值为尾的上升子序列长度,然后还是搞b串,每次判一下当前值在a串是否有,有的话取小的和ans比较取大;#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>原创 2016-09-24 22:17:35 · 409 阅读 · 0 评论 -
HDU4247【瞎搞】
题意:给你4个小正方形的边长,让你求一个最小大正方形的边长以至于可以存这么四个正方形。思路:比划了一下。。。就是最大边+次大边,因为他们一定有交集。#include #include #include #include #include #include using namespace std;typedef long long LL;LL a[4];LL b原创 2016-10-15 22:20:42 · 430 阅读 · 0 评论 -
HDU5971【瞎搞】
题意:略(忙着准备文化课。。。明天期中考啊。。。。思路:正解就是染色,2-sat搞;AC代码(虽然是错误的。。。数据水(过踏马的也行啊,起码打脸他啊!)4 3 1 01 22 33 44这个就挂了;#include using namespace std;typedef long long LL;const int MAX=1010;co原创 2016-11-06 20:22:13 · 749 阅读 · 3 评论 -
Multi-University板块
力争补完所有 Multi-University 的“水题”,任重而道远。原创 2017-01-23 17:18:31 · 569 阅读 · 0 评论 -
hdoj5818【模拟】
思路:我相信T的绝对是直接根据题目意思来了。正确的一点小转变,比较一下那个队列小,然后把小的给大的,每次都这样就好了。来想想,觉得这样好像也不对啊,我两个队列都push进去5e4,那么merge操作,还是1e4啊,但是说自己年轻就是连复杂度都不会计算,这个1e4只有一次啊...年轻啊...七夕节快乐...#include #include #include #includ原创 2016-08-09 18:03:21 · 502 阅读 · 0 评论 -
hdoj5806【尺取】
(补题,妈蛋那时候大哥给我说是尺取,我不想打…真是艾斯比了…) 题意: 退役狗 NanoApe 滚回去学文化课啦!在数学课上,NanoApe 心痒痒又玩起了数列。他在纸上随便写了一个长度为 n 的数列,他又根据心情写下了一个数 m。他想知道这个数列中有多少个区间里的第 k 大的数不小于 m,当然首先这个区间必须至少要有 k个数啦。思路: 首先就是大于m阿,然后,然后再去判断一下在区间内的大于m原创 2016-08-08 13:55:30 · 710 阅读 · 0 评论 -
hdoj1789【贪心】
题意: 已知有n个作业,每个作业呢,都是一天可以做完,每个作业都有一个截止日期,每个作业如果超过他的截止日期会扣分,最后让你求一个怎么安排求得一个最小扣的分数。 比如现在有3个作业 截止日期:3 3 3 超过扣分:1 5 4 我们看到他们的截止日期都是3天,所以每天做一份。3天刚好做完,扣0分。 思路: 一开始一直一直瞎搞,因为听说这道题目吧。。记忆中是贪心。然后就瞎几把排序各种,按时原创 2016-07-15 22:21:32 · 480 阅读 · 0 评论 -
2016 Multi-University Training Contest 3 1011【鸽巢原理】
题解: 坐标(0,m)的话,闭区间,可能一共有多少曼哈顿距离? 2m 但是给一个n,可能存在n(n+1)/2个曼哈顿距离 所以可以用抽屉原理了 当n比抽屉的数量大,直接输出yes 不用计算 那。。。NO呢 那就暴力 n^2 这个n肯定不会太大队友code……..#include <iostream>#include <stdio.h>#include <stdlib.h>#原创 2016-07-26 23:08:00 · 530 阅读 · 0 评论 -
hdoj5301
题意: 有一个n*m的大矩阵, 其中有一个1*1的不要的位置(x,y), 然后用若干个小矩阵去覆盖大矩阵, 不要的不能被覆盖。 问小矩阵中面积最大的面积最小是多少。 思路: 巨巨先画一个矩形,看看那个不要的在边上的时候; 再画个矩形,然后用四个矩阵把那个不要的包起来; 然后画个正方形(奇数),然后把不要的放在最中间。 很简单吧~#include<bits/stdc++.h>//原创 2016-07-27 19:30:10 · 396 阅读 · 0 评论 -
hdoj2796
题意:1.在每一堆里顶部的coin的size必须大于这一堆其他的coin;2.在每一堆里顶部的coin的size必须大于前面堆的顶部的coin;3.在每一堆里顶部的coin的num必须大于前面堆的数量;然后给你n(思路:就是排序一下,然后根据他给的信息模拟一下就好了,水题。。。打了快一个小时。。。#include using namespace std;typede原创 2016-07-18 14:23:30 · 374 阅读 · 0 评论 -
hdoj5792 【树状数组】【未完待续】
题意: 求有多少种四个数满足Aa < Ab,Ac > Ad,1 < =a < b < = n ,1 < = c < d < = n ;思路:只要找到两种情况就成立了。 在序列中对于一个元素在他的后面存在比他大的, 还有就是存在对于一个元素在他的后面比他小的, 那么对于一个元素的①种情况总和*②种情况总和; 但是这样不难发现是有重复的。 大哥说有四种可能。。前面比他小的 * 后面比他小的原创 2016-08-02 21:51:02 · 551 阅读 · 0 评论 -
hdoj5402 【模拟/构造】
题意: 给你一个矩阵,每个值都是非负,然后让你从左上角走到右下角,每个点只能走一次,求到终点的最大值,还要输出一条路径思路: 一开始拿到还以为搜索之类的,但是发现神特么暴力+麻烦(因为路径这个东西。。。),虽然路径现在也是能写,但是开个数组。。。还是嫌麻烦。题意给出的非负的,而且如果矩阵的行或列是奇数的时候就一定能走完,具体走法,还是具体实现就好了。但是偶行偶列不行,后来想了一个是不是全部值-一原创 2016-08-06 18:06:50 · 490 阅读 · 0 评论 -
hdoj5805【模拟】
BestCoder Round #86 B NanoApe Loves Sequence 题意: 中文题,题意就算了 思路: 弱的思路… 找一个最大,和第二大,第三大,标记下标(前面那个) ①:如果是1/n的话,最大就是他位置的话,那么就是第二大, ②:中间情况的话,需要判断两个位置是不是满足第一大,或者第一大和第二大都满足,还要和一个新产生的差值比一比。比赛时的挫code………#in原创 2016-08-07 10:53:49 · 417 阅读 · 0 评论 -
hdoj1540 【线段树的表示】
大牛blog 这题的题解写给自己看…… 总结(瞎扯一点): 之前只会思考,len,sum,然后GG,如果只是sum和len的去用的话,就是在mid的时候会GG。然后这次也是参考大牛的写法,其实还是蛮简单的,写完以后觉得。。。直接搞两个左边连续,右边连续,然后区间最大,直接弄弄就好了,但是具体实现,如果没有很多的练习,绝对是错误百出啊! 先讲小东西: ①:建树,以后再根据自己的瞎瘠薄在挑战上原创 2016-08-07 17:14:03 · 494 阅读 · 0 评论 -
hdoj3714【三分】
手动插姿势: 三分法可以应用于凸函数或者凹函数的求极值。 三分讲解:http://blog.youkuaiyun.com/pi9nc/article/details/9666627 三分模板:http://www.cnblogs.com/Hilda/archive/2013/03/02/2939708.htmldouble cal(Type a){ /* 根据题目的意思计算 */}void s原创 2016-09-10 00:06:44 · 551 阅读 · 0 评论 -
hdoj5793 A Boring Question【找规律】
超出的规律。。。。1 23 2 273 2154 2315 2631 342 3133 3404 31215 3361然后我们来推个公式: 比如说a2=3a1+1,我们可以看到 等比是m, 然后凑一下, 1+x=m*x x=1/(m-1) 上面那个例子就凑成了这个样子, (a2+1/2)/(a1+1/2)=3所以首项是:m+1+[1/(m-1)]原创 2016-08-04 17:46:09 · 593 阅读 · 0 评论 -
hdoj3183【思维】
思路: 处理方案非常霸气啊,无奈想不到。 说是n位去m个,那么默认就是取了n-m个数字,ok,然后m#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#include <queue>#include <stack>using namespace s原创 2016-09-10 23:40:51 · 363 阅读 · 0 评论 -
HDU 4007【尺取】
MMP??? 居然正方形是水平的…我不知道啊… 先根据 y 坐标从小到大排序,然后对 y 坐标尺取,然后对所在符合区间内的 点,存起来,以 x 坐标从小到大排序,再尺取一下… 复杂度 < N^2LogN;#include<bits/stdc++.h>using namespace std;typedef long long LL;const int N = 1e3+10;struct N原创 2017-07-18 20:39:19 · 391 阅读 · 0 评论