
2015多校
_zidaoziyan
这个作者很懒,什么都没留下…
展开
-
HDU5317.RGCDQ
题解:注意到 F 值很小,用筛法预处理出所有的 F 值,然后再预处理出 f[i][j],表示前 i 个 F 值中有多少个 j。 对于每个询问直接暴力查询区间有多少个 1 2 3 4 5 6 7 即可。#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#i原创 2015-07-28 20:05:57 · 743 阅读 · 0 评论 -
HDU 5294 .Tricks Device(多校第七题)
最短路加最小割 最小割等于最大流#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#include <vector>#include <cstdio>#include <cctype>#include <cstring>#include <cst原创 2015-07-22 19:35:59 · 350 阅读 · 0 评论 -
HDU5323.Solve this interesting problem
首先如果给出[L,R],那么它一定是由[2*L-R-1,R]或者[2*L-R-2,R]或者 [L,2*R-L]或者[L,2*R-L+1]变化而来 其次考虑他的剪枝,设len=R-L+1,如果L#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#incl原创 2015-08-03 12:45:50 · 353 阅读 · 0 评论 -
HDU5289.Assignment(多校第二题)
题意:求有多少个区间满足题目要求 思路一: 以i为起点的区间满足题意的有多少个 st+二分#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#include <vector>#include <cstdio>#include <cctype>#原创 2015-07-22 19:34:03 · 499 阅读 · 0 评论 -
HDU5288.OO’s Sequence(多校第一题)
枚举每一个i,用筛选法算出每一个a[i]满足的足有端点,记为l,r, 则对于这个端点有(i-l+1)*(r-i+1)个数满足题目所要求的 以此类推#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#include <vector>#include <原创 2015-07-22 19:30:51 · 429 阅读 · 0 评论 -
HDU5389.Zero Escape
思路: 发现一个数的数字根只和它mod 9之后的值有关,只要类似背包就能完成人员分配的计算。 首先可以求出其全部的数%9之后的值, 如果(door1+door2)%9==sum%9的话,证明这些数可以分别存到两个不同的门中,否则的话输出0或1(这种情况比较简单,这里就不一一阐述了) 当能正好被分配到两个门中时,考虑如果sum==door&&sum==door2时,应该给答案加1,因为dp[n原创 2015-08-13 21:35:29 · 410 阅读 · 0 评论 -
HDU5379.Mahjong tree
题意: 在一棵树上给所有点标号,要求任意一个子树里的点编号连续,每一个点的儿子编号连续。有几种方法 思路: 首先,n=1的时候可直接输出答案 考虑n大于1的情况 首先可以明确地一点是一个根的非叶子结点数目一定不大于2,假设非叶子节点的数目大于等于3,记为[x1,y1],[x2,y2],[x3,y3], 每棵子树都已经放好,因为每一个点的儿子编号连续,设x1#pragma comment(原创 2015-08-13 19:22:46 · 405 阅读 · 0 评论 -
HDU5335.Walk Out
如果我们规定这个人只能向下走或者向右走的话,问题会变的简单,二进制长度为n-m+1,然后我们可以一步一步求它每一步走的情况。首先他的二进制第一位一定要为0。 在第一位为0之后一定只会向下或者向右走到终点,因为中间如果向上走或者向左走的话,二进制的位数会增加,大小肯定增大,所以问题的关键是找出从原点一直走0的位置,中间经过的0的位置距离终点最短的点,在这之后便只能向下走或者向右走。#include原创 2015-07-30 19:18:36 · 875 阅读 · 0 评论 -
HDU5328.Problem Killer
题解: 首先如果a,b,c是等差数列,且b,c,d也是等差数列,那么a,b,c,d也是等差数列,这个结论等于等比数列也成立,所以只要对于每个i(i+2#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#include <vector>#include原创 2015-07-30 20:02:31 · 425 阅读 · 0 评论 -
HDU5326.Work
签到题,数据也比较小,直接dfs即可。你也可以用你喜欢的任一种方法AC。#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#include <vector>#include <cstdio>#include <cctype>#include <cst原创 2015-07-29 14:33:47 · 367 阅读 · 0 评论 -
HDU 5338. First One(尺取法)
/*采用尺取法将log2(i+j)的值相同的一起算尺取法:反复地推进区间的开头和末尾,来求满足条件的最小区间的方法注意一些细节:1<<i可能超过整数范围,可写成(1LL<<i)*/#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#includ原创 2015-08-10 16:47:40 · 427 阅读 · 0 评论 -
HDU5316.Magician(多校)
题解:注意到本题的子序列实际上可以根据起始数值下标的奇偶性分为四类。对于每一类,如果你熟悉线段树,那么可以看出这个问题是可以进行区间合并的。即如果知道一个区间[L, R]两个子区间 [L,mid], [mid+1,R]的信息,我们可以推出[L,R]的信息。维护四个值,表示起点终点的下标的奇偶性。 线段树由子区间上传信息的时候, 偶数下标开始奇数下标结尾的最大值可以由 左儿子的偶偶+右儿子的奇奇原创 2015-07-29 11:59:08 · 679 阅读 · 0 评论 -
HDU5353.Average(多校第六场)
题意: 有n个人围成一桌,刚开始每个人有a[i]个糖果,每个人能给左边的或者右边的人一个糖果,也可以同时给左右,也可以不给,但是只能给一个 思路: 首先先判断这些糖果能不能平均分配,然后求出每个人一开始的糖果数和平均数的差, 两个人之间只能是你给我或者我给你或者都不给,那么如果确定了1,2两个人之间的关系(可以枚举),那么从第二个人开始,如果第二个人现在的糖果数目小于平均数,那么必定从右边拿原创 2015-08-09 14:20:11 · 462 阅读 · 0 评论 -
HDU5319.Painter
类似于模拟题,两个斜的方向都扫描两遍,绿色的既当做红色,也当做蓝色。#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#include <vector>#include <cstdio>#include <cctype>#include <cstri原创 2015-07-28 20:36:21 · 440 阅读 · 0 评论 -
HDU5340.MZL's simple problem
首先,题目的要求是能查找最大值,删除最小值,插入值 那么我们可以用优先队列或者multiset按从小到大排序,删除的时候只要把第一个元素删除, 最大值的话优先队列比较麻烦一点,需要不停地维护其最大值,而multiset只需要返回它end()的前面一位就行了,(前提非空) 下面见两种写法#include <map>#include <set>#include <stack>#include原创 2015-08-04 21:23:02 · 370 阅读 · 0 评论