小技巧-找规律
Nemaleswang
ACM退役狗一只
展开
-
BNUOJ 52297 Coins(2016 ACM-ICPC四川省赛E题)
传送门:Coins题意敲简单的,给你三个数a,b,c,代表1,2,3这样三种硬币的数量,求可以表示多少种不同的数毒瘤题,分类讨论到死,赛场上写了足足四个小时,推了四小时规律,各种wa,最后终于写出来了,刚开始还没处理long long,这道题目反正就是各种枚举来推翻之前推得那一堆规律,直到考虑完所有的情况,实际上就是判一判a,b,c三个数为0,为1,大于等于的2的情况就可以了,具体看代码的原创 2017-04-01 17:32:00 · 1581 阅读 · 0 评论 -
hdoj 5573 Binary Tree
题目链接:Binary Tree题目大意:给你一个二叉树,编号就是二叉树的编号,然后从根节点到第k层的某一个结点,你可以以一些途径到达,然后经过的根节点编号需要加加减减,问你怎么凑出来这个n,特判数据题目思路:我们注意到N<2kN < 2^k,所以我们可以想到,一定是能用1,2,4′′′2k1,2,4 ''' 2^k去凑出来这个N,但是转化成二进制我们注意到,本来为0的数我们是需要减掉而不是不需要,原创 2017-10-12 22:24:37 · 217 阅读 · 0 评论 -
计蒜客 17118 Maximum Flow(2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E)
题目链接:Maximum Flow题目大意:给你一张图,第i个点和第j个点之间有一条容量为i^j的路,求最大流题目思路:找规律,每一层之间的差值由规律,然后写一些恶心的模拟就好了 #include <map>#include <set>#include <cmath>#include <queue>#include <stack>#include <vector>#include <cs原创 2017-10-10 22:06:32 · 362 阅读 · 0 评论 -
hdoj 5512 Pagodas
题目链接:Pagodas题目大意:有n个寺庙,最开始的时候有两个a,b寺庙编号是被标记了的,下一次的标记可以是已经存在的两个不同的被标记了的编号相加或者相减,问到什么时候就不能标记到未标记的寺庙了,不能标记的那个人算输,问赢的是谁题目思路:题目给了很多的样例,大概的意思就是叫你去找规律,然后我们可以知道在最开始的时候间距就确定了,就是gcd(a,b),所以,我们需要算一下有多少能被标记,然后判断奇偶原创 2017-10-18 19:44:36 · 325 阅读 · 0 评论 -
hdoj 6060(2017 Multi-University Training Contest - Team 3) RXD and dividing
题目链接:RXD and dividing题目大意:有n-1个数2到n,现在需要你去切分这n-1个数为k个区间,区间可以为空,给出n-1条边,有边权,使得这些点组成一棵树,现在要你去算你分的每个区间的贡献,res res=∑ki=1f({1}⋃Si)res = \sum_{i = 1}^{k}{f(\{1\}\bigcup S_i)} f代表要使得所有的点都能直接或者间接相连,问需要那些边的边权原创 2017-09-09 21:06:02 · 206 阅读 · 0 评论 -
hdoj 6058(2017 Multi-University Training Contest - Team 3) Kanade's sum
题目链接:Kanade’s sum题目大意:给你一个n个数的数列,数列是n个数的某一个排列,枚举l,r,每个[l,r]区间里面第k大的数作为这个贡献,也就是算∑nl=1∑nr=lf(l,r,k)\sum_{l=1}^{n}\sum_{r=l}^{n}f(l,r,k)这个玩意,n的范围是5e5题目思路:暴力肯定T,没得说,因为是一个全排列,我们可以想到去算每个数是第k大的时候有多少次,然后这个东西怎么原创 2017-09-09 20:53:08 · 279 阅读 · 0 评论 -
hdoj 5978 To begin or not to begin
题目链接:To begin or not to begin题目大意:有1个红球和k个黑球,问先手的优势大还是后手优势大或者两个相同题目思路:多模拟几组情况就可以推出来情况了,奇数概率相同,否则概率相同#include <map>#include <set>#include <cmath>#include <vector>#include <cstdio>#include <cstring>原创 2017-09-15 21:38:57 · 293 阅读 · 0 评论 -
hdoj 5976 Detachment
题目链接:Detachment题目大意:给你一个n,拆分成不等的一些数,要求乘积最大,算最大乘积题目思路:我们可以先手动拆一下,发现,不管我们怎么拆,我们是在2,3,4,5…这样的顺序上去拆,然后在上面的数进行操作,比如我们假设这个数拆成了2,3,4,然后剩下3个数,那么我们想的是把3全部加到2上面,这样一定最优,但是要求不能重复,如果剩下的数加到2上会有重复,所以我们要不能重复且要贡献最大,不能加原创 2017-09-15 21:25:19 · 263 阅读 · 0 评论 -
Codeforces Round #433 (Div. 2) B. Maxim Buys an Apartment
题目链接:Maxim Buys an Apartment题目大意:给你一个n和k,n代表总共有n个房子排成一排,k代表有k个房子有人居住,但是不知道具体位置,与有人居住的房子相邻并且这个房子是空的,这个房子就是ok的,问最少和最多有多少个房子是ok的题目思路:最少就是前面的全部按着,只有1个房子是空的(没满的情况下),最多就是按照一个有人居住的房子在中间,左右两边都是空的,这样是最大利用的,然后模拟原创 2017-09-07 20:22:18 · 315 阅读 · 0 评论 -
hdoj 6050(2017 Multi-University Training Contest - Team 2) Funny Function
题目链接:Funny Function题目大意:给定一个公式,算某项题目思路:暴力打表,然后找规律 然后直接快速幂套板子就好了,记得算逆元(不过这规律一点也不好找。。。。)#include <map>#include <cmath>#include <queue>#include <stack>#include <vector>#include <cstdio>#include原创 2017-08-29 20:27:00 · 294 阅读 · 0 评论 -
hdoj 6154 CaoHaha's staff
题目链接:CaoHaha’s staff题目大意:给你一个面积,要求你用最少的边构成一个多边形,这个多边形的面积大于等于这个面积题目思路:要使面积尽量的大我们要有尽量多的斜边,那么我们可以从斜边正方形的基础上来加边看面积的变化,如当有4条边时,能围成的最大面积为这样的斜边正方形,然后考虑加一条边时的情况黑色斜边变为红边,黄边为增加的边,那么面积就在原来的基础上增加了0.5然后考虑再增加一条边,我们进原创 2017-08-21 17:59:40 · 281 阅读 · 0 评论 -
hdoj 6043(2017 Multi-University Training Contest - Team 1)KazaQ's Socks
题目链接:KazaQ’s Socks题目大意:有n双袜子在一个衣柜,每天要把这n双袜子放在另一个衣柜(我们叫他衣橱)每次从衣柜里面拿出来的袜子都是拿的衣柜里面剩余袜子的最小编号,如果衣橱里面有n-1双袜子了,我们在放第n双袜子之前需要把这n-1双袜子重新放在衣柜里面再把第n双袜子放在衣橱里面,问第k天从衣柜里拿出的袜子的编号题目思路:模拟一下就好了,比如有四双袜子,那么可以发现衣柜里面拿出的编号是:原创 2017-08-03 09:08:31 · 287 阅读 · 0 评论 -
hdoj 6029 Graph Theory
题目链接:Graph Theory题目大意:给你一个n,代表这个图里面有n个点,然后点的顺序按照1-n排序,然后给出n-1个价值,代表2到n这n-1点的价值,如果为1,代表将这个点和前面所有出现的点(即1-(i-1))全部连起来,如果价值为2,不做任何操作,问是不是存在一个边集,这个边集中的每个点只被一条边访问,而且这个边集包含所有的点,问是否存在这样的边集题目思路:由于规则固定,所以图固定了。但是原创 2017-05-08 23:05:32 · 403 阅读 · 0 评论 -
蓝桥杯 最大最小公倍数
题目链接:最大最小公倍数题目大意:给你一个N,然后从这1~N这N个数中取出任意三个数(可以重复),求三个数的最小公倍数,然后求任意三个数中能取到的最大值题目思路:看样例,猜题意,9的答案是9,8,7,然后成功猜出来奇数是直接n*(n-1)*(n-2),因为n和n-2都是奇数,公约数是1,n*(n-2)也是奇数,跟n-1的公约数也是1,所以答案就是n*(n-1)*(n-2),然后打个n^3的原创 2017-04-19 21:25:29 · 524 阅读 · 0 评论 -
蓝桥杯 矩阵翻硬币
题目链接:矩阵翻硬币题目大意:有一个n*m的全部是正面的硬币矩阵,对每个硬币,对所有合法的i,j实施i*x行j*y列的翻转,xy是硬币的位置,问所有的硬币翻转一次之后,现在场上有多少个硬币是反面题目思路:我们可以打一下表,模拟一下翻转的情况,找有多少硬币翻转次数是奇数次就可以了,我们可以知道答案是一个sqrt(n)*sqrt(m),sqrt向下取整,由于是大数,我们用JAVA大数类就可以了原创 2018-01-06 19:54:02 · 475 阅读 · 0 评论