自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

neither_nor

alone_wolf

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

原创 BZOJ3114 Uva12546 Lcm Pair Sum

考虑a和b的lcm是n的条件,发现是对于每个质数的幂次,max(a的幂,b的幂)=n的幂然后你会看到m很小,然后考虑枚举每个质数是a的幂次和n相等还是b的幂次和n相等,复杂度T2^n*n然后你就T了,因为T是500的然后你可以用lowbit优化一下变成T2^n,可是没什么卵用,时限两秒还是T了然后你发现每一位是独立的,所以不需要2^n枚举,每位单独算然后乘起来就行了#include

2016-12-30 14:29:09 666

原创 BZOJ4416 [Shoi2013]阶乘字符串

鬼畜题啊……上来看错题,看成子串,n>=6直接无解,n然后就跪了,只好上网找题解,然后看到了一个非常厉害的结论:当n>21的时候无解!好像证明是当n>21的时候C(450,n)然后我们可以f[i]表示要使得状态为i的字符的全排列都出现最少需要前多少个字符然后与处理一下每个位置之后每个字符第一次出现在哪然后对于一个状态i,我们枚举所有这个状态包含的字符x,假设x是最后一个,那

2016-12-29 21:00:23 297

原创 BZOJ3999 [TJOI2015]旅游

水题……链剖然后维护区间最大值,最小值,和区间从左往右走的答案,还有从右往左走的答案即可#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define

2016-12-29 19:21:10 988

原创 BZOJ2111 [ZJOI2010]Perm 排列计数

我们把整个序列看成一棵树,x的左儿子是2x,右儿子是2x+1这样问题就变成了给这棵树标号,儿子的标号必须比父亲大dp即可f[i]表示以i为根的子树,在标号集合已经确定的情况下的标号方案数如果i是叶子,f[i]=1如果i只有1个儿子,f[i]=f[2i]如果i有两个儿子,f[i]=f[2i]*f[2i+1]*C(siz[2i]+siz[2i+1],siz[2i])siz为

2016-12-29 18:36:44 588

原创 BZOJ1488 [HNOI2009]图的同构

我们可以把每条边存在或者不存在看成是黑和白两种颜色然后这个题就充斥着一股ploya定理的气息但是有关边的置换太蛋疼,我们考虑把点的置换对应到边上找找规律,我们发现对于一个点的置换,如果其存在一个循环节大小为x,那么这x个点的边之间会形成x/2个循环节,如果其存在两个循环节大小分别为x和y,那么两个循环节里的点之间的边会形成gcd(x,y)个循环节我们考虑爆搜点置换,每次枚举当前最大

2016-12-29 18:32:40 1094

原创 BZOJ4033 [HAOI2015]树上染色

考虑dpf[i][j]表示以i为根的子树里有j个黑点,他们对答案的最大贡献是多少这个贡献不仅考虑子树内同色的点两两之间的距离,也考虑子树内的点与子树外的点之间的距离和在子树内的部分然后我们枚举x的每个儿子y,再在1~当前的siz[x]和1~当前的siz[y]中枚举分别放多少个黑点,更新dp值,然后讲siz[x]加上siz[y]复杂度n^2,因为相当于枚举了每个点对这个复杂度分析

2016-12-29 14:51:22 883 1

原创 BZOJ3251 树上三角形

如果一些数不能组成三角形,那么排序后一定满足a[i]+a[i+1]这样的话由斐波那契可得在权值是int范围内的情况下如果数的个数超过了40多的话那么一定能组成一个三角形如果少于限定条件的话排序后暴力即可如果用a[i]+a[i+1]#include#include#include#include#include#include#include#include#incl

2016-12-29 10:49:03 238

原创 BZOJ1908 Pku2054 Color a Tree

网上搜BZOJ搜不到题解,搜PKU才能搜到-_-如果不考虑父亲必须比儿子靠前的话,那么染色序列一定是把所有点从大到小排序那么考虑父亲必须比儿子靠前,最大的点一定在其父亲被染后紧接着被染,因为否则我们可以将其与在其父亲后被染的点的染色顺序交换,答案一定更优我们确定了点x一定在点y被染之后紧接着被染,就相当于可以把点x和点y合并,使得点y的儿子都变成x的儿子,并且染x的时间和代价都加上了染

2016-12-28 20:13:44 741

原创 BZOJ快捷键提交 chrome扩展

前段时间做了做TC,TC上提交什么玩意的都是有快捷键的……然后回来做BZ的时候就特别想用快捷键提交,然而BZ并没有这个功能-_-正好刚刚安了个屏蔽广告的chrome扩展,感觉chrome扩展这个东西非常的强大,于是就学习了一发,然后写了个扩展,支持在BZOJ和大部分hustoj上用快捷键提交除了在chrome中能使用外,chrome扩展在360浏览器等以chrome为内核的浏览器中也能使用

2016-12-28 07:52:27 1330

原创 BZOJ3786 星系探索

ETT搞上,每条边如果是一条从父到子的边,那么设其权值为儿子节点的权值,如果是一条从子到父的边,那么设其权值为儿子节点的权值的相反数,我们用一个splay来维护整棵树的欧拉序,那么一个节点到根的路径的点权和就等于从根走欧拉序到这个点的边权和linkcut操作就相当于区间平移子树加就相当于把区间里父到子的边加,子到父的边减维护区间和就过了注意w[i]开始可以得0#includ

2016-12-27 11:45:37 1296

原创 BZOJ4730 UOJ#266【清华集训2016】Alice和Bob又在玩游戏

同BZOJ4134-_-#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 200010#define MAXM 400001

2016-12-26 15:50:45 987

原创 BZOJ2725 [Violet 6]故乡的梦

想日这道题都得有一年了……今天发现yh都把这题日了,我才终于来日他这题题解网上都烂大街了,我也懒得写……不过这题其实不需要线段树的先任意搞一条S到T的最短路,然后对于不在最短路上的一条边,x->y,假设我们要强制经过这条边的话,最优情况一定是S走最短路到x,再x->y,再y走最短路到T那么S走最短路到x一定是先走一段S到T的最短路,然后离开最短路,y走到T一定是先走一段别的路,然后进入

2016-12-21 15:34:43 1549

原创 BZOJ4724 [POI2017]Podzielno

先猜结论:一个B进制数+B-1后各位数字之和模B-1意义下不变证明:+B相当于在次低位+1,-1相当于在最低位-1,如果某一位加一,如果进位,则下一位会加一,这一位会减去B-1,所以对各位数字之和模B-1意义下的影响是+1如果某一位减一,如果退位,则下一位会减一,这一位会加上B-1,所以对各位数字之和模B-1意义下的影响是-1所以原数+B-1后各位数字之和在模B-1意义下不变那

2016-12-20 20:44:18 869

原创 BZOJ4346 [POI2016]Nadajniki

我们考虑树形dp,对每个子树求出覆盖这个子树需要的最小代价首先发现一个点上放多于2个路由器没卵子意义那么我们考虑一下状态,我们需要用f[i][j][k][l]表示以i为根的子树,i这个点放了j个路由器,i的儿子里有j个路由器(如果大于2个则视为2个),i的父亲至少需要有l个路由器的最小代价,然后挨个子树大力转移即可,不过这样的话复杂度是n*(3^6)的,爆炸了……然后我们就需要压缩一下

2016-12-19 15:20:48 488

原创 BZOJ4345 [POI2016]Korale

在病房里日题真是一种独特的体验……首先考虑求第一问,我们先把所有元素排序,我们用优先队列维护选数的集合,对每个集合维护集合里的元素的和v和最后一个元素(即最大的元素)lst,初始的时候我们把只包含最小元素的集合推入队列,那么我们取出一个队头元素之后,如果队头的lst不是最大的元素,我们只需要再向队列里推入当前集合插入lst+1后的集合以及先删除lst再插入lst+1的集合。如果lst是最大元素

2016-12-17 21:30:49 1162 2

原创 BZOJ4723 [POI2017]Flappy Bird

挺水的题……在手机上写完了1A了……我们挨个障碍物考虑,记录一下当前坐标,因为他要求点的次数尽量少,那么我们算出走到下一个障碍物最少要点多少下,然后判断是否大于当前剩余的可以点的次数即可那么我们只需要维护当前还能点多少次即可,从一个障碍物走到另一个障碍物,可以点的数量就会增加两个障碍物的距离,另外,我们还要求不能撞到上边界,所以每到一个障碍物,剩余次数就和再点多少次碰顶取min即可#i

2016-12-13 16:23:02 530

原创 BZOJ4347 [POI2016]Nim z utrudnieniem

这题。挺厉害我们可以用f[i][j][k]表示前i个数,选的个数模d余j,异或和为k的方案数我们要求的是f[n][0][s],s为所有数的异或和,另外在n是d的倍数的时候要减一可是这样直接转移的话显然会超时我们把所有权重从小到大排序,一个数和所有比他小的数所产生的异或和一定不会超过这个数的两倍所以复杂度就变成了O(dm)#include#include#include

2016-12-12 21:28:21 642 1

原创 BZOJ1954 Pku3764 The xor-longest Path

傻逼题……树上任意两两点间路径异或和等于两点到根路径的异或和的异或值把所有点到根的异或和插到trie里然后查即可#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namesp

2016-12-12 19:03:15 660

原创 UOJ#218 【UNR #1】火车管理

遥想当年,xuruifan想用线段树套可持久化treap日这题,结果最后也只得了80分……为了不步xuruifan的后尘,我orz了题解我们可以用一个线段树来维护当前的所有栈顶元素,支持区间覆盖和区间求和然后我们维护一个主席树,维护每个版本的时候的栈顶元素,并维护每个栈顶元素被加入是在哪个版本,这样在区间压栈的时候我们可以区间赋值,在单点弹栈的时候我们可以先查到栈顶元素被加入的版本,然

2016-12-09 11:15:07 831 4

原创 BZOJ4134 ljw和lzr的hack比赛

今年清华集训D1T1-_-首先我们可以想到n^2的算法,我们对每个点记录一个sg[x],代表以x为根的子树的游戏的sg函数值,然后我们再对每个点记录rem[x],代表删掉从x到根的路径后剩余的游戏的sg值的异或和。容易发现在我们计算x的sg值的时候,x的rem是他所有儿子的sg值的异或和,而对于x的每一个儿子y,y的子树里的所有rem值都会异或rem[x]^sg[y]然后我们求第一个不

2016-12-09 08:59:27 1192

空空如也

空空如也

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

TA关注的人

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