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
POI2008
BZOJ1125: [
POI2008
]Poc
我是真的没有任何码力可言qwqsplay维护串的hash值每次更改hash值,在splay上给所有那个值的点打个答案标记特殊处理交换同一个串code:#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#incl
L_0_Forever_LF
·
2017-12-08 09:31
Poi
BZOJ
splay
字符串
挖个坑的图论题
图论[
POI2008
]BLO☆(A)[Poi2012]Festival☆☆☆☆[Poi2011]ProgrammingContest☆☆☆[HNOI2012]矿场搭建☆☆☆(A)[ZJOI2007]矩阵游戏
kamisamaxmd
·
2017-06-07 18:41
题表
BZOJ1123: [
POI2008
]BLO
题目大意:给一张无向连通图,对于每个点x,输出删掉所有与他相邻的边之后,图中有多少对点不连通设删掉所有与点x相邻的边之后,除了自己其他联通块大小为a1,a2,a3...aK则ans[x]=∑i=1K∑j=1K[j!=i]aiaj+2(n−1)=∑i=1K∑j=1Kaiaj−∑i=1Ka2i+2(n−1)=(∑i=1Kai)2−∑i=1Ka2i+2(n−1)=(n−1)2−∑i=1Ka2i+2(n−
commonc
·
2017-05-19 09:07
BZOJ
POI
tarjan
[BZOJ1123][
POI2008
]BLO(tarjan求点双+树形dp)
题目描述传送门题目大意:给出一个n个点m条边的无向连通图,问去掉每一个点之后存在多少点对不连通。题解tarjan求点双联通分量,对于每一个点双建立一个虚拟的节点,然后将这个点双的所有节点都连接到这个节点上,这样就形成了一棵树的结构容易知道这道题求的应该是去掉每一个点之后形成的联通块的每一个大小,然后利用乘法原理计算一下,所以建出树了之后dp一下就行了代码#include#include#inclu
Clove_unique
·
2017-04-06 15:13
题解
dp
tarjan
bzoj 1123: [
POI2008
]BLO (tarjan求点双+树形DP)
题目描述传送门题目大意:给出一个无向连通图,求删去一个点后有多少点对不连通。题解tarjan求点双,然后对于点双新建节点,并连接所有点双中的节点,形成一棵树后进行树形DP即可。代码#include#include#include#include#include#defineN1000003#defineLLlonglongusingnamespacestd;intn,m,tot,point[N],
clover_hxy
·
2017-04-06 14:25
动态规划
tarjan
算法
bzoj 1131: [
POI2008
]Sta(树形DP)
1131:[
POI2008
]StaTimeLimit: 10Sec MemoryLimit: 162MBSubmit: 1140 Solved: 373[Submit][Status][Discuss
clover_hxy
·
2016-05-04 19:00
[BZOJ1113][
Poi2008
]海报PLA(单调栈)
题目描述传送门题解确实这也叫单调栈。代码#include #include #include usingnamespacestd; intstrack[250005]; intn,x,y,temp,ans; intmain(){ scanf("%d",&n); for(inti=1;i<=n;++i){ scanf("%d%d",&x,&y); while(y<=strack[temp]){ if
Clove_unique
·
2016-05-02 23:00
poi
单调栈
bzoj
bzoj 1113: [
Poi2008
]海报PLA
1113:[
Poi2008
]海报PLATimeLimit: 10Sec MemoryLimit: 162MBSubmit: 910 Solved: 584[Submit][Status][Discuss
clover_hxy
·
2016-05-02 22:00
[BZOJ1131][
POI2008
]Sta(树形dp+维护)
题目描述传送门题解先预处理出每个子树的大小以及以1为根时深度和。每次暴力转移O(1)代码#include #include #include usingnamespacestd; #defineLLlonglong constintmax_n=1e6+5; constintmax_e=max_n*2; intn,x,y; inttot,next[max_e],point[max_n],v[max_
Clove_unique
·
2016-04-26 08:00
dp
bzoj
【BZOJ1112】[
POI2008
]砖块Klo【Splay】
【题目链接】最终高度一定是中位数,然后Splay维护一下就可以了。答案会炸int。一开始只给加法加了LL,最后意识到先算的是乘法,所以给乘法加了LL就AC了。/*Pigonometry*/ #include #include #include usingnamespacestd; typedeflonglongLL; constintmaxn=100005; constLLlinf=1LL'
BraketBN
·
2016-04-22 15:00
【BZOJ1131】[
POI2008
]Sta【TreeDP】
【题目链接】经典TreeDP。/*Pigonometry*/ #include #include #include usingnamespacestd; typedeflonglongLL; constintmaxn=1000005; intn,head[maxn],cnt,ans,size[maxn]; LLsum; struct_edge{ intv,next; }g[maxn'9'
BraketBN
·
2016-04-21 14:00
【BZOJ1123】[
POI2008
]BLO【割顶】
【题目链接】题意可见discuss。用Tarjan求割顶,然后对割顶的所有子树求点对个数(前缀和扫一遍),最后把自身和其他点的答案加上。没注意边,数组开小了。/*Pigonometry*/ #include #include usingnamespacestd; typedeflonglongLL; constintmaxn=100005,maxm=500005; intn,m,head[
BraketBN
·
2016-04-21 11:00
[单调栈] BZOJ 1113 [
Poi2008
]海报PLA & BZOJ 1628 [Usaco2007 Demo]City skyline
双倍经验就是把下面能合并的合并成一张单调栈维护1113#include #include #include usingnamespacestd; inlinecharnc() { staticcharbuf[100000],*p1=buf,*p2=buf; if(p1==p2){p2=(p1=buf)+fread(buf,1,100000,stdin);if(p1==p2)returnEOF;}
u014609452
·
2016-04-18 18:00
bzoj 1113(单调栈)
1113:[
Poi2008
]海报PLATimeLimit: 10Sec MemoryLimit: 162MBSubmit: 888 Solved: 567[Submit][Status][Discuss
M_AXSSI
·
2016-04-13 14:00
bzoj 1116(构造+并查集)
1116:[
POI2008
]CLOTimeLimit: 10Sec MemoryLimit: 162MBSubmit: 801 Solved: 440[Submit][Status][Discuss
M_AXSSI
·
2016-04-11 10:00
【BZOJ1116】[
POI2008
]CLO【BFS】
【题目链接】同【这个题】/*Pigonometry*/ #include #include usingnamespacestd; constintmaxn=100005,maxm=200005,maxq=maxn; intn,m,head[maxn],cnt,q[maxq]; boolvis[maxn]; struct_edge{ intv,next; }g[maxm'9';ch=getc
BraketBN
·
2016-04-01 09:00
【bzoj1132】[
POI2008
]Tro 计算几何
按照横坐标为第一关键字,纵坐标为第二关键字排序,枚举每个点作为原点把再它后面的点拿出来,求每一对点与原点构成的三角形的面积abs(a[i].x*a[j].y-a[i].y*a[j].x)如果能去掉绝对值,就可以用乘法分配律来做了考虑按极角排序从下向上枚举每一个点,那么当前点与每一个前面的点的叉积小于0,与后面的点叉积大于0那么我们边枚举边,记录一个前缀和,每次ans+=a[i].y*sumx-a[
u012288458
·
2016-03-08 14:00
BZOJ1132: [
POI2008
]Tro
鬼畜的BZOJ。。。换个输出就A?!!!叉积的前缀和方法#include #include #include #include #include usingnamespacestd; #defineyouhua__attribute__((optimize("O2"))) structPoint { intx,y; youhuainlinefriendintoperator*(Pointa,Poi
liutian429073576
·
2016-02-16 11:00
poi
BZOJ 1112
POI2008
砖块
树状数组,Treap,还有MultiSet&Map都是可搞的。这里提供一个树状数组的版本……提示:1.对于这种点间求距离的题目,初中课本上讲中位数应该提到过……代码后详解:#include #include #include #include #include #include #include #include #include #include #include usingnamespace
Fuxey
·
2016-02-10 15:00
poi
树状数组
BZOJ 1121 & science
1121:[
POI2008
]激光发射器SZKTimeLimit:10SecMemoryLimit:162MBSubmit:647Solved:537[Submit][Status][Discuss]Description
YCuangWhen
·
2016-02-10 00:00
【
POI2008
】【BZOJ1131】Sta
Description给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大Input给出一个数字N,代表有N个点.N #include #include #include #include #defineMAXN1000010 #defineGET(ch>='0'&&chnext) if(i->to!=f)dfs1(i->to,x),size[x]+=size[i->to],
CreationAugust
·
2016-02-05 15:00
树形DP
【
POI2008
】【BZOJ1132】Tro
Description平面上有N个点.求出所有以这N个点为顶点的三角形的面积和N #include #include #include #include #defineMAXN3010 #defineGET(ch>='0'&&ch>1,ans&1?5:0); }
CreationAugust
·
2016-02-05 14:00
计算几何
面积
前缀和
bzoj1116 [
POI2008
]CLO
题目链接画画图发现如果某一个连通块中没有环那么就不可能存在方案所以直接并查集维护一个连通块中有没有环1#include 2#include 3#include 4#include 5#include 6#include 7#include 8#include 9#include 10#include 11#include 12#include 13#definerre(i,
HugeGun
·
2016-02-04 19:00
bzoj1116 [
POI2008
]CLO
题目链接画画图发现如果某一个连通块中没有环那么就不可能存在方案所以直接并查集维护一个连通块中有没有环1#include 2#include 3#include 4#include 5#include 6#include 7#include 8#include 9#include 10#include 11#include 12#include 13#definerre(i,
HugeGun
·
2016-02-04 19:00
BZOJ 1127: [
POI2008
]KUP|单调队列|思路题
思路神题考虑子矩阵为1*n的情况如果有一个[k,2*k]的点直接输出否则这些区间中满足条件的一定是所有数都=k考虑二维的情况也是这样,子矩阵中必须所有的数都2*k的数的子矩阵如果=k并且2*k,上下左右随便砍几次就能满足条件找出极大子矩阵要用单调队列似乎我并没有用,乱搞了个比较奇怪的东西,复杂度也是线性的#include #include #include #include #include #i
ws_yzy
·
2016-01-22 14:00
单调队列
1116: [
POI2008
]CLO|深度搜索
如果原图中所有的点的度都>=2 那么肯定有解如果原图中存在一个点的入度为0 那么肯定无解对于原图中入度为1的点那么他连的那条边方向肯定要指向他然后我们删掉这条边看原图是否仍然能满足条件怎么办,不会写?直接暴力深搜就好啦#include #include #include #include #include #include #include #include #include #include #
ws_yzy
·
2016-01-13 14:00
深度搜索
1132: [
POI2008
]Tro 计算几何
首先O(N^3)是不科学的。。我们起码要想办法优化到O(N^2logN)。考虑每次枚举一个点,以它作为一个顶点,然后维护一个前缀和来计算每个点与夹角在逆时针180°内的点(我表述的不好。。边界可以二分也是logN的)的叉积。这样求出的答案/6(因为有三个顶点算了三遍,且每次都是计算的平行四边形的面积)就是最后的ans。然后我发现我不会使其他点按照顺时针排序,我只能想到极角还不会处理共线反向的情况。
Phenix_2015
·
2016-01-12 18:00
BZOJ 1132: [
POI2008
]Tro|计算几何
维护一个x和y的前缀和但是叉积会出现有正有负的情况怎么破排个序就好了先给每个点排序第一关键字x第二关键字y从小到大排序然后枚举每一个点以这个点建立坐标系按斜率从大到小排序,就不会出现叉积为负的情况啦#include #include #include #include #include #include #include #include #include #include #defineT333
ws_yzy
·
2016-01-12 17:00
计算几何
1116: [
POI2008
]CLO 思路题 并查集
开始看错题了囧。。。要求选一部分边变为单向边。。并不是全都要变QAQ。这样就比较好考虑了:如果原图没有环,我们改变边的方向只会构造出一个类似树形结构,总会有点没有入度。而如果原图有环,我们构造一个基环外向树就好啦。。。于是并查集维护一下:如果当前两个点在一个联通块内,那么就在根上打一个标记。否则合并的时候如果有一个联通块有标记(证明有环)则合并后的也有标记。。最后check一下是否每个联通块的根都
Phenix_2015
·
2016-01-12 14:00
1112: [
POI2008
]砖块Klo Splay+中位数
似乎和前几天做那道IOI的题有点相似?都是维护中位数。不过IOI的题良心多了QAQ,坐标是递增的所以直接线性维护就好了。。然而。。这个显然需要维护一个区间K大,且支持插入删除操作。好久没打splay手生。。删除后忘记上传标记T了好久。。果然常数巨大,被各路treap和set(卧槽)虐成狗了。#include #defineinf1e18 #definelllonglong #defineN1000
Phenix_2015
·
2016-01-12 08:00
1113: [
Poi2008
]海报PLA 单调栈
今天看SAM好久还是没看懂。。傻逼题调一晚上。。真是不爽。。赶紧屠几道水题。。可以发现如果出现h1h3且h1==h3时,我们可以用一个矩形来覆盖这一块,ans可以减一。所以我们可以维护一个单调栈。#include usingnamespacestd; intn,ans,top; ints[250005]; inlineintread() { inta=0,f=1;charc=getchar();
Phenix_2015
·
2016-01-11 22:00
BZOJ 1113:
Poi2008
海报PLA(单调栈)
题目大意:用最少的纸张去覆盖矩形的楼。(此题与楼宽无关)思路和上述几题差别不大。此题主要是排序后找相同高度。最后用总数减去即可。#include #include #include #include #include #include #include #include #include #defineL1longlong #defineL2__int64 #defineinf0x3f3f3f3f
Grit_ICPC
·
2016-01-04 21:00
栈
【bzoj1132】[
POI2008
] Tro
水题,用来巩固一下叉积。cross(u,v)=xuyv−xvyu,其除以2就是u⃗ 到v⃗ 形成的有向面积。如果保证v在u的下方,则计算其围成的无向面积就不用加绝对值,而且满足结合律。先从左往右从下往上枚举点,然后再按以这个点为极点的极角从下往上枚举点,边枚举边算叉积就可以了。时间复杂度O(n2logn)。采用了机智的方法避免了精度问题。#include #definerep(i,a,b)for(
GEOTCBRL
·
2015-12-03 20:00
bzoj1112【
poi2008
】砖块klo
1112:[
POI2008
]砖块KloTimeLimit: 10Sec MemoryLimit: 162MBSubmit: 1361 Solved: 475[Submit][Status][Discuss
AaronGZK
·
2015-11-24 23:00
bzoj
BZOJ 1113: [
Poi2008
]海报PLA
题目 1113: [
Poi2008
]海报PLA Time Limit: 10 Sec Memory Limit: 162 MB Description
·
2015-11-13 03:52
2008
bzoj 1132
POI2008
Tro
大水题=_=,可我想复杂了…… 很裸的暴力,就是加了个小优化…… 叉积求面积 :abs(xi*yj - yi*xj) 所以去掉绝对值,把 xi 和 xj 提出来就可以求和了 去绝对值加个极角排序,每次把最左边的点当成原点,然后剩下的排序,接着枚举第二个点,求叉积之和…… &nbs
·
2015-11-08 11:02
2008
BZOJ 1131: [
POI2008
]Sta( dfs )
对于一棵树, 考虑root的答案向它的孩子转移, 应该是 ans[son] = (ans[root] - size[son]) + (n - size[son]). so , 先 dfs 预处理一下, 然后再 DFS 求出各点答案 , 取最优即可 ------------------------------------------------------------
·
2015-11-01 14:06
2008
BZOJ 1112: [
POI2008
]砖块Klo1112( BST )
枚举每个长度为k的区间, 然后用平衡树找中位数进行判断, 时间复杂度O(nlogn). 早上起来精神状态不太好...连平衡树都不太会写了...果断去看了会儿番然后就A了哈哈哈 -------------------------------------------------------------------------- #include<bits/stdc++.h&
·
2015-11-01 11:45
2008
BZOJ 1122 [
POI2008
]账本BBB 神题
题意:链接略方法:神题解析:ORZORZ主要的策略还是贪心,想到修改的符号是定值之后再枚举第二个操作就可以解决。代码:#include #include #include #include #defineN1000100 usingnamespacestd; typedeflonglongll; lln,p,q,x,y; chars[N]; llsum[Nn;i--)sum[i]=sum[i+1]
wzq_QwQ
·
2015-09-17 20:00
代码
namespace
poi
操作
typedef
BZOJ 1116 [
POI2008
]CLO 并查集
题意:链接方法:并查集解析:第一眼神题,看完hz题解后发现被D了。明明sb题。如果某个连通块里存在环那么一定会达到目标状态。为什么?自己YY:)所以并查集合并就行了。代码:#include #include #include #include #defineN100100 usingnamespacestd; intn,m; intfa[N]; intv[N]; intfind(intx) { i
wzq_QwQ
·
2015-09-15 20:00
代码
namespace
poi
合并
YY
BZOJ 1123 [
POI2008
]BLO 点双连通分量
题意:链接方法:点双连通分量解析:这题样例还看了一会…就是所有的点对是有序的,并且删掉的点也算。所以不是割点的点删掉之后答案是固定的。如果是割点的点的话我们只需要在tarjan里面加点东西就行了。我们记录一个siz,如果某个点可以搜到low比它的deep值大的点的话,显然是产生了一个分割后的连通块?动态乘以下即可。千万别忘了最后乘的一下:)代码:#include #include #include
wzq_QwQ
·
2015-09-15 20:00
代码
poi
BZOJ 1125 [
POI2008
]Poc Treap+Hash
题意:链接**方法:**Treap解析:码农题。我们需要对每一种hash值开一个treap即可。所以我偷懒用了Map记录根。然后我们每一次加元素的时候在根节点传一个更新答案的标记即可。treap里存的是下标值:)代码:#include #include #include #include #include #include #include #defineN1010 #defineL110 #de
wzq_QwQ
·
2015-09-15 20:00
代码
poi
hash
码农
地图
BZOJ 1127 [
POI2008
]KUP 最大子矩阵
题意:链接方法:最大子矩阵解析:先考虑1*n的情况,如果有在目标区间内的直接输出。否则找是否存在一个区间即可。然后能否推广呢?可以的。如果元素有在目标区间的值的话,直接输出即可。否则的话我们将大于2*k的点看作坏点。则我们只要扫极大子矩阵再进行验证即可。考虑如何验证总和满足目标区间的极大子矩阵。如果是1*n的情况,因为所有的元素都小于k。所以必定有一个前缀的和是在目标区间内的。所以我们只需要缩y2
wzq_QwQ
·
2015-09-15 20:00
poi
C语言
gcd
AI
BZOJ 1128 [
POI2008
]Lam 高精度
题意:链接方法:高精度解析:N1/53->1/5*4/32->4/15*2/2所以Ai=Ai+1∗pi+1−1pi然后因为数据范围问题,所以需要上高精。高精除gcd的时候,千万别傻不啦叽写高精对高精那种除2流的GCD,别以为这是log(n)这特么是log(10^1000)直接变成O(n^3),想过?没门。所以转化成高精对低精的gcd就好。也就是说我们写个高精模低精就可以了。代码:#include
wzq_QwQ
·
2015-09-15 20:00
poi
C语言
gcd
AI
BZOJ 1130 [
POI2008
]POD Subdivision of Kingdom 状压
题意:链接方法:状压解析:N这么小的范围,看到就忍不住想要压一压--!先想想对半分的方案数。C13262大概500W吧挺小的。现在看我们的转移辣。如果O(n)的话是作死!所以如何降到O(1)呢?我们把每一个点的连向的点压成一个二进制数。然后转移我们就可以做到删去原来的加上新的。这个复杂度是O(1的个数)但是如果我们预处理出二进制数中1的个数,那么转移就O(1)辣,这题就可以水过去啦注意:预处理的话
wzq_QwQ
·
2015-09-15 20:00
poi
二进制
C语言
浪逼水题狗wyfcyx
BZOJ1129:[
POI2008
]Per从小到大依次考虑每种数字,按照这种数字在当前序列中的相对位置来计算这是第几类,每一类都会有剩下的所有数字的本质不同的排列个数得到。
wyfcyx_forever
·
2015-09-14 20:00
BZOJ 1132 [
POI2008
]Tro 计算几何
题意:略方法:计算几何?解析:看完题以为又要做计算几何了--!后来发现我靠不对啊。这题时限给很长。但是O(n^3)过不了2333所以考虑优化。我们枚举第一个点。为了使我们不重复枚举三角形。所以筛出来枚举的第一个点的右面(不包括y负半轴)的点。然后我们是要计算叉积。右面的点为了使其有序,所以我们按照斜率排序。然后枚举到第i个点时,它的贡献是(y1+y2+…+yi-1)∗xi-yi∗(x1+x2+…x
wzq_QwQ
·
2015-09-14 20:00
poi
X
BZOJ 1131 [
POI2008
]Sta 树形DP
题意:略方法:裸树形DP。。解析:我今天做的怎么都是大水题--!明明有你不会的!每个节点向下以及向上深度两边dfs就行辣。式子还用列?--随便画个图yy就好了代码:#include #include #include #include #defineN1000100 usingnamespacestd; typedeflonglongll; intn; inthead[N],cnt; struct
wzq_QwQ
·
2015-09-14 20:00
代码
namespace
poi
dp
DFS
BZOJ 1124 [
POI2008
]枪战Maf 贪心+乱搞
题意:略。方法:贪心+乱搞。解析:今天做的题里面最难的了…分连通块进行考虑。一个连通块最多死多少呢?一个点->死一个一个环->死环上点个数-1个一个环加上内向树->死所有点个数-入度为0个。这很显然。。一棵树嘛..倒着开枪..最少死多少个呢?首先入度为零的肯定死不了。然后我们将入度为0的推入队列。之后他打死一个人后看那个人要打的人是否变成了入度为零。如果变成了入度为零那么继续进队。最后整张图剩下了
wzq_QwQ
·
2015-09-14 20:00
poi
BZOJ 1121 [
POI2008
]激光发射器SZK 数学
题意:略方法:水题归类到数学真的好?解析:考虑从一个顶点出发,那么一定终止在另一个顶点,绝对不会回到自己。并且从一个顶点出发的路径上只有两个顶点,(废话。并且从所有顶点出发走的所有路径一定覆盖所有格点。所以话都说到这份上了--。输出n/2…….代码:intmain(){intn;scanf("%d",&n);printf("%d\n",n/2);}
wzq_QwQ
·
2015-09-14 20:00
poi
栈
上一页
1
2
3
下一页
按字母分类:
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
其他