E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
HYSBZ
【树链剖分】[ZJOI2008][
HYSBZ
/BZOJ1036]树的统计Count
题目链接树链剖分模板题(有树链剖分求LCA)代码#include #include #include #defineINF0x7fffffff usingnamespacestd; #defineMAXN100000 intn,a[MAXN+10],b[MAXN+10]; voidRead(int&x){ charc; while(c=getchar(),c!=EOF) if(c>='0'&&c=
outer_form
·
2016-02-05 16:00
C++
树链剖分
ZJOI
bzoj
【贪心】[ZJOI2008][
HYSBZ
/BZOJ1034]泡泡堂BNB
题目链接分析首先,我们会想到田忌赛马的问题。其实,这道题的做法差不多。对于对方的队员,我们都考虑用我方实力比他强的队员中最弱的那一个和他比赛,否则,安排我方最弱的队员和他比赛,这样就能使我方得分最多。由于总分是一定的,那我们只要使对方得分最多,我方得分就最少了。代码#include #include #include #defineINF0x7fffffff usingnamespacestd;
outer_form
·
2016-02-05 16:00
C++
贪心
ZJOI
bzoj
【模拟】【计算几何】[ZJOI2008][
HYSBZ
/BZOJ1033]杀蚂蚁antbuster
题目链接分析这道题,是一道十分优(e)秀(xin)的模拟题。有一些注意事项:一边看题一边写,不要把题目读错了一切活动都要严格按照这个顺序来,仔细理解题目所给的意思。注意蚂蚁移动的顺序。所有炮塔是同时攻击的。在模拟中掺杂了计算几何。知道了这些,写不写得出来,就看你的实(ren)力(pin)了。代码#include #include #include #include #include #includ
outer_form
·
2016-02-05 16:00
游戏
C++
模拟
计算几何
ZJOI
HYSBZ
1269文本编辑器 splay
比较基本的操作。#include #include #include #include #include #include #include #include #defineINF99999999 #definell__int64 #definelsonl,m,rtr) return; intm=(l+r)/2; Newnode(rt,pa,a[m]); build(
sweat123
·
2016-02-04 15:00
HYSBZ
1269文本编辑器 splay
比较基本的操作。#include #include #include #include #include #include #include #include #defineINF99999999 #definell__int64 #definelsonl,m,rtr) return; intm=(l+r)/2; Newnode(rt,pa,a[m]); build(
sweat123
·
2016-02-04 15:00
【误差估计】[HNOI2008][
HYSBZ
/BZOJ1011]遥远的行星
题目链接分析数值较小时暴力,较大时,分母取平均值即可代码#include #include #include usingnamespacestd; #defineMAXM20 intn,m,k,cir,ans; structmatrix{ inta[MAXM+1][MAXM+1]; matrix(intn){ memset(a,0,sizeofa); for(inti=0;i='0'&&c='0'
outer_form
·
2016-02-03 23:00
C++
数论
hnoi
bzoj
【DP+斜率优化】[HNOI2008][
HYSBZ
/BZOJ1010]玩具装箱toy
题目链接分析我们很容易想到DP,并且得到状态转移方程式(f为费用,sum为C数组的前缀和)fi=min(fj+sumi−sumj+i−j−1−L)2直接做肯定超时,考虑优化。令j,k为i之前任意两个决策点,j #include #include usingnamespacestd; #defineMAXN50000 #defineS(i)sum[i]+i-1-l inta[MAXN+10],n,l
outer_form
·
2016-02-03 23:00
C++
dp
斜率优化
hnoi
bzoj
【DP+矩阵优化】[HNOI2008][
HYSBZ
/BZOJ1009]GT考试
题目链接分析令fi,j表示匹配计算到准考证第i位,后缀最大可以匹配不吉利数字的前j位fi,j=∑kA1....Aj是A1....Akb可以匹配的最大前缀fi−1,k∗cntb(0≤b≤9,cntb为使A1....Aj是A1....Akb可以匹配的最大前缀的b的数量)注:空串是任何字符串的字串。根据这个递推公式,即可计算出答案,但是直接做显然会超时。用矩阵快速幂进行优化即可。代码#include #
outer_form
·
2016-02-03 23:00
C++
dp
矩阵
hnoi
bzoj
【组合数学】[HNOI2008][
HYSBZ
/BZOJ1008]越狱
题目链接分析题目问的是可能越狱的状态数状态数总的状态数-不可能越狱的状态数=可能越狱的状态数。每个人可能信仰m种宗教的任何一种,所以一共有mn种状态不可能越狱的状态:第i(i>1)个人不能和第i-1个人信仰一样的宗教,所以只有m-1种选择,有m∗(m−1)n−1种状态ans=mn−m∗(m−1)n−1用快速幂计算即可。代码#include #defineMOD100003 intm; longlo
wangyaninglm
·
2016-02-03 22:00
C++
组合数学
bzoj
hnoi
【Burnside定理/置换】[HNOI2008][
HYSBZ
/BZOJ1004]Cards
写在前面如果你不知道知道置换,或者想要一种更快的方法,请前往【组合数学】[HNOI2008][
HYSBZ
/BZOJ1004]Cards.题目链接分析根据Burnside定理,用D(aj)表示在置换aj下不变的元素的个数
outer_form
·
2016-02-02 23:00
C++
数论
置换
bzoj
hnoi
【Prufer数列/组合数学】[HNOI2008][
HYSBZ
/BZOJ1005]明明的烦恼
题目链接分析Prufer数列生成Prufer数列由一棵树得到它的PruferSequence总共需要n-2步,每一步都在当前的树中寻找具有最小标号的叶子节点(度为1),将与其相连的点的标号设为PruferSequence的第i个元素,并将此叶子节点从树中删除,直到最后得到一个长度为n-2的PruferSequence和一个只有两个节点的树。所以一个树,只能得到一个唯一的PruferSequence
outer_form
·
2016-02-02 22:00
C++
组合数学
bzoj
prufer数列
hnoi
【计算几何】[HNOI2008][
HYSBZ
/BZOJ1007]水平可见直线
题目链接分析如果两条直线斜率相等,显然,截距较小的那一条无论如何都不可见,删掉它们。我们可以将剩下直线按照斜率的数值从小到大排序。假设第i条直线是可见的,然后,我们从第i+1条开始向后枚举,分别计算这条直线(设为第j条)和第i条直线交点的横坐标,记作xi,j。若xi,k≤xi,j(jyjyk>yjx≤xi,jx>xi,j通过这样,我们可以求出在第i条直线之后可见的直线是那一条。显然,第1条直线是可
outer_form
·
2016-02-02 14:00
C++
算法
计算几何
hnoi
bzoj
【组合数学】[HNOI2008][
HYSBZ
/BZOJ1004]Cards
网上的题解都说用置换,然而我不会,所以,我按照自己的方法写了一份题解。题目链接分析对题目的分析题目说可以使用多种洗牌法,而每种方法可以使用多次然而输入数据保证任意多次洗牌都可用这m种洗牌法中的一种代替说明我们只用考虑仅使用一种洗牌法的情况即可。然后怎么做呢?搜索?No!首先,我们考虑一共有多少种染色的方法。染色时,我们从n(n=Sr+Sb+Sg)张牌中选Sr张染成红色,再从剩下的牌中选Sb张染成蓝
outer_form
·
2016-02-02 13:00
C++
算法
组合数学
bzoj
hnoi
【高斯消元】【图论】[Wc2011][
HYSBZ
/BZOJ2155]Xor
题目大意找1到n的路径中异或和最大的路径。分析首先,我们考虑这样一个问题:先看另一道题N个点M条边的边带权的无向图,求一个回路使XOR和最大(回路中的路径可以走多次)。另一道题的分析有这样一个结论(从这里到证明结束的所说回路只能走一次)两个回路的和仍是回路(‘和’指‘异或和’/‘对称差’)一个无向连通图G中有且仅有M-N+1个独立回路。那什么是独立的回路呢,就是一个不能由其他的回路通过异或得到的回
outer_form
·
2016-01-31 16:00
C++
图论
wc
高斯消元
bzoj
HYSBZ
2243 染色 (树链剖分)
HYSBZ
2243染色题目链接树链剖分,关键在于线段树的维护,对于每一个结点要记录下最左边和最右边的颜色。合并的时候。
phlsheji
·
2016-01-30 17:00
【高斯消元解异或方程组】[CQOI2014][
HYSBZ
/BZOJ3503]和谐矩阵
题目分析:一个元素只可能被它上下左右即自己影响,设mat[i][j]为当且元素的值。那么mat[i][j]^mat[i+1][j]^mat[i][j+1]^mat[i-1][j]^mat[i][j-1]=0所以我们可以据此列出m*n个方程,根据高斯消元求解即可。但是,此题答案显然不唯一,如何确定答案呢?从最后一行开始,我们假设这一行有cnt个元素系数不唯一,那我们将前面cnt-1个视为自由元,赋值
outer_form
·
2016-01-30 11:00
C++
高斯消元
异或方程组
CQOI
bzoj
【莫比乌斯反演】[
HYSBZ
/BZOJ2693]jzptab
题目大意就是求∑ni=1∑mj=1lcm(i,j),但是有多组输入数据.如果之前做过【莫比乌斯反演】[
HYSBZ
\BZOJ2154]Crash的数字表格,就会发现,对于每一个询问,有O(n)的做法,但显然不够快
outer_form
·
2016-01-27 17:00
C++
数论
bzoj
莫比乌斯反演
HYSBZ
【莫比乌斯反演】[
HYSBZ
\BZOJ2154]Crash的数字表格
题目题目大意就是求∑ni=1∑mj=1lcm(i,j).分析:ans=∑i=1n∑j=1mlcm(i,j)=∑i=1n∑j=1mi∗jgcd(i,j)枚举d=gcd(i,j),令f(n,m,k)=∑1 #include usingnamespacestd; #defineMAXN10000000 #defineMOD20101009 #defineSum(x,y)(1ll*x*(x+1)/2%MO
outer_form
·
2016-01-27 11:00
C++
数论
gcd
bzoj
莫比乌斯反演
[
HYSBZ
\BZOJ2818][CQBZOJ2525]Gcd(最大公因数)
题目参见这篇blog,将m,n视为相等的即可。#include #include usingnamespacestd; #defineMAXN10000000 intmu[MAXN+10],p[MAXN+10],pcnt,n,sum[MAXN+10]; longlongans; boolf[MAXN+10]; voidRead(int&x){ charc; while(c=getchar(),c!
outer_form
·
2016-01-27 09:00
C++
数论
gcd
bzoj
莫比乌斯反演
【莫比乌斯反演】[
HYSBZ
/BZOJ2301]Problem b
题目大意就是求在af(d)=∑i|dμ(di)F(d)=∑i|dμ(di)⌊ni⌋⌊mi⌋当i=1时,f(1)=∑min(n,m)d=1μ(d)⌊n⌋⌊m⌋。由于⌊ni⌋的取值最多只有2n−−√个(这个很容易证明:在nsqrt(n)+1 #include usingnamespacestd; #defineMAXN50000 inta,b,c,d,k,p[MAXN+10],pcnt,mu[MAXN
wangyaninglm
·
2016-01-26 22:00
C++
数论
bzoj
莫比乌斯反演
HYSBZ
【矩阵】[HNOI2011][
HYSBZ
/BZOJ2326][CQBZOJ2831]数学作业
题目分析:另f[n]为Concatenate(1..N)ModM的值,那么f[n]=(f[n-1]*10^length[n]+n)%MOD。所以[f[n]n1]=[f[n−1]n1]∗⎡⎣⎢111011001⎤⎦⎥根据数字的长度分段做矩阵快速幂即可。#include #include #include usingnamespacestd; #defineMAXMT3 #defineMODm typ
outer_form
·
2016-01-25 23:00
C++
矩阵
bzoj
hnoi
HYSBZ
【费用流】[BZOJ1070]/[
HYSBZ
1070]修车
题目分析:将一个技术人员拆成n个点,分别和车连边,第j个技术人员拆成的第k个点修理第i辆车的费用为k*tm[i][j].当一辆车是这个技术人员修理的倒数第k辆车时,它对等待时间的总数贡的献为k*tm[i][j].最后,将总数/n即可.#include #include #include #include #defineMAXN70 #defineMAXM15 #defineINF0x7f7f7f7
outer_form
·
2016-01-05 22:00
C++
费用流
【费用流】[BZOJ1061]/[
HYSBZ
1061]志愿者招募
题目分析:建图的方法还是比较难想。首先,计算两个相邻时刻的差分,若a[i]a[i-1],就从源点向i连边,容量为a[i]-a[i-1]请联系差分数组理解。然后,对于志愿者,连s->(t+1),容量为+∞,费用为c。最后,由于志愿者可以多不能少,连(i+1)->i,容量为+∞。跑费用流算出费用即可。#include #include #include #include #defineMAXN1000
outer_form
·
2016-01-05 22:00
C++
费用流
HYSBZ
- 1036 树的统计
思路:这是经典的树链剖分,有三个操作。1.两点路径中的最大点权;2.两点路径中的点权和;3.更改某个点的权值;如果不用数据结构维护的话,直接搜带来的就是时间消耗太大,主要是因为搜的过程中做了很多无用功,不够直接的找到目标点和线段。树剖就是先按照儿子节点数的节点多少进行划分险段,线段不会相交,树上两个点的路径必然是通过它们的LCA的。我们可以通过线段往上找,知道两个点在同一个线段中,这样我们就可以成
KIJamesQi
·
2015-12-12 16:00
数据结构
树链剖分
HYSBZ
1036 树的统计Count
树链剖分看了半个星期,感觉自己可以上题了轻重链划分倒是一下就看懂了,两遍dfs的剖分应该都卡不住(刚开始以为是子树中最深的那个为重链的我也是图样)(其实是子树结点更多的那个)但是卡在了树上的查询上,怎么也理解不了怎么做到不重不漏,感觉总是有一个迷の情况会多询问一个节点或少询问一个节点终于有一天感觉自己不能这样想下去了(然后拿出了草稿纸),在纸上自己推了一发,然后发现了树剖的循环不变式!(大雾就是每
a1s4z5
·
2015-11-19 15:00
HYSBZ
2243(树链剖分)
题目连接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28982#problem/D 题意:给定一棵有n个节点的无根树及点权和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段); 分析:树链剖分将信息映射到线段树后,线段
·
2015-11-13 07:20
树
HYSBZ
1036(树链剖分)
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28982#problem/E 题意:给定一棵树及树上的点权,要求三种操作: 1)CHANGE u t : 把结点u的权值改为t。 2)QMAX u v: 询问从点u到点v的路径上的节点的最大权值。 3)QSUM u v: 询问从点u到点v的路径上的节点的权
·
2015-11-13 07:18
树
HYSBZ
2038 小Z的袜子(莫队算法)
今天学了一下传说中的解决离线询问不修改的一种算法。题目的意思非常简单,就是询问在一个[L,R]区间里的取两个物品,然后这两个物品颜色相同的概率。其实就是对于每种颜色i,这个区间里对应的个数cnt[i],那么答案就应该是 sigma (cnt[i]*cnt[i-1]) / (R-L+1)*(R-L). 问题是要是每次询问我都遍历一遍的话必T无疑。这个时候莫队算法就给出了其中一种非常重要的
·
2015-11-12 19:47
bz2
hysbz
2038 小Z的袜子(莫队)
题目链接:
hysbz
2038小Z的袜子代码#include #include #include #include usingnamespacestd; typedeflonglongll; constintmaxn
u011328934
·
2015-11-12 15:00
[
HYSBZ
][1010][玩具装箱toy]
题目:http://acm.hust.edu.cn:8080/judge/problem/viewProblem.action?id=16331 View Code #include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> #de
·
2015-11-12 09:52
T
(
HYSBZ
)BZOJ 1588 营业额统计
营业额统计 Time Limit: 5000MS Memory Limit: 165888KB 64bit IO Format: %lld & %llu Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来
·
2015-11-11 04:11
ZOJ
【CodeForces】13E Holes
与这题本质上是相同的:【
HYSBZ
】1036 树的统计Count 但是,通过分块暴力,可以做到O(n*sqrt(n))。 很显
·
2015-11-11 01:48
codeforces
【
HYSBZ
】1036 树的统计Count
1 #include<cstdio> 2 #include<cstring> 3 #include<queue> 4 #include<iostream> 5 #include<algorithm> 6 #define oo 0x7FFFFFFF 7 #define MAXN 30010 8
·
2015-11-08 17:22
count
【
HYSBZ
】2002 Bounce 弹飞绵羊
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #define MAXN 200010 5 using namespace std; 6 struct LCT { 7 int bef[MAXN]; 8 int next[MAX
·
2015-11-08 17:21
BO
【
HYSBZ
】1500 维修数列
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define oo 0x7FFFFFFF 5 #define MAXN 1000010 6 using namespace std; 7 struct SplayTree { 8 i
·
2015-11-08 17:16
500
【
HYSBZ
】1503 郁闷的出纳员
1 #include<cstdio> 2 #define INF 0x7FFFFFFF 3 #define MAXN 100010 4 struct SplayTree { 5 int num[MAXN], next[MAXN][2], pre[MAXN], key[MAXN]; 6 int root, size; 7 i
·
2015-11-08 17:14
B
【
HYSBZ
】1588 营业额统计
数据有两组漏了一个数,所以在读入之前要先赋值为0。 1 #include<cstdio> 2 #include<algorithm> 3 #define MAXN 100010 4 #define INF 0x7FFFFFFF 5 using namespace std; 6 struct SpalyTree { 7 int size,
·
2015-11-08 17:11
统计
ZJOI2006 物流运输trans
HYSBZ
_1003 以前一直看不懂discuss的状态转移方程,后来某天早晨醒来的时候突然就发现我终于理解了……看来还是早晨的效率比较高。
·
2015-10-31 11:49
物流
NOI 2006 郁闷的出纳员
HYSBZ
_1053 这个算是平衡树的处女作啦,争取这两天能够练到熟练地敲出平衡树O(∩_∩)O~ 这个题目比较坑人的地方就是题目中明明说“如果初始工资低于下界他将立刻离开公司
·
2015-10-31 11:48
FJOI2007 轮状病毒
HYSBZ
_1002 努力了一大节毛邓课,终于把这个题的递推公式写出来了O(∩_∩)O~ 由于推倒过程有点不好叙述,所以在此就只列出结论了
·
2015-10-31 09:13
2007
HYSBZ
2243 染色 (树链拆分)
主题链接~~> 做题情绪:这题思路好想。调试代码调试了好久。第一次写线段树区间合并。 解题思路: 树链剖分 + 线段树区间合并 线段树的端点记录左右区间的颜色。颜色数目。合并的时候就用区间合并的思想。 还要注意一点。在由一条链转
·
2015-10-30 13:54
树
BeiJing2006 狼抓兔子
HYSBZ
_1001 建好图之后求最小割即可。
·
2015-10-30 13:50
in
暑假集训-组合数学及数论
58 Problem A CodeForces 554C Kyoya and Colored Balls 0 / 1 Problem B
HYSBZ
·
2015-10-27 13:32
数学
赤裸裸的splay平衡树
HYSBZ
1588 http://www.lydsy.com/JudgeOnline/problem.php?id=1588给我们n天的营业额,要求出每天的最小波动值,然后加起来。
justPassBy
·
2015-10-20 12:00
HYSBZ
- 1001 狼抓兔子(对偶图+最短路)
题目大意:给出一张图,这张图的每条边都有相应的容量,现在问,从(1,1)到(N,M)的最小割是多少解题思路:转成对偶图去解决#include#include#include#includeusingnamespacestd;constintMAXNODE=1000010;constintMAXEDGE=MAXNODE*6;constintINF=0x3f3f3f3f;structEdge{intv
暗金色
·
2015-09-07 22:03
ACM-图论-最短路
ACM-图论-网络流
HYSBZ
2038 小Z的袜子(hose)
Description作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。你的任务便是告诉小Z,他有多大的概率
jtjy568805874
·
2015-08-10 19:00
bzoj
HYSBZ
1012 最大数maxnumber
思路:在单调队列不更新列首,因为查询区间大小不确定,所以不能保证下次是否还用到它#include #include #include usingnamespacestd; #defineN222222 #definelllonglong intque[N]; llm,d; lla[N]; intcnt; charop[2]; intnum; intmain(){ scanf("%d%lld",
u013076044
·
2015-07-18 12:00
HYSBZ
1146 网络管理Network Treap+线段树+树链
题意很简单:在一颗树上修改某个点的值,然后查询两点之间路径上的第k大的元素查阅了很多资料,因为不会Treap,链接如下:http://blog.csdn.net/ssccode/article/details/17351461(这个代码有点问题。比如未删除分配的空间。update顺序错误等。但是写成类的形式很爽。)http://blog.csdn.net/acdreamers/article/de
CHCXCHC
·
2015-06-06 18:00
二分查找
线段树
treap
树链
动态区间第k值
HYSBZ
2243 树链剖分(区间更新,区间查询)较难
http://www.lydsy.com/JudgeOnline/problem.php?id=2243Description给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。请你写一个程序依次完成这m个操作。Input第
u013573047
·
2015-05-30 08:00
HYSBZ
1036 树链剖分(单点更新区间求和求最大值)
http://www.lydsy.com/JudgeOnline/problem.php?id=1036Description一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作:I.CHANGEut:把结点u的权值改为tII.QMAXuv:询问从点u到点v的路径上的节点的最大权值III.QSUMuv:询问从点u到点v的路径上的节点的权值和注
u013573047
·
2015-05-29 13:00
上一页
1
2
3
4
5
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他