自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 BZOJ 2115: [Wc2011] Xor

题目大意:给定一个无向图,每条边上有边权,求一条1到n的路径,使路径上权值异或和最大首先一条路径的异或和可以化为一条1到n的简单路径和一些简单环的异或和 先DFS求出任意一条1到n的简单路径以及图中所有线性无关的环 然后利用这些环和1-n的简单路径凑出最大的异或和就可以了#include<bits/stdc++.h>using namespace std;const int N=10001

2016-10-30 21:40:38 287

原创 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest

B. 题意: 有一个序列长度为n的数组,每次你可以选择两个数的下标,电脑会告诉你两个数的大小关系,判断次数不超过ceil(3*n/2)-2思路: 交互题,我们可以通过观察给出的次数观察出结论,两个数可以比较三次,所以我们可以先把1和2的大小关系加入,然后每次加入两个数,先确定这两个数的大小关系,然后大的与前面大的比较,小的与前面小的比较 C. 题意: 有n个城市,m条

2016-10-26 15:00:23 801

原创 Hdu 5765 Bonds(高维前缀和)

题意: 给一个n个点的无向连通图,求每条边被多少个极小割边集包括 (n<=20,m<=n*(n-1)/2)思路: 极小边->分成两个联通块1.先求出与每个状态相邻的点的状态集 2.bfs判断哪些点可以组成一个联通块 3.高维前缀和#include<bits/stdc++.h>using namespace std;const int N=21;int ans[1<<21],sta

2016-10-24 21:02:24 829

原创 Kattis yatp(斜率优化+树分治)

题意: 2e5个点的无根树,每个点有点权,每条边有边权,定义一条简单路径的花费=这条路径两个端点点权的乘积+边权和, (一条简单路径可以包含一个点,这样花费是该点权的平方),最后问从每个点出发的最小花费思路: ans[i]=min(a[i]*a[j]+d[i]+d[j]) ->y=-a[i]*x+ans[i] 有三个点X,Y,Z,现在要求X的答案 假设Y比Z更优, 则X*Y+

2016-10-24 19:35:32 470

原创 codechef Prime Distance On Tree(树分治+fft)

题意: 给出一棵树,边长度都是1。每次任意取出两个点(u,v),他们之间的长度为素数的概率为多大?思路: 树分治,对于每个根出发记录边的长度出现几次,然后求卷积,用素数表查一下即可添加答案。 时间复杂度:nlognlogn#include<bits/stdc++.h>using namespace std;const int N=5e4+100;struct Edge{ i

2016-10-23 09:14:09 422

原创 spoj 1825 Free tour II(树分治+启发式合并)

题意: 有N个顶点的树,节点间有权值, 节点分为黑点和白点。 找一条最长路径使得 路径上黑点数量不超过K个。思路: 设当前节点x到根的路径上黑色节点数量为deep[x],路径长度为dis[x] 将子节点按照最大deep倒序处理,利用启发式合并使得合并复杂度降为nlogn#include<bits/stdc++.h>template <class T1, class T2>inline

2016-10-22 21:41:25 460

原创 Bzoj 3672 购票(树分治+凸壳维护)

题意:给出一棵有根树(1为根),边有长度。每个点u有三个属性(len[u],p[u],q[u]),每次u可以转移到u的某个祖先节点v(v满足dist(u,v)<=len[u]), 代价为p[u]*dist(u,v)+q[u]。求每个点都转移到1的代价。思路: 树分治+cdq+维护凸壳1.树分治找出重心 2.处理重心到1的路径上的点 3.处理出重心的答案 4.维护len[u]-到重心的

2016-10-22 18:06:14 611

原创 Codeforces Round #377 (Div. 2)(D.E.F)

D.有n天,m科考试,给出每一天可以过哪一科,以及每科需要多少天复习,求最少要多少天考完,或者不可能。(n,m<=1e5)思路: 我们可以进行二分答案,那么可以把每一科最后在那一天考计算出来,我们贪心让最早先结束的先做,最后判断一下答案就可以了。 E.题意: 有n个计算机和m个电脑设配器(只能一对一使用,且电压相同),每次我们可以对电脑设配器的电压降低一半(向上取整) 输出最多有

2016-10-21 21:08:45 369

原创 Tsinsen A1486. 树(树分治+字典树)

传送门:Tsinsen A1486. 树 题意:给你一棵树(n<=1e5),每个点有一个权值和喜欢不喜欢之分,找出一条路径至少包含K个喜欢的点,而且异或和最大 思路: 树分治,同时维护字典树 字典树每个点维护一个喜欢的点数的最大值 时间复杂度:nlogn*30#include<bits/stdc++.h>using namespace std;const int N=1

2016-10-20 21:20:14 487

原创 Codechef Xor Queries(可持久化字典树)

题意: 给定一个初始时为空的整数序列(元素由1开始标号)以及一些询问: 类型0:在数组最后加入数字x 类型1:在区间[L,R]中找到数字y,最大化(x^y) 类型2:删除数组最后k个元素 类型3:在区间[L,R]中,统计小于等于x的元素个数 类型4:在区间[L,R]中,找到第k小的数 (M<=5e5,x<=5e5)#include<cstdio>#inc

2016-10-11 20:38:22 601

原创 Codeforces Round #232 (Div. 1) C. On Changing Tree(树上修改一点x-di*k))

题意: 给出一棵以1为根的树,形式是从节点2开始给出每个节点的父亲节点; 然后是m次操作,操作分为两种,1 v,x,k,表示在以v为根的字数上添加, 添加的法则是看这个节点与v节点的距离为i的话,加上x-i*k; 2 v查询节点v的值。思路一: 树链剖分,每个点保存两个值,一个是x+dep[i]*k,另外一个是k 查询的时候相当于它到根的链上(x+dep[i]k)的和-

2016-10-10 19:13:48 473

原创 10.2弱校题解

B. 题意: 有n(n<=20)个物品,有m(m<=1e5)种捆绑方式,每次捆绑如果现在要买的x个物品中如果有奇数个物品在这种捆绑方式中,那么可以优惠c[i],我们所购买的物品有2^n-1中状态d[i]定义为某种状态总的优惠。 求∑ni=1d[i]2\sum_{i=1}^{n}d[i]^2思路: 将这每个物品看做一个二进制,Sj定义为第j种捆绑方式的二进制状态, 相当于求解

2016-10-05 20:36:48 270

原创 2014-2015 ACM-ICPC, Asia Xian Regional Contest

C.The Problem Needs 3D Arrays题意: 给你一个序列,长度为n(n<=100),从中选出一个子序列, 使得这个子序列的逆序数对/这个子序列的长度最大思路: 对原来序列中的逆序数对之间连接一条边->最大密集子图 代码:http://paste.ubuntu.com/23277982/

2016-10-05 11:07:32 594

原创 Codeforces Round #375 (Div. 2) E. One-Way Reform(有n个点,m条无向边,给每条边定向,使得入度等于出度的点最多)

传送门:Codeforces Round #375 (Div. 2) E. One-Way Reform 题意: 有n个点,m条无向边,给每条边定向,使得入度等于出度 (n<=200,m<=20000) 思路: 猜想:度数为偶数的都是可以的->欧拉回路证明#include<bits/stdc++.h>using namespace std;const int N=210;

2016-10-04 20:26:19 4598

原创 Codeforces Round #375 (Div. 2) F. st-Spanning Tree(给你n个点,m条边,有两个给定的点S,T以及它们在生成树中最大的度数)

传送门:Codeforces Round #375 (Div. 2) F. st-Spanning Tree 题意: 给你n个点,m条边,有两个给定的点S,T以及它们在生成树中最大的度数 求能否构造出一棵树,使得这两个点的度数满足要求 思路: 求出不使用与S,T有关的边构成的联通块 这些联通块与S,T有三种联通情况 1.只与S相连 2.只与T相连 3.

2016-10-04 20:19:29 1102

原创 Hdu 5909 Tree Cutting(fwt优化异或卷积)

传送门:Hdu 5909 Tree Cutting 题意:有一棵n个点的无根树,节点依次编号为1到n,其中节点i的权值为vi, 定义一棵树的价值为它所有点的权值的异或和。 现在对于每个[0,m)的整数k,请统计有多少T的非空连通子树的价值等于k。 思路: 设dp[i][j]表示i的子树里舍弃了j的方案数,转移是个异或卷积的形式,可以用FWT加速计算。 时间复杂度:O(nm

2016-10-02 09:50:12 1583

空空如也

空空如也

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

TA关注的人

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