自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Neutralzz的博客

我有自己的梦想和追求!

  • 博客(32)
  • 收藏
  • 关注

转载 HDU 5729 Rigid Frameworks (连通二分图计数DP)

参考1:http://blog.csdn.net/dpppbr/article/details/51972196参考2:https://www.johannesbader.ch/2013/09/project-euler-problem-434-rigid-graphs/[code]:#include#include#includeusing namespace std;ty

2016-07-28 10:39:34 489

原创 HDU 5735 Born Slippy (分块+树上可持久化)

官方博客讲的很清楚:点击打开链接在这里贴一下做树上可持久化的代码仅供参考。[code]:#include#include#includeusing namespace std;typedef long long LL;const int maxn = (1<<16)+5;const int sqrn = (1<<8)+5;const int MOD = 1e9+7;

2016-07-27 14:56:43 368

原创 HDU 5758 Explorer Bo (树形DP)

题目:给你一棵树,用最少的链去覆盖这棵树,求链的最小总长度。解析:num为叶子节点数,显然链数是(num+1)/2。如果是偶数,就是叶子节点到叶子节点,如果是奇数,那么就是在奇数-1情况下的树下加一条叶子到其祖先的链。偶数的情况:从一个非叶子节点出发,如果其子节点的叶子节点是偶数,则ans+=2,如果是奇数,ans+=1。奇数的情况:枚举一下那条单链所在的子树。设dp[u][i][

2016-07-27 14:46:54 1010

原创 Hdu 5352 MZL's City (最小费用最大流)

解析:源点S与所有的1查询连边,容量为K,所有的查询与相关的节点连边,容量为1,图中节点1~n与T连边,容量为1,解即是最大流量。通过控制费用,越早的查询费用越大,从而获得最小字典序。[code]:#include#include#include#include//#pragma comment(linker, "/STACK:102400000,102400000")#d

2016-07-13 21:13:31 427

原创 Hdu 5351 MZL's Border (找规律+Java高精度)

解析:找到最大的i是|fib_i| [code]:import java.util.*;import java.math.*;import java.io.*;public class Main{ static BigInteger m,f[] = new BigInteger[1001],mod = BigInteger.valueOf(258280327); static

2016-07-13 21:09:23 268

原创 Hdu 5349 MZL's simple problem (水题)

解析:用一个multiset维护一下就好。[code]:#include#include#include#include#include#include#include#include#includeusing namespace std;int n;multiset ms;multiset::iterator it;void init(){ ms.

2016-07-13 21:04:33 253

原创 Hdu 5348 MZL's endless loop (构造)

解析:每找到一个单个的环,将其指定顺序后从图中出,最后会得到一个森林,对于每一棵树,从根节点开始根据出入大小指定方向即可。注意实现细节![code]:#include#include#include#include#includeusing namespace std;typedef pair P;const int maxn = 1e5+5;const int ma

2016-07-13 21:02:32 267

原创 Hdu 5347 MZL's chemistry (打表)

[code]:#include#include#includeusing namespace std;double a[100] = {0,1312,2372.3,520.2,932,800.6,1086.5,1402.3,1313.9,1681,2080.7,495.8,737.7,577.5,786.5,1011.8,999.6,1251.2,

2016-07-13 20:59:13 237

原创 Hdu 5344 MZL's xor (杂)

解析:i!=j时(a[i]+a[j])^(a[j]+a[i]) = 0.因此只需统计2*a[i]即可。[code]:#includeusing namespace std;typedef long long LL;LL n,m,z,l;int main(){ int i,j,cas; LL value,ans; scanf("%d",&cas);

2016-07-13 20:57:57 207

原创 Hdu 5338 ZZX and Permutations(线段树+贪心)

解析:首先用set维护被Cirlcle Notation切开的不连续的各个段。然后从i开始,(p[i]为i的位置)找到其在set中的左右端点,左边的最大值为value_l,右边p[i]+1的值为value_r。若value_l>value_r,则{p[value_l],p[value_l]+1,...,p[i] }为一个CircleNotation,并再用set维护剩下的段。若

2016-07-13 20:42:45 271

原创 Hdu 5336 XYZ and Drops(模拟)

解析:一秒一秒的来处理就好。[code]:#include#include#include#include#includeusing namespace std;const int maxn = 105;struct Node{ int x,y,sz;}a[maxn];struct Drop{ int x,y,dir,time; Drop(in

2016-07-13 20:31:20 414

原创 Hdu 5334 Virtual Participation (构造)

解析:首先找到第一个n使得n*(n+1)/2>=k,差值为x。然后看下面一个例子:28 = 1 2 3 4 5 6 727 = 1 1 3 4 5 6 726 = 1 1 3 3 4 5 625 = 1 1 1 4 5 6 724 = 1 1 1 4 4 6 723 = 1 1 1 4 4 6 622 = 1 1 1 4 4 4 721 = 1 2 3 4

2016-07-13 20:28:50 337

原创 Hdu 5328 Problem Killer (尺取)

解析:处理出公差和公比序列,然后尺取找出最大覆盖范围即可。[code]:#include#include#include#include#include#includeusing namespace std;const int maxn = 1e4+5;const double eps = 1e-6;struct Nod{ int b,next; vo

2016-07-13 20:13:05 260

原创 Hdu 5327 Olympiad (预处理)

水题,预处理一下就好[code]:#include#include#include#define lson l,mid,rt<<1#define rson mid+1,r,rt<<1|1using namespace std;const int maxn = 1e5+5;int sum[maxn];bool check(int x){ int i,c[10];

2016-07-13 20:09:54 231

原创 Hdu 5326 Work(超水的树形DP)

[code]:#include#include#include#include#includeusing namespace std;const int maxn = 105;int n,m,num[maxn],deg[maxn];vector G[maxn];void init(){ int i; for(i = 1;i <= n;i++) G[i].

2016-07-10 20:38:11 260

原创 Hdu 5325 Crazy Bobo (拓扑排序)

解析:对于原树一条边(a,b),令w[a] [code]:#include#include#include#include#includeusing namespace std;const int maxn = 5e5+5;struct Nod{ int b,next; void init(int b,int next){ this->

2016-07-10 20:36:33 305

原创 Hdu 5324 Boring Class (cdq分治)

解析:因为是最小字典序,所以从右往左DP。dp[i] = max(dp[j]+1) i =L[j],R[i]因为这是三维上的问题,自然的就能想到cdq分治了。在一个区间[l,r]内,先对[mid+1,r]递归,按L[]排序后建立一个对R的线段树,来计算[mid+1,r]的影响,再递归[l,r]。这里说的比较笼统,不过熟悉cdq分治的同学应该能立马明白我说的什么吧![code]:

2016-07-10 20:33:45 367

原创 Hdu 5323 Solve this interesting problem(搜索)

解析:注意L/(R-L+1) [code]:#include#include#include#include#includeusing namespace std;typedef long long LL;const LL INF = 0x3f3f3f3f3f3f3f3f;LL l,r,ans;void dfs(LL l,LL r,int num){//print

2016-07-10 20:20:16 251

原创 Hdu 5319 Painter (模拟)

直接贪心去模拟就完,最坑的是那不是n*n的矩阵,m没告诉你,自己求。[code]:#include#include#include#include#includeusing namespace std;int n,m,a[55][55];char s[55][55];int dx[4] = {0,1,1,1};int dy[4] = {0,1,-1,1};void

2016-07-10 20:14:37 339

原创 Hdu 5318 The Goddess Of The Moon (dp+矩阵快速幂)

解析:dp[i][j]表示前 i 个数,以 第 j 个数结尾的方案数。因为每一层的转移都是相同的,所以处理出一个转移矩阵,通过快速幂即可快速求得结果。[code]:#include#include#include#include#includeusing namespace std;typedef long long LL;const LL INF = 0x3f3f3f3f

2016-07-10 20:09:59 309

原创 Hdu 5317 RGCDQ (dp+预处理)

解析:F(x)的最大值是7,直接通过dp统计各个值的前缀和即可。[code]:#include#include#include#include#includeusing namespace std;const int maxn = 1e6+5;int dp[maxn][9];int divide(int n){ int i,j,ans = 0; for

2016-07-10 20:06:29 229

原创 Hdu 5316 Magician (线段树区间合并)

解析:关键是处理奇偶的问题。正如官方题解所说,本题的子序列实际上可以根据起始数值下标的奇偶性分为四类。对于每一类,如果你熟悉线段树,那么可以看出这个问题是可以进行区间合并的。即如果知道一个区间[L, R]两个子区间 [L,mid], [mid+1,R]的信息,我们可以推出[L,R][L,R]的信息。维护四个值,表示起点终点的下标的奇偶性。[code]:#include#i

2016-07-10 20:02:19 255

原创 HDU 5308 I Wanna Become A 24-Point Master (暴力枚举+构造)

题意:let A be an array with 2n−1 numbers and at firsrt Ai=n (1≤i≤n). You need to print n−1 lines and the ith line contains one integer a, one char b and then one integer c, where 1≤a,c<n+i and b is "+

2016-07-09 09:34:10 356

转载 HDU 5302 Connect the Graph (构造)

原题解链接:http://www.cnblogs.com/shjwudp/p/4719279.html[code]:#include#include#include#includeusing namespace std;typedef pair P;int w[3],b[3],n;vector G[2];void init(){ G[0].clear();

2016-07-09 09:20:24 229

原创 HDU 5301 Buildings (乱搞)

解析:首先使得矩阵的n[code]:include#include#include#include#includeusing namespace std;int n,m,x,y;int main(){ int i,j,cas,u,v; while(~scanf("%d%d%d%d",&n,&m,&x,&y)){ if(n > m){

2016-07-09 09:14:58 226

原创 Codeforces 689E Mike and Geometry Problem(离散化+懒标记)

题意:给出n个线段[li,ri],求任意k个线段所共同覆盖的点的总和。解析:对于每一条线段,区间[li,ri]加一,如果一个位置的值为m,那么最后的结果ans += C(m,k);如果只是离散化端点的话,没法求得中间部分被覆盖的点,所以在离散化时保证相邻两点中间留出一个1,对于中间的点,求出当前的值*(相邻两点实际距离-1)即是结果。[code]:#include#inclu

2016-07-09 09:03:10 428

原创 Codeforces 689D Friends and Subsequences(RMQ+二分)

题意:大小为n的序列a和b中,求(l,r)的个数,使得max(a[l..r]) = min(b[l...r])。解析:在固定l后,随着r的增加,max(a[l..r]) - min(b[l...r])是不减的。所以可以通过二分求得max(a[l..r]) = min(b[l...r])的两个边界。[code]:#include#include#include#includeu

2016-07-09 08:52:54 635

原创 HDU 5297 Y sequencew(容斥+收敛迭代)

题目:从1开始的无限长正整数序列(1,2,3,4,5,...),剖去所有可以写成a^b的数(2解析:首先对于每一个r处理出对应容斥的数字,用vector记录下来以降低复杂度。开始的时候同样像的是二分,超时……看了一篇题解后,考虑序列的性质,向前迭代时是不断收敛的。(具体看代码)[code]:#include#include#include#include#include#

2016-07-06 10:25:23 263

原创 HDU 5296 Annoying problem (树状数组+dfs序+倍增)

题意:一颗n节点的带权无向树,一个初始为空的集合S,有两种操作:1 x 如果S中没有x,加入x ;2 x 如果S中存在x,删除x。每次操作完后求出使S集合连通的最小边权和。解析:设root为S集合的LCA。点i的左右时间戳为L[i],R[i],ans为当前的权重和。当前集合S中添加节点x,如果x不在root的子树中,那么ans += dis[x]+dis[root]-2*dis[lca(x

2016-07-06 10:15:30 352

原创 HDU 5293 Tree chain problem(树形DP+树链剖分)

题意:一颗n节点树上有m条链,每条链有权重,求一个链的集合使权重和最大且两两不相交。解析:令dp[i]为以i为根的子树的最大权重和。如果i不在链上,则有dp[i] = sigma(dp[k]) k为i的子节点如果i在某一条链(u,v,w)上,那么dp[i] = w + sigma(dp[k]) k为链上所有节点的子节点。对于该值,我们可以统计统计链上节点的所有子节点dp的和 - 链上节

2016-07-06 09:55:18 394

原创 HDU 5289 Assignment (尺取+Set)

题意:n个数字中取出连续的一组数字使得任意两个差小于k,求方案数。解析:two points,用multiset维护一下区间差值即可。[code]:#include#include#includeusing namespace std;typedef long long LL;const int maxn = 1e5+5;int n,m;LL a[maxn];mul

2016-07-06 08:32:27 250

原创 HDU 5288 OO’s Sequence (数论)

题意:定义一个函数f(l,r) = i的个数使得在区间[l,r]中不存在a[i]%a[j]=0。∑i=1..n∑j=i..n  f(i,j) mod (10^9+7)。解析:通过枚举因子,从前到后再从后到前求出能包含i的区间的左右端点的边界,即可。[code]:#include#include#includeusing namespace std;typedef long l

2016-07-06 08:27:20 194

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除