OnlineJudge HDU
15zhazhahe
打杂小能手/吃/喝/睡/胖/菜/
展开
-
hdu1269 迷宫城堡【强连通分量】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1269 题意:中文题 解析:判断强连通分量是否为1#include <bits/stdc++.h>using namespace std;const int maxn = 1e4+100;vector<int>G[maxn];vector<int>rG[maxn];vector<int>vs原创 2017-07-22 19:05:27 · 363 阅读 · 0 评论 -
hdu6045 Is Derek lying
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6045 题意:有n道题,有两个人做题,每道题有三个选项ABC,只有一个正确答案,现在告诉你a和b的分数,问你这个分数是否有可能 解析:首先计算有多少道题是选不一样的,如果不一样的个数小于分差,那么肯定是输出Lying的,然后如果两个人的分数之和大于n,那么说明,他们至少有a+b-n道题是选一样的,所以原创 2017-07-27 21:40:27 · 366 阅读 · 0 评论 -
hdu6033 Add More Zero
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6033 题意:让你求2^m-1次方里面是几位数,即对2^m-1取以10为底的对数 解析:由于不减一也不可能出现增加位数的情况,所以可以直接对2^m次方求对数,换底公式得ans = m*log(2)/log(10)#include <bits/stdc++.h>using namespace std;原创 2017-07-27 21:40:54 · 337 阅读 · 0 评论 -
hdu6108 小C的倍数问题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6108 题意:中文题 解析:首先你要明白为什么3的倍数满足,各位数求和也为3的倍数,假设有一个三的倍数是abc,那么其实这个数用进制展开后,为 102*a+10*b+c = (102-1)*a+(10-1)*b+(a+b+c) 由于前两项都是3的倍数,所以需要a+b+c也为3的倍数 那么对于在p原创 2017-08-20 13:18:08 · 352 阅读 · 0 评论 -
hdu6112 今夕何夕
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6112 题意:中文题 解析:其实思路应该都是有的,就是写起来麻烦一点,我的做法是先做一个每年天数的前缀和,然后从题目给的yy开始枚举,再加上当前年,剩下的天数,和枚举到那年那天的之前的天数,然后得到答案就跳出#include <bits/stdc++.h>using namespace std;i原创 2017-08-20 13:22:56 · 493 阅读 · 0 评论 -
hdu6113 度度熊的01世界
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6113 题意:中文题 解析:其实题目对于两种条件,给的限制条件很多,只要仔细读题,还是很好写的,总的来说就是要么只有一个1的联通块给0包围,要么就是只有一个零的联通块给1包围,所以你只要在外面一圈0零,然后dfs,数一数1和0的联通块的数量即可#include <bits/stdc++.h>usin原创 2017-08-20 13:32:38 · 307 阅读 · 0 评论 -
hdu6109 数据分割【并查集+set】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6109 题意:中文题 解析:由于相等具有传递性,那么可以选择用并查集来维护,即若干个相等的就是一堆,那么对于不等号来说,是无法传递的,于是可以选择用set来维护,比如对于x这个集合来说,里面的所有元素都是与x不等的。这些是对于数据结构的选择,那么有一些要注意的点就是,当你两个相等的元素合并时,其不等的原创 2017-08-20 18:45:48 · 352 阅读 · 0 评论 -
hdu6114 Chess
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6114 题意:中文题 解析:由于题目限制的比较死,上一行的棋子必须在这一行的左边,那么对于一个正方形的棋盘来说,方法数肯定是1的,如果是一个长方形棋盘n*m来说,那就相当于从max(m,n)中选min(m,n)出来,每一列放一个,所以答案就是组合数C(max(n,m),min(n,m)),再加上一个逆原创 2017-08-20 18:51:44 · 303 阅读 · 0 评论 -
hdu6119 小小粉丝度度熊【尺取】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6119 题意:中文题 解析:首先需要能合并的区间都合并了(按L排序后扫一遍),因为题目有明确说明,接着把每个区间之间的差值处理出来,然后尺取做一遍,维护一下答案即可,要注意,剩下的补签卡,可以直接签在已经维护好的那个区间的后面#include <bits/stdc++.h>using namespa原创 2017-08-20 20:05:18 · 452 阅读 · 0 评论 -
hdu6055 Regular polygon【思维+几何基础】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6055 题意:给你n个坐标为整数的点,让你求有有多少个正多边形 解析:首先这个正多边形一定是正四边形,因为点是整点,接下来需要判断有几个,那么枚举两个点,然后去找这条线段构成的正方形是否存在,找正方形,用坐标旋转即可(90度很特殊,算起来很快)#include <iostream>#include原创 2017-07-27 21:13:27 · 453 阅读 · 0 评论 -
hdu6047 Maximum Sequence【贪心+线段树】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6047 题意:给你一个序列a,和一个序列b,让你构造n(an~an+1)个数出来,使得这n个数的和最大,构造出来的数满足ai<={aj-j | bk<=j#include <iostream>#include <cstdio>#include <cstring>#include <string>原创 2017-07-27 21:11:57 · 353 阅读 · 0 评论 -
hdu2255 奔小康赚大钱【最大权完美匹配】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2255 题意:中文题 解析:最大权完美匹配裸题,直接上km板子#include <bits/stdc++.h>using namespace std;const int maxn = 305;const int inf = 0x3f3f3f3f;int g[maxn][maxn];int l原创 2017-07-19 12:08:20 · 297 阅读 · 0 评论 -
hdu1827 Summer Holiday【强连通+贪心】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1827 题意:中文题 解析:首先做强连通缩点,每一个强连通分量里的每个点都是可以互相联系的,而对于每个强连通分量之间,如果一个强连通的入度为零,那么你不得不联系他,否则一定可以通过其他人联系到这一群人,所以,把每个强连通分量的入度处理出来,然后找入度为零的强连通分量,去里面的最小值,求和即是答案#in原创 2017-07-23 12:26:05 · 347 阅读 · 0 评论 -
hdu2767 Proving Equivalences【强连通】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2767 题意:给你n个矩阵,问你要证明多少次,才能证明这n个矩阵之间相互相等,比如要证明a,b,c,d之间相互相等,可以证明a=b,b=c,c=d,d=a,那么要证4次,现在已经告诉你了m个矩阵相等,问你你还需要证几次 解析:如果把矩阵看成点,然后把已经相等的部分,看成一条有向边,那么题目就相当于问你原创 2017-07-23 14:52:05 · 419 阅读 · 0 评论 -
hdu3836 Equivalent Sets【强连通】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3836 题意:有n个集合,已知一些集合是一些集合的子集,你先要证明这n个集合都是相等的,集合的相等要证两遍,x是y的子集,y是x的子集,那么他们是相等的,问你在已知条件下,最少要证几次再能证得n个集合相等 解析:这题和hdu2767很像,也是相当于问你最少加几条边能使得它构成强连通#include <原创 2017-07-23 15:27:38 · 249 阅读 · 0 评论 -
hdu3861 The King’s Problem【强连通+最小路径覆盖】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3861 题意:一个国王掌管着n做城市,有m条有向道路,为了方便管理,国王要把这n个城市划分成尽可能少的集合,首先强连通必须是一个集合里面,除此之外,一个集合里面的任意两点需要满足,u可以达到v,或者v可以达到u,问你最少的集合数 解析:强连通缩点以后,就相当于问你用最少的不重叠路径去覆盖这个图,那也就原创 2017-07-24 15:58:30 · 593 阅读 · 0 评论 -
hdu3639 Hawk-and-Chicken【强连通】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3639 题意:有n个小朋友要做游戏,但是需要选一个Hawk出来,老师决定让小朋友通过投票的方式来选举这个扮演者,每个小朋友都有一个手帕,代表支持一个人(其实手帕没卵用),把他理解为支持就好了,支持具有传递性,比如A支持B,B支持C,那么C就有两个人支持了,于是在一个强连通里面,每个人都有v-1个人支持,原创 2017-07-26 20:15:39 · 328 阅读 · 0 评论 -
hdu3072 Intelligence System【强连通】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3072 题意:有n个人,0要把消息传给其他人,但是他们只会把消息传给认识的人,每个传递消息的人都必须花费一定的价值,但是如果若干个人相互之间都可以传递消息的话,就不用花钱,问你最少花费多少,使得0号能把消息传给所有人 解析:首先如果相互认识就不用花钱,那么先强连通缩点,构成一个无环有向图,然后维护每条原创 2017-07-26 20:59:46 · 398 阅读 · 0 评论 -
hdu6050 Funny Function【打表+找规律+矩阵快速幂】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6050 题意:看公式,求fm,1 解析:打表找规律 直接找答案的规律,根据题目的公式来推,太难了,直接打个表看规律,好看点 先处理处第一行(用矩阵快速幂来做),然后分奇偶来找规律,找规律是玄学问题,难以解释。。。(详情见代码) 打表#include <bits/stdc++.h>using n原创 2017-07-27 21:11:23 · 766 阅读 · 0 评论 -
hdu6097 Mindis【圆的反演】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6097 题意:有一个半径为R的圆,圆心在原点,圆里面存在两点P,Q,且PO=QO,现让你在圆上找一个点D,使得PD+QD的值最小,并输出这个值 解析:比赛的时候,三分不够优秀,过不去,赛后看了题解,然后学习了一下圆的反演,发现了一个新的大陆,通过圆的反演,就会发现,这个问题的求解就分成了两种情况,反演原创 2017-08-21 16:02:37 · 486 阅读 · 0 评论 -
hdu6170 Two strings【regex真好用】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6170 题意:有两个字符串,问你第二个字符串和第一个字符串能否匹配,第二个字符串有两种符号,’.’可以匹配任意字符,’*’表示前一个字付可以重复零次或多次 解析:我们队直接用的是c++自带的正则库,不过要注意,题目中的”.* “是先执行.后执行* 的,而不像正则里面.* 是指,.重复若干次。所以我们需原创 2017-08-22 20:37:34 · 917 阅读 · 5 评论 -
hdu1233 还是畅通工程【最小生成树】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1233 题意:中文题 解析:最小生成树入门题#include <bits/stdc++.h>using namespace std;const int maxn = 1e5+100;struct node{ int x,y,v; bool operator < (const n原创 2017-08-21 21:53:42 · 364 阅读 · 0 评论 -
hdu6058 Kanade's sum
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6058 题意:给你一个1~n的全排列,让你求所有区间第k大的求和 解析:这题需要从每位的贡献值来处理,比赛的时候队友用set写,一直超时,觉得可能多了一个log时间复杂度,赛后看题解,发现应该用链表来维护,对于每一位x来说,算他总共在几个区间里是满足第k大的,然后把区间数x,再加到答案上即可,那么对于原创 2017-08-23 22:17:04 · 307 阅读 · 0 评论 -
hdu1495 非常可乐【bfs】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495 题意:中文题 解析:反正就是3个杯子倒来倒去,那么每次都试一下,直接bfs就好,写的过程中耐心一些,就可以了#include <bits/stdc++.h>using namespace std;struct node{ int a,b,c; int step;原创 2017-08-29 14:11:08 · 446 阅读 · 0 评论 -
hdu2181 哈密顿绕行世界问题【dfs】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2181 题意:给你一个无向图,这个图有20个结点,且每个结点和三个结点相连,现在问你一某一个结点开始,经过所有结点并回到起始点的所有路径,按字典序输出 解析:dfs就好了,从起始点开始dfs,由于每次都是从最小的开始选,所以第一次回到起点的时候肯定是最小字典序的,回溯只是慢慢改变这个字典序,所以这样输原创 2017-09-01 12:13:14 · 456 阅读 · 1 评论 -
hdu2102 A计划【BFS】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2102 题意:中文题 解析:很简单的bfs,但是题目有个很奇葩的设定,那个时光机,你踩上去一定会传到另一层,那么如果你的另一边也是时光机的话,那你就拉闸了,这种情况确实很无语,注意下这个坑点,其他都跟普通的走迷宫没区别#include <bits/stdc++.h>using namespace s原创 2017-09-01 21:36:27 · 321 阅读 · 0 评论 -
hdu3085 Nightmare Ⅱ【双向BFS】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3085 题意:有一个n*m的地图,有两只狗要见面,M代表第一只狗,G代表第二只狗,Z代表鬼,X代表墙,.表示可以走的地方,每秒钟,鬼先走,鬼每秒钟可以走两步,M狗每秒能走3步,G狗每秒只能走一步,只要两只狗能够互相走到他们之前走过的位置就算见面……现在问你在他们不走到鬼的格子上的情况下而完成目标的最小时原创 2017-09-02 16:45:08 · 332 阅读 · 0 评论 -
hdu6198 number number number【找规律+矩阵快速幂】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6198 题意:给你一段斐波那契数列,有个关于good number的定义,就是给你一个k,如果对于一个n,能由k项斐波那契数相加来表示,那么这个数就叫good number,否则就是bad number,现在输入k,让你求最小的bad number 解析:这种题型,看着就像递推题,手写了前几项,然后和原创 2017-09-11 23:56:58 · 670 阅读 · 0 评论 -
hdu6197 array array array【英文题】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6197 题意:给你一个长度为n的数组,如果能从这个数组里删除k个元素,使得这个数组成为不严格的单调递增序列,或不严格单调递减序列,那么这个数组就是魔法数组,否则就不是 解析:其实看懂了题真的挺好做的,看不懂那就连样例都看不懂了,对于这题,对于递增的情况来说,求他的最长上升子序列的长度,判断他的长度+k原创 2017-09-12 15:32:06 · 400 阅读 · 0 评论 -
hdu6201 transaction transaction transaction
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6201 题意:有n座城市,有n-1条道路连接这n个城市,每条道路有长度,,表示这个人从x城市到y城市需要的花费是z元每个城市有一个值,表示在这个城市买书和卖书的价格,有一个人必须从这n个城市里选两个城市出来做生意,现在问你,这个人最多能赚多少钱 解析:我的方法是,类似树的直径的做法,从任意一个点开始b原创 2017-09-12 15:43:47 · 332 阅读 · 0 评论 -
hdu6077 Time To Get Up
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6077 题意:给你一个7x21的二维字符数组,让你识别现在是几点了 解析:我是直接把每个数字的字符形式存起来了,然后直接比对了一下#include <bits/stdc++.h>using namespace std;char a[10][10][10] = {{".XX.","X..X","X原创 2017-08-27 23:39:09 · 437 阅读 · 0 评论 -
hdu6075 Questionnaire
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6075 题意:给你n个数,让你找一个k和d,使得这个序列里所有的元素%k等于d的个数大于不等于d的个数 解析:其实可以把d限定了,比如k如果取2,那么d不是1就是0#include <bits/stdc++.h>using namespace std;int main(void){ in原创 2017-08-27 15:21:03 · 307 阅读 · 0 评论 -
hdu6168 Numbers
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6168 题意:有一个长度为n的序列a1……an,根据a序列生成了一个b序列,b[i] = a[i]+aj,然后有一个人把a,b序列按随机顺序混合了起来,现在问你初始的a序列是什么 解析:首先先对给你的这个a,b混合序列排个序,那么最小的一定是a的初始序列里面的元素,那么剩下的肯定是由之前的序列加起来的原创 2017-08-22 21:07:24 · 631 阅读 · 0 评论 -
hdu6165 FFF at Valentine【强联通缩点+拓扑排序】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6165 题意:给你一个无环,无重边的有向图,问你任意两点,是否存在路径使得其中一点能到达另一点 解析:一开始想着是强联通缩点以后的图,是否成一条链,WA了以后,发现了一个样例 后面想了一下,觉得应该是,强联通后拓扑排序,因为对于每一层来说只能有一个入度为零的点,若存在两个,那么就会存在一对点不可原创 2017-08-22 21:24:17 · 916 阅读 · 0 评论 -
hdu1875 畅通工程再续【最小生成树】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1875 题意:中文题 解析:建图后直接跑kruskal最小生成树,然后判断并查集后有是否有多个集合#include <bits/stdc++.h>using namespace std;const int maxn = 1e5+100;struct node{ int u,v;原创 2017-08-22 21:58:25 · 367 阅读 · 0 评论 -
hdu6043 KazaQ's Socks
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6043 题意:有一个人,有n双袜子(袜子编号从1到n),他必须凑齐n-1双袜子,才会去洗,他每天早上会穿没有穿过的编号最小的袜子,每天晚上会把袜子丢进脸盆里,如果脸盆里有n-1双袜子,他就洗了这些,现在问你他第k天,穿的袜子编号是几 解析:就单从题目描述来讲,肯定是有规律,而且数据规模也这样暗示了,所原创 2017-08-23 12:16:04 · 343 阅读 · 0 评论 -
hdu6040 Hints of sd0061【nth_element使用】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6040 题意:给你一个函数,有一个长度为n的序列是由这个函数生成的,现在给你一个长度为m的序列,然你输出一个长度为m的东西,每一位表示a序列中第b[i]+1小的元素 解析:第一反应肯定是对a排序,但是快排复杂度是nlogn,而n的范围是不允许的,然后发现m又很小,所以从b序列入手,应该是个不错的选择,原创 2017-08-23 14:26:25 · 421 阅读 · 0 评论 -
hdu6044 Limited Permutation【读入优化+dfs】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6044 题意:有长度为n的序列,分别表示l[i]和r[i],然后让你构造一个a序列,a[i]满足在[l[i],r[i]]区间里面,a[i]为最小值,满足这样条件的序列有多少种 解析:首先根据题面的限定,肯定存在一个区间i是[1,n],对于这个区间,可以说第i个值已经确定了,因为这个区间是当前的整个区间原创 2017-08-27 10:32:53 · 403 阅读 · 0 评论 -
hdu6060 RXD and dividing
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6060 题意:给你一棵有n个结点的树,让你把他的2~k个节点分成k份,然后求1号顶点到每份里各个顶点的最大权值和,比如说样例,就是分成了{2},{3},{4},{5},到每个顶点的距离即是到这个顶点在原图上到顶点的距离 解析:其实画多几棵树会发现一个问题,就是有些变权是会被多次重复计算的,比如样例,(原创 2017-08-27 14:40:03 · 331 阅读 · 0 评论 -
hdu6063 RXD and math
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6063 题意:没错就是题面那个公式 解析:n和k都好大啊,我坚信他是规律题,推了几组发现真的是规律nk,直接快速幂就搞定了,不过有一个问题是,n很大,有可能直接乘一下就爆long long了,所以要先对n取模一下#include <bits/stdc++.h>using namespace std;原创 2017-08-27 14:48:10 · 297 阅读 · 0 评论