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
hnoi
bzoj2002: [
Hnoi
2010]Bounce 弹飞绵羊
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2002题意:中文题。。分析:先将这个数组分块,每块大小为sqrt(n),然后设定f[i]表示从i出发到第一个和i不同块的点所需的步数,nex[i]表示那个第一个和i不同块的点的位置。然后我们每次查询的时候就能最多sqrt(n)次就能跳出n长度了,修改的话可以很明显的知道改变第i个点的系数是所影响
Fsss_7
·
2015-12-31 01:00
bzoj3141: [
Hnoi
2013]旅行
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3141思路:一道杂技题....证明杂技,写的也杂技,13年最神的题首先有一个结论设S为+1和-1的总和,记sum为后缀和(为什么是后缀?因为做的时候要判后面是还否有解)如果S!=0,那么ans=ceil(S/m)否则如果sum[i]==0的个数>=m则为0,否则为1证明及具体做法见一个详细的题
thy_asdf
·
2015-12-30 21:00
bzoj4008: [
HNOI
2015]亚瑟王【期望dp】
一个特别神奇的dp,特别厉害。f(i,j)表示有j轮发动技能的牌在[1,i]另外的m-j轮在[i+1,n]之间的概率。怎么转移呢?首先考虑i这张牌不选的情况,f(i-1,j)表示j-->[1,i-1]&&m-j-->[i,n] (用箭头表示在[]之间...),那么我们只需要让在[i,n]之间的m-j个选择都不是i即可,那么我们应该*(1-p[i])^(m-j)再考虑这张牌我们要选的情况
y7070
·
2015-12-30 21:00
bzoj4010: [
HNOI
2015]菜肴制作【拓扑排序】
想到了一个分治方法,每一次尽量放小的那个,把它依赖的放在左边,不依赖的放在右边。TLE80:1#include 2#definerep(i,a,b)for(inti=a;i=b;i--) 4#defineREP(i,a,b)for(inti=a;ipii; 13constintinf=~0U>>1; 14consti64INF=~0ULL>>1; 15//****************
y7070
·
2015-12-30 21:00
bzoj2733: [
HNOI
2012]永无乡
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2733思路:splay裸题,没啥好说的...用来练练手#include #include #include #include #definelsch[p][0] #definersch[p][1] constintmaxn=100010; usingnamespacestd; intf[max
thy_asdf
·
2015-12-30 14:00
bzoj3144: [
Hnoi
2013]切糕
id=3144第一道想出来的
hnoi
题,还难得地一遍A...思路:老方法,先只考虑一个限制条件,即每个竖轴选一个点,求最小和;最小,就考虑最小割。
thy_asdf
·
2015-12-29 20:00
网络流
【bzoj2329】[
HNOI
2011]括号修复 splay
先考虑一下,给定一个括号序列,怎样求答案。括号序列化简后一定是这个样子的,)))))(((这样子的答案就是(左括号数+1)/2+(右括号数+1)/2那么,我们只需要维护好从左边有多少个右括号和从右边有多少个左括号就可以求答案了。记(为-1,)为1,这样()相加后就被抵消了。于是,我们只需要维护一个类似最大连续子段和中的从左边延伸多少就可以了。操作其实都非常基础。覆盖标记时,记得把其他标记全部清零。
u012288458
·
2015-12-29 14:00
bzoj3140: [
Hnoi
2013]消毒
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3140思路:首先我们观察题目“只需要使用min{x,y,z}单位的F试剂”那么我们如果选择一位长度为a,那其他两维直接取到最大即可那么题目就相当于问最少切多少个面才能覆盖所有点二维的很简单,直接二分图匹配即可(不会的见poj3041)http://poj.org/problem?id=3041
thy_asdf
·
2015-12-29 08:00
【BZOJ 1208】【
HNOI
2004】宠物收养所 [splay]
1208:[
HNOI
2004]宠物收养所TimeLimit:10SecMemoryLimit:162MBSubmit:6160Solved:2383[Submit][Status][Discuss]Description
ALPS233
·
2015-12-28 20:33
splay
BZOJ
刷题记录
【BZOJ 1208】【
HNOI
2004】宠物收养所 [splay]
1208:[
HNOI
2004]宠物收养所TimeLimit:10SecMemoryLimit:162MBSubmit:6160Solved:2383[Submit][Status][Discuss]Description
ALPS233
·
2015-12-28 20:00
splay
【BZOJ 1208】【
HNOI
2004】宠物收养所 [splay]
1208:[
HNOI
2004]宠物收养所TimeLimit:10SecMemoryLimit:162MBSubmit:6160Solved:2383[Submit][Status][Discuss]Description
ALPS233
·
2015-12-28 20:00
splay
bzoj3142: [
Hnoi
2013]数列
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3142思路:首先我们假设初值固定,无视上限,那么我们就可以看成是走K-1步,每步有M种走法那方案数就是M^(k-1)但是初值不固定,枚举是不现实的,因为如果起点较为靠后,我们就不能无视上限,方案是无法统计的但这给我们一个启示,走的每步不就是差分数组吗于是我们可以考虑对于一个差分数组a[i],它
thy_asdf
·
2015-12-28 15:00
bzoj3139: [
Hnoi
2013]比赛
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3139思路:记忆化搜索首先每个队最多只会得27分,27^10还是没有炸longlong的,所以可以用hash存下来。每个队没有本质区别,所以每层搜索前先排好序,再来一层搜索枚举出当前队和剩余队的输赢情况,转化成子问题继续递归处理。据说状态数很多,但还是可以接受的。#include #inclu
thy_asdf
·
2015-12-28 14:00
bzoj1207 [
HNOI
2004]打鼹鼠
类似最大不下降序列水掉,而且跑的超快/************************************************************** Problem:1207 User:BPM136 Language:C++ Result:Accepted Time:2724ms Memory:1428kb **************************************
BPM136
·
2015-12-27 11:00
dp
BZOJ 1208 [
HNOI
2004] 宠物收养所 题解&代码
其实是一道简单的Splay题目【虽然我写了很久据说【本来就是】用set+二分很容易就过啦,的确一个不需要maintain和pushdown的Splay和咸鱼没什么区别,不过第一次写Splay我觉得自己写得好丑啊==【还调了一个多小时题意:给出宠物和人出现的序列,宠物和人都会选择①现在存在的②和自己特征值之差的绝对值最小的③特征值最小的非同类【即宠物选择人,人选择宠物】,选择成功时将会累计一个特征值
Rainbow6174
·
2015-12-25 13:00
C++
splay
bzoj
BZOJ 1208 [
HNOI
2004] 宠物收养所 题解&代码
其实是一道简单的Splay题目【虽然我写了很久据说【本来就是】用set+二分很容易就过啦,的确一个不需要maintain和pushdown的Splay和咸鱼没什么区别,不过第一次写Splay我觉得自己写得好丑啊==【还调了一个多小时题意:给出宠物和人出现的序列,宠物和人都会选择①现在存在的②和自己特征值之差的绝对值最小的③特征值最小的非同类【即宠物选择人,人选择宠物】,选择成功时将会累计一个特征值
Rainbow6174
·
2015-12-25 13:00
C++
splay
bzoj
bzoj3573: [
Hnoi
2014]米特运输
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3573思路:语文题...正常题意:给定一棵树和每个点的权值,问最少改动多少个点的权值使得:1.每个点的所有儿子权值相等2.每个点的权值等于所有儿子权值和既然有这两个条件,那我们确定一个点的权值就确定了整棵树所有点的权值。枚举每个点不变,算出根节点的权值,选出现次数最多的方案,那么改动的点数就是
thy_asdf
·
2015-12-24 21:00
bzoj3572: [
Hnoi
2014]世界树
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3572思路:注意到m[1]+m[2]+…+m[q] #include #include #include constintmaxn=300010,maxm=600010,maxk=22; usingnamespacestd; intn,m,fa[maxn][maxk],dep[maxn],si
thy_asdf
·
2015-12-24 19:00
树形DP
虚树
1193: [
HNOI
2006]马步距离
远距离贪心,近距离BFS。证明什么的布吉岛。Discuss里面看到VFK用的模拟退火,吓Cry了。#include #include #include #include usingnamespacestd; constintdx[8]={1,1,-1,-1,2,2,-2,-2}; constintdy[8]={2,-2,2,-2,1,-1,1,-1}; boolvis[105][105]; int
nlj1999
·
2015-12-23 21:00
2734: [
HNOI
2012]集合选数
Orz黄学长。看了题目N久毫无头绪。原来是自己懒得动笔。。。。。。。列个矩阵就可以很明显地看出状压DP了。#include #include #include usingnamespacestd; typedeflonglongll; constintmod=1000000001; intf[20][2048]; intmat[20][20],bin[20],s[20],n; boolmark[1
nlj1999
·
2015-12-23 19:00
2730: [
HNOI
2012]矿场搭建
点-双联通分量。显然割顶不放,一个双联通分量若有多个割顶,也不用放,剩下的就是乘法原理了。特判:原图是双联通的,任意找两个点放就好了。WF2011原题。#include #include #include #include #include usingnamespacestd; constintN=500+5; typedeflonglongll; structEdge{intto,next;}e
nlj1999
·
2015-12-23 19:00
bzoj3571: [
Hnoi
2014]画框
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3571思路:首先看到题目的这个形式,就可以想到最小乘积生成树这题就是要求最小乘积匹配。对于这一类问题,我们都可以把每种方案的x之和与y之和作为它的坐标(x,y)要让乘积最小,那么可能的方案的坐标一定在一个下凸壳上。首先我们求出x最小的方案的坐标,再求出y最小方案的坐标这就是凸壳的两个端点A,B
thy_asdf
·
2015-12-23 10:00
bzoj4011: [
HNOI
2015]落忆枫音
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4011思路:首先要脑补一个结论,不考虑新加的边,树的个数=πdegree[i](i!=1),degree指入度因为除了根节点,每个点各选一条入边,就可以组成一棵树。现在有了这条边x->y,我们如果还用入度乘积统计方案,就有可能多计算一些不合法的方案这些方案都包含了一个有新边的环,于是我们就要想
thy_asdf
·
2015-12-21 17:00
bzoj4009: [
HNOI
2015]接水果
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4009思路:先给定一些路径,每个路径有一个权值。题目要求的是对于一个路径,它的子路径中权值第k大的是多少首先我们观察一个盘子(u,v),它能接到哪些水果呢?分情况:如果u!=lca(u,v)那么水果的两端点(a,b)就在盘子两端点的子树中用dfs序来表示,就是dfn[u] #include #
thy_asdf
·
2015-12-20 12:00
[BZOJ1009][
HNOI
2008]GT考试
[
HNOI
2008]GT考试Description阿申准备报名参加GT考试,准考证号为N位数X1X2….Xn(0f[i+1][]的转移对于任意一个i都是一样的,这就启发我们利用矩阵乘法加速。
hbhcy98
·
2015-12-19 22:00
bzoj4012: [
HNOI
2015]开店
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4012思路:首先我们考虑一个简化的问题:给定一棵树,每次询问所有点到一个点的距离和。画个图就能知道:距离和=所有点到根的距离和+点数*u到根的距离-每个点与u的lca到根的距离*2于是问题就成了求lca的dis和那么我们先对每个点,把它到根的路径覆盖一次,然后询问点u时就是从u向上跳,每次加覆
thy_asdf
·
2015-12-18 12:00
2733: [
HNOI
2012]永无乡
传说中的启发式合并,就是选出n1logn2和n2logn1中的较小值(不要跟我提常数谢谢)用平衡树维护一个联通块,我选的SBT(好高端的样子,煞笔树吗?),然后就是俩操作了:合并两棵树,查询一棵树内第k小的节点。#include #include #include usingnamespacestd; constintN=100000+5; inlineintread(){ intx=0,f=1;
nlj1999
·
2015-12-17 11:00
bzoj4010: [
HNOI
2015]菜肴制作
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4010思路:显然最小字典序是错误的,那么应该怎么求?直接选小的在前不一定对,但是如果没有都没有后继,大的在后面一定是对的所以考虑倒着DP,求出最大拓扑序,反向输出即可#include #include #include #include #include constintmaxn=200010
thy_asdf
·
2015-12-16 21:00
[BZOJ1010][
HNOI
2008]玩具装箱toy 斜率优化第一题
很明显我们得到朴素的转移方程dp[i]=min{dp[j]+(i−j−1+sum[i]−sum[j]−L)2,dp[i]} (0≤jdp[k]+(f[i]−f[k]−C)2——————[1]假设i后面的某状态t有f[t]=f[i]+v (t>i)我们想知道i对于后面状态t的影响,那么要证明dp[j]+(f[t]−f[j]−C)2dp[j]+(f[i]+v−f[j]−C)2dp[j]+(f[i]
slongle_amazing
·
2015-12-16 17:00
BZOJ1208: [
HNOI
2004]宠物收养所
Description最近,阿Q开了一间宠物收养所。收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a#include#defineisnum(t)((t>=48)and(tsize[right[t]])rightrot(t);elsei
mrazer1234
·
2015-12-16 16:31
刷题
1010: [
HNOI
2008]玩具装箱toy
1010:[
HNOI
2008]玩具装箱toyTimeLimit: 1Sec MemoryLimit: 162MBSubmit: 7763 Solved: 2981[Submit][Status][Discuss
CRZbulabula
·
2015-12-13 11:00
bzoj1202(带权并查集)
1202:[
HNOI
2005]狡猾的商人TimeLimit: 10Sec MemoryLimit: 162MBSubmit: 2166 Solved: 1027[Submit][Status][Discuss
M_AXSSI
·
2015-12-13 09:00
bzoj1191[
HNOI
2006]超级英雄Hero
裸的二分图匹配,毕竟是t1,但是主要是有一句题目一旦没办法匹配了就要break,没看到闯关制的我调了好久#include #include #include #include #include #include #defineLLlonglong #definefo(i,a,b)for(inti=a;i'9'){if(s=='-')f=-1;s=getchar();} while(s>='0'&&
BPM136
·
2015-12-12 11:00
二分图匹配
1222: [
HNOI
2001]产品加工
首先考虑朴素的Dp,令f[ta][tb]表示是否可以达到ta,tb这个状态(即在a上工作ta的时间,在b上工作tb的时间),这里f开成bool量即可。时间复杂度大概是n*n*5*n*5,空间复杂度大概是n*5*n*5,。很明显不论时间还是空间都超了。考虑求解最优化问题,于是有f[i][ta]表示在加工完第i个产品后再a上工作ta时间时在tb上所用的最少时间。时间复杂度n*n*5,还可以接受,但是空
nlj1999
·
2015-12-11 09:00
[Prufer] BZOJ 1211 [
HNOI
2004]树的计数
每一棵树都对应着唯一的prufer数列,prufer数列也对应唯一的树。prufer数列构造方法:选取编号最小的叶子节点删掉,并将它的父亲加入到prufer数列中,直到树上还有两个节点。假设一个点入度为d,它最多有可能在prufer上出现(d-1)次(普通节点不可能因为父亲出现在prufer上,根节点由于prufer构造时要留两个点所以也会有一个儿子无法使它出现在prufer上),所以一共有n-
u014609452
·
2015-12-10 19:00
bzoj
1221: [
HNOI
2001] 软件开发
最小费用最大流。建图:拆点,每个点拆成入点和出点。显然,要满足每天的餐巾供应,于是有附加源汇ST,S向入点引一条容量为ni,费用为0的边,出点向T引一条容量为ni,费用为0的边。若满足题目要求,这必有所有出点到T的弧满载,为了保证这一点,由S向出点引容量为无穷,费用为f的边。又因为每天没用完的餐巾可以留到下一天,所以每天的入点向下一天的入点引流量为无穷,费用为0的边。又由题目的条件,对于餐巾消毒,
nlj1999
·
2015-12-10 18:00
BZOJ1191(二分图匹配)
1191:[
HNOI
2006]超级英雄HeroTimeLimit: 10Sec MemoryLimit: 162MBSubmit: 2771 Solved: 1313[Submit][Status]
M_AXSSI
·
2015-12-10 18:00
[bzoj3141][
HNOI
2013]旅行
题目描述在遥远的HX国,住着一个旅行家小L,他希望骑着他的自行车游遍全国。在这个国家中,每个城市都有一个编号,共有n个城市,编号从1到n。有的城市没有小L想去的景点,而有的城市有且仅有一个小L想去的景点,所有城市都是这两种情况之一。小L非常热爱信息学,他编写程序给他的旅行安排了一条最短路线以到达所有他想去的景点(所以他旅行线路上城市编号是乱序的):他第1个到达的城市编号为a1,第i个到达的城市编号
WerKeyTom_FTD
·
2015-12-09 20:00
1191: [
HNOI
2006]超级英雄Hero
很裸的二分图匹配。然而本沙茶没读题WA了三次。。。。。。。。。#include #include #include usingnamespacestd; structEdge{intto,next;}e[5005]; inthead[2005],cnt,linked[1005]; boolvis[1005]; voidins(intu,intv){ cnt++;e[cnt].to=v;e[cnt]
nlj1999
·
2015-12-09 20:00
[bzoj3140][
HNOI
2013]消毒
题目大意有a*b*c的立方体,有些位置需要染色。可重复染色,可染不需染色的位置。染x*y*z得立方体需要min(x,y,z)的费用。求最小费用,使所有需要被染色的位置被染色。a*b*c #include #include #definefo(i,a,b)for(i=a;ihx[5000+10],hy[5000+10],hz[5000+10]; structdong{ intx,y,z; }; do
WerKeyTom_FTD
·
2015-12-09 19:00
[bzoj3139][
HNOI
2013]比赛
题目大意现有N个队伍,每两个队伍对决,胜者得3分,平局各的一分。给出每个队伍最终得分,求有多少种比赛可能。N #include #include #include #definefo(i,a,b)for(i=a;i=b;i--) usingnamespacestd; typedeflonglongll; constllmaxn=15,mo=1000000007; mapf[maxn]; lli,j
WerKeyTom_FTD
·
2015-12-09 19:00
poj 2231Moo Volume
6249DescriptionFarmerJohnhasreceivedanoisecomplaintfromhisneighbor,FarmerBob,statingthathiscowsaremakingtoomuc
hnoi
se
hexianhao
·
2015-12-08 19:00
dp
BZOJ 1208: [
HNOI
2004]宠物收养所
1208:[
HNOI
2004]宠物收养所Description最近,阿Q开了一间宠物收养所。收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。
Cynthia_wjyi
·
2015-12-07 21:42
进击的OIer
【bzoj1588】[
HNOI
2002]营业额统计 Splay
Description营业额统计Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出
LOI_DQS
·
2015-12-06 21:00
splay
bzoj1038[ZJOI2008]瞭望塔
正解:半平面交但是我们可以发现这么多线搞半平面的交集是一个半凸壳,没错于是我们就可以借用某一道好像是最大可视面积(其实是
HNOI
2008水平可视直线)还是什么的题的做法直接维护这个图形然后我们就可以在每条线的交点处计算上下差值
BPM136
·
2015-12-05 10:00
计算几何
bzoj1208【
HNOI
2004】宠物收养所
1208:[
HNOI
2004]宠物收养所TimeLimit: 10Sec MemoryLimit: 162MBSubmit: 5923 Solved: 2296[Submit][Status][Discuss
AaronGZK
·
2015-12-04 22:00
bzoj
【bzoj1208】[
HNOI
2004]宠物收养所 Splay
Description最近,阿Q开了一间宠物收养所。收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a #include #include #include usingnamespacestd; constintSZ=1000010;
LOI_DQS
·
2015-12-04 22:00
splay
bzoj1185[
HNOI
2007]最小矩形覆盖
啊啊啊啊啊啊啊啊手速不行啊打了好久啊好吧其实也想了好久这道题真是神奇WA了好几次==结果还是因为看错题我们可以做个凸包,然后这个矩形上一定有点,而且不止一个,所以只有一个点的一定不是最优的,这样的话我们就可以枚举一个凸包上面的点(因为点太多23333333不然我就枚举对角线了),然后我们可以用叉积来卡这个点对面的点,用点积来卡两边的店,这样我们就可以用旋转卡壳来完美卡住这个矩形至于输出,真的好麻烦
BPM136
·
2015-12-02 19:00
计算几何
noip
bzoj1008[
HNOI
2008]越狱
快速幂练习题m^n-m*(m-1)^(n-1)最开始脑残把n和m开成int完全不知道哪里错了额呜#include #include #include #include #include #include #defineLLlonglong #definefo(i,a,b)for(inti=a;i'9'){if(s=='-')f=-1;s=getchar();} while(s>='0'&&s<='
BPM136
·
2015-11-29 11:00
数论
bzoj 4012 [
HNOI
2015]开店 【树链剖分】
这道题好像各位神犇都是用动态树分治写的,我这么弱只能用树剖水一水了。dis(x,y)=dis(1,x)+dis(1,y)-dis(1,lca(x,y))前两个都是定值,求第三项就行了。每个点x维护不在重链上的子节点的个数*dis(1,x),查询显然,再yy一些别的东西就可以了。#include #include #include #include #include #define
heheda_is_an_OIer
·
2015-11-28 22:00
线段树
树链剖分
上一页
31
32
33
34
35
36
37
38
下一页
按字母分类:
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
其他