暴力
文章平均质量分 82
luckyone2014
想思路是苦涩艰辛的,但是打代码是愉快的。
展开
-
hdu 1195 Open the Lock 暴力穷举
#include#include#include#includeusing namespace std;int main(){int t,i,j,k;int tem1,tem2;char a[20],b[20];//输入的数int n[20],m[20];//把输入的存成intint num[40];int nixu[10];// 0原创 2014-07-10 15:17:04 · 584 阅读 · 0 评论 -
hdu 5348 MZL's endless loop 暴搜
题意:给n点m条无向边,要给每条边定一个方向,最后图中所有点的出入度差小于等于1.做法:暴搜,注意用完的边要删去,更新下head就可以删边了。 然后 每个dfs 只找一条路径, 找到后就break。原创 2015-08-05 16:16:06 · 678 阅读 · 0 评论 -
hdu 1924 CIVIC DILL MIX 罗马数字和阿拉伯数字之间的转换
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1924CIVIC DILL MIXTime Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 203 Accepted Submiss原创 2015-07-24 22:31:06 · 1459 阅读 · 0 评论 -
hdu 4941 Magical Forest
题意是n*m大的方格, 输入k组数据 x,y,c 代表x,y这个点上的值为c,没提到的值为0;然后输入t 组数据 q,a,b ; 如果q是1,交换ab两行,如果q是2,交换ab两列;如果q是3,输出x=a,y=b上的值;采用map来做,比较快. 其实的c值记录的坐标在zuobiao这个map中. 行列交换互不影响, 所以分开记录在hang 和lie 两个map中hang[ a ] 为例, a是现在要查的行; hang[a] 中记录的值是 当前第a行上的数是 原来是第hang[a] 行;如果原创 2014-08-12 20:41:32 · 774 阅读 · 0 评论 -
CF 558 C. Amr and Chemistry 暴力+二进制
题意:给你若干个数。对每个数都可以进行除或者乘的操作。 3/2=1问 最少 多少步操作,可以让所有数字都相等。做法:首先如果都变成一个数字,那这个数字肯定是小于等于这些数字里的最大的那个的。 这里可以把每个数字看成二进制。如 11(D)1101(2)所以其实可以枚举任意一个数。任意一个二进制可以往左移若干位,得到一个新的数字。出现奇数次数最多是log(n),向左移动最多也是log(n) 所以复杂度是log^2(n)*n或者往右移。可以知道如果奇数往右移时,二进制会少一个1原创 2015-07-16 14:37:17 · 1409 阅读 · 0 评论 -
cf 251 B Playing with Permutations 暴力 分类讨论
题意:题意是,给q数列,和s数列。然后p数列初始为1-n。然后通过p[q[i]]=p[i],或者p[i]=p[q[i]]这两种变换,问有没有可能在k次变换后刚刚p数列为s数列。并且在这k次变换过程中,p数列不能等于s数列。p数列一开始就为s数列也不行。做法:因为两个变换是相反的,所以可以通过两次分别两种变换来抵消。计算出p通过第一种变换要多少步可以达到s数列,然后第二种变换要多少步,然后分类讨论。原创 2015-07-07 20:50:26 · 1166 阅读 · 0 评论 -
cf 215 C. Crosses yy题
题意:给你n*m矩阵,问有多少个不同的 (a, b, c, d, x0, y0) 面积等于s。|x0 - x| ≤ a and |y0 - y| ≤ b|x0 - x| ≤ c and |y0 - y| ≤ d满足这个条件 相当于两个一x0 ,y0 为中心的,边长全为奇数的矩形并。一个矩形长为2a+1,宽为2b+1 另一个是(2*c+1) * (2*d+1)做法:枚举其中一个矩形的长和宽。如果面积超过s显然不行。如果等于s,那么另一个肯定比它小或者相等。ans+=(n原创 2015-07-14 22:01:55 · 823 阅读 · 0 评论 -
hdu 1710 Binary Tree Traversals 前序遍历和中序推后序
题意:给出前序历遍和中序遍历的顺序,来推导后序遍历的顺序。做法:把握两个要点,前序是 先根历遍的,所以前序的第一个是根。然后这个根把中序分为两半,左边是左子树,右边是右子树。然后递归下就ok了。原创 2015-07-06 22:05:12 · 903 阅读 · 0 评论 -
zoj 3607 Lazier Salesgirl 暴力 前缀和
题意:某 在0时刻开店, 然后按顺序来了n个客人,分别出了一个价格p[i],每个人来的时刻为 t[i]。然后 某 在w时间内没接待客人就会睡觉,如果间隔正好是w,不会睡。 问接待的客人 出价的平均值最大是多少,在满足该条件下 w最低是多少。做法:不断求前缀和 还有 到第i个人间隔最大值。 接待的人肯定是连续的 前多少个。 先假设只接待第一个人,然后假设接待前两个,再前三个。 类推。 如果是正好前i个人,那么w得 大于等于 ( 到第i个人间隔最大值) ,而且要严格小于(第 i和i+1 个原创 2015-04-19 21:29:56 · 789 阅读 · 0 评论 -
zoj 3326 An Awful Problem 日期
题意:给你两个日期,算出其间的每天中,月和日都为素数的天数。后一个的日期可能比前一个的日期早。给出的两个日期也算。O(50*1000*365)=O(1e7)感觉不会超时,所以可以一天天来算。原创 2015-04-18 10:23:16 · 512 阅读 · 0 评论 -
hdu Illusive Chase 1364 dfs
题意:输入一个地图,0表示可以走,1表示不能走。接下来再出现0 0 之前,输入若干个操作。前两个数字代表走的步数范围,每次走的步数都可以是在这个范围里的任意步。最后一个字母代表 走的方向。 输出有多少个 为0的位置可以作为起始点。起始位置的要求是,有一种的走法,可以使其 走完 给的若干个操作后,在走的过程中 不会遇到障碍1 ,并且不会超出地图范围。第二个案例,因为第二个操作 最少向上走三步, 所以肯定超出范围了。所以没有点可以做为起始点。 做法:枚举所有点,dfs 所有走的步数范围。 注意 如果步原创 2015-03-05 18:07:56 · 742 阅读 · 0 评论 -
ural 1146 Maximum Sum 最大连续和
题意:给个n*n的矩阵,所有子矩阵中 ,和最大等于多少。 做法:首先要理解一个O(n)的算法 。 给一个数组 求连续和的最大值。 可以用一个sum来从下标0开始计算和,不断取最大值。当加和小于0的时候 初始化为0;如 3 -4 5 1 -2 第一个步加和是3,再加上第二个-4 ,sum就变成-1了,所以要初始化sum为0,再加5 ,再加1, 最后得到最大值为6。然后对于矩阵,我们可以先预处理,sum[ i ] [ j ]为 第 i 列的 前j项和;然后枚举 两列 i,j ,然后k原创 2015-02-12 14:22:42 · 944 阅读 · 0 评论 -
hdu 4932 Miaomiao's Geometry 暴力枚举
比赛的时候 在Y , 以为是两个之间取最大, 然后给取出来得最大取个最小,后来发现 70 3 6 7 12 14 18这组案例 应该跑出2.5 的 而那样Y 出不来小数给跪了.后来在hack 的时候 看到很多二分的选手居然没被X; 这题二分是不行的... 比如说 这组案例30 1 3 4 跑出来应该是22 符合案例 1.5比2 小但是不符合 所以答案不是线性关系的 所以不能二分来做.后来看题解看到有人暴力. O(n*n); 这就要首先判断出,答案必须是某段区间或原创 2014-08-11 15:10:17 · 637 阅读 · 0 评论 -
hdu 5204 Rikka with sequence yy题
题意:n个操作。一开始一个空序列op==1 给你一个数, 如果序列为空,就添加这个数。序列非空,就在集最前面加这个数,并在以后的所有数字后面加上这个数字。op==2 询问区间第k大。做法:有一个规律。 对于1到L区间。前一个1操作产生的数 出现 (L+1)/2 次,然后再前一个出现 (L-(L+1)/2+1)/2次类推。每次 都会 折半,所以最多出现60个数。所以先把1到(L-1)区间 中 出现的数 -1, 然后把1到R 区间中出现的数 +1,然后排序下这60个数,数到第原创 2015-09-04 19:29:15 · 820 阅读 · 0 评论