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
SPOJ
SPOJ
NKTEAM - Team Selection
05年的论文题问题其实可以抽象成在XOY坐标系中,每个点分别向上和向右引一条线扩展出一个无限大的区域,求没有被其他区域包含的点的个数白书上有个差不读多的题(那个题好像少一维,所以可以直接做),不过那个题的坐标范围比较大(10^9),但是其实只需要大小关系,于是离散化一下答案不变。于是可以用树状数组维护前缀最小值(当然你用线段树我也没意见),如果x意义上的前缀最小值大于当前点的y值,则当前点是exc
nlj1999
·
2016-03-09 14:00
【bzoj2400】
Spoj
839 Optimal Marks 二进制+最小割
Description定义无向图中的一条边的值为:这条边连接的两个点的值的异或值。定义一个无向图的值为:这个无向图所有边的值的和。给你一个有n个结点m条边的无向图。其中的一些点的值是给定的,而其余的点的值由你决定(但要求均为非负数),使得这个无向图的值最小。在无向图的值最小的前提下,使得无向图中所有点的值的和最小。Input第一行,两个数n,m,表示图的点数和边数。接下来n行,每行一个数,按编号给
LOI_DQS
·
2016-03-09 10:00
SPOJ
Use of Function Arctan
UseofFunctionArctanTimeLimit:2000MS MemoryLimit:1572864KB 64bitIOFormat:%lld&%lluSubmit Status Practice
SPOJ
ARCTANDescriptionIt'seasytoknowthatarctan
wust_ZJX
·
2016-03-07 13:00
bzoj 1803(主席树)
1803:
Spoj
1487QueryonatreeIIITimeLimit: 1Sec MemoryLimit: 64MBSubmit: 419 Solved: 184[Submit][Status
M_AXSSI
·
2016-03-06 20:00
SPOJ
BALNUM Balanced Numbers (数位dp)
题目:http://www.
spoj
.com/problems/BALNUM/en/题意:找出区间[A,B]内所有奇数字出现次数为偶数,偶数字出现次数为计数的数的个数。
妮king狼
·
2016-03-04 20:00
spoj
BCEASY - Bottom Coder (Easy)
http://www.
spoj
.com/problems/BCEASY/题意:给出一段代码,形式为inti,n=42; main(){ for(i=0;i<n;i--){ printf("*");
wuli2496
·
2016-03-04 16:00
bzoj 2588
Spoj
10628. Count on a tree(主席树+dfs序)
Description给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答uxorlastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。 Input第一行两个整数N,M。第二行有N个整数,其中第i个整数表示点i的权值。后面N-1行每行两个整数(x,y),表示点x到点y有一条边。最后M行每行两个整数(u,v,k
hahalidaxin
·
2016-03-04 16:00
【矩阵加速】[
SPOJ
SEQ]Recursive Sequence
题目描述Sequence(ai)ofnaturalnumbersisdefinedasfollows:ai=bi(i≤k)ai=c1ai−1+c2ai−2+...+ckai−k(i>k)wherebjandcjaregivennaturalnumbersfor1≤j≤k.Yourtaskistocomputeanforgivennandoutputitmodulo109.InputOnthefir
JeremyGJY
·
2016-03-04 12:00
模板
spoj
SPOJ-SEQ
矩阵加速
spoj
2319 BIGSEQ - Sequence
YouaregiventhesequenceofallK-digitbinarynumbers:0,1,...,2K-1.YouneedtofullypartitionthesequenceintoMchunks.Eachchunkmustbeaconsecutivesubsequenceoftheoriginalsequence.LetSi (1≤i≤M)bethetotalnumberof1'
chenyushuo
·
2016-03-03 19:00
uva673 Parentheses Balance
.*; publicclas
spoj
_1205{ publicstaticvoidmain(String[]args){ BigIntegerf[]=newBigInteger[110]; f[1]=
yexiaohhjk
·
2016-03-03 15:00
uva
spoj
SORTBIT - Sorted bit squence
Let'sconsiderthe32bitrepresentationofallintegersifrommuptoninclusive(m≤i≤n;m×n≥0,-2^31≤m≤n≤2^31-1).Notethatanegativenumberisrepresentedin32bitAdditionalCode.Thatisthe32bitsequence,thebinarysumofwhicha
chenyushuo
·
2016-03-03 12:00
SPOJ
D-query 区间不同数的个数 [在线主席树 or 离线树状数组]
题意:给出N个数,M个询问,每次询问给出区间内不同数的个数。解法:很经典的题目,可以将每一个数依次插入主席树,插入时,将这个位置+1,并将最近的一个等值的位置-1即可。然后对于询问区间L,R,只要在第R颗树上询问区间L,R的和就是答案。类似于这个思想,可以考虑离线处理询问,从左往右遍历插入,处理所有以这当前点为右端点的询问,这样就不需要可持久化了,并且树状数组就可以轻松维护了。主席树代码:#inc
GrassTreeFlower
·
2016-03-03 09:46
数据结构--主席树
数据结构--树状数组
SPOJ
(后缀数组求不同子串个数)
DISUBSTR-DistinctSubstrings Givenastring,weneedtofindthetotalnumberofitsdistinctsubstrings.InputT-numberoftestcases.T #include #include usingnamespacestd; constintMAXN=200005; charbuf[MAXN]; int
baneHunter
·
2016-03-02 21:00
BZOJ2588
Spoj
10628. Count on a tree
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2588Description给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答uxorlastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。Input第一行两个整数N,M。第二行有N个整数,其中第i个整
ACMICPC
·
2016-03-02 17:00
SPOJ
16580 QTREE7 - Query on a tree VII
终于是完成了QTREE系列。我还是想说,这貌似链分治总是可以搞定的,如果不行,就加一个线段树,如果还是不行,就加一个堆。由于QTREE6苦逼地在findPath()里多了一个lg(n)这一次,我在线段树里加了两个量来维护一个结点在重链左右能够到达的区域长度。#include #include #include #include #include #include #include #include
Fuxey
·
2016-03-01 19:00
树的分治
SPOJ
16549 QTREE6 - Query on a tree VI
感觉这种问题没有链分治解决不了的,如果有,那么再加一个线段树每个重链结点记录下链中与他直接联系的黑点和白点的数目,这是很好维护的。关键是询问。线段树中的结点要记录这一段是否是同一种颜色,否则无法查询。但这并不是最优的方式,最好是多维护两个量,分别是仅在重链上相同颜色从左端延续的长度和从右端延续的长度。这样findPath()里就不用花lg(n)的时间去judge()了#include #inclu
Fuxey
·
2016-03-01 16:00
树的分治
SPOJ
2939 QTREE5 - Query on a tree V
这道题与QTREE4类似难度两者差不多,这个版本没有边权(但做过QTREE4的小伙伴都知道边权其实并不会增加难度),但是多了一些查找操作。值得一说的:对于线段树而言,我想大家比较习惯的方式是从上往下递归修改,所以这里(QTREE4也是)使用了一个findPath()的函数。#include #include #include #include #include #include #include
Fuxey
·
2016-03-01 11:00
树的分治
SPOJ
2666 QTREE4 - Query on a tree IV
第一次写链分治,其实想清楚后写起来并不麻烦。先看看论文吧!qzc论文首先,你需要对树产生这样的一个印象:首先,这玩意被剖分了。若干的个链之间有父子关系,每次维护信息和普通的树链剖分没有很大区别。这个题的主体思路还是延续了分治的思想,每次我们都只处理经过链的答案(在树的点分治里是处理经过根的答案)由于点的下方可能连接多条链,所以我们还需要维护一些大根堆来记录一些必要的信息。这只是一个大概的轮廓,论文
Fuxey
·
2016-03-01 00:00
树的分治
poj2305 Basic remains
.*; importjava.util.Scanner; publicclas
spoj
_2305{ publicstaticvoidmain(String[]arg
yexiaohhjk
·
2016-02-28 16:00
poj1311 Octal Fractions
.*; publicclas
sPoj
_1131{ publicstaticvoidmain(String[]args){ Scannercin=newScanner(System.in); BigDecimal
yexiaohhjk
·
2016-02-28 16:00
spoj
:QTREE3
题目链接qtree3题意一棵树,点数 #include usingnamespacestd; #defineN200010 structedge{ intx,next; }e[N]; intt[N],M,tot,f[N/2],dfn[N/2],top[N/2],son[N/2],size[N/2],cnt,x,y,n,m,first[N/2]; voiddfs1(intx,inty){ f[x
zmh964685331
·
2016-02-27 20:00
SPOJ
QTREE 树链剖分
375.QueryonatreeProblemcode:QTREE Youaregivenatree(anacyclicundirectedconnectedgraph)with N nodes,andedgesnumbered1,2,3...N-1.Wewillaskyoutoperfromsomeinstructionsofthefollowingform:CHANGEiti :changet
zxhl
·
2016-02-27 17:00
【
SPOJ
DISUBSTR】Distinct Substrings 后缀数组
Givenastring,weneedtofindthetotalnumberofitsdistinctsubstrings.InputT-numberoftestcases.T #include #include #include usingnamespacestd; typedeflonglongLL; constintSZ=1000010; intlcp[SZ],sa[SZ],tmp[
LOI_DQS
·
2016-02-27 17:00
【数位DP】CF55D BZOJ3329 HDU4352 SGU390 HDU5519
SPOJ
10606
SPOJ
10606BZOJ3629BZOJ3629CodeForces55DCodeForces-55D题目大意:题目大意
cqbztsy
·
2016-02-27 01:00
数位dp
CF55D
HDU4352
BZOJ3329
SGU390
OPTM-Optimal Marks-
SPOJ
839最小割
YouaregivenanundirectedgraphG(V,E).Eachvertexhasamarkwhichisanintegerfromtherange[0..231–1].Differentvertexesmayhavethesamemark.Foranedge(u,v),wedefineCost(u,v)=mark[u]xormark[v].Nowweknowthemarksofso
huayunhualuo
·
2016-02-26 11:00
【
SPOJ
-INVCNT】Inversion Count【树状数组】【逆序对】
题意:给出一列数,求逆序对个数。裸题。发现树状数组的n与数的个数n搞混了...懒得离散化,反正时限大。#include#includeusingnamespacestd;typedefunsignedlonglongULL;constintmaxn=200005,maxm=10000005;intn,a[maxn],tr[maxm],M;inlineintiread(){intf=1,x=0;ch
BraketBN
·
2016-02-25 15:58
树状数组
逆序对
【
SPOJ
-INVCNT】Inversion Count【树状数组】【逆序对】
题意:给出一列数,求逆序对个数。裸题。发现树状数组的n与数的个数n搞混了...懒得离散化,反正时限大。#include #include usingnamespacestd; typedefunsignedlonglongULL; constintmaxn=200005,maxm=10000005; intn,a[maxn],tr[maxm],M; inlineintiread(){ i
BraketBN
·
2016-02-25 15:00
逆序数
树状数组
逆序对
【
SPOJ
-AGGRCOW】【BZOJ1734】【POJ2456】Aggressive cows【二分】【贪心】
题意:n个房间,c头牛,将这c头牛分配进房间,使得牛之间的最小距离最大。经典二分。二分答案,枚举房间。如果房间距离大于答案,那么计数器加一。如果最后计数器不小于c,说明答案应该更大,否则更小。#include #include usingnamespacestd; constintmaxn=100005; intn,m,pos[maxn]; inlineintiread(){ intf=1
BraketBN
·
2016-02-25 14:00
二分
贪心
【
SPOJ
-COINS】Bytelandian gold coins【DP】
题意:价值为n的硬币,可以换为价值为n/2,n/3,n/4的三枚硬币。给出n,问最大硬币总和。(n #include usingnamespacestd; typedefunsignedlonglongULL; constintmaxn=5000005; ULLdp[maxn]; ULLdfs(ULLx){ if(x
BraketBN
·
2016-02-25 14:00
【
SPOJ
-KOPC12H】K12-OE Numbers【数位DP】
题意:定义OE数为:对于所有数位,使得偶数和大于奇数和的数。比如1233,奇数和=1+3+3=7,偶数和=2,奇数和>偶数和,不是OE数。设f[i][k]表示长度为i的数,偶数和减奇数和等于k的OE数的个数。对于当前位j,如果j为奇数,那么f[i][k]+=f[i-1][k+j]如果j为偶数,那么f[i][k]+=f[i-1][k-j]求个前缀和f[i][j]+=f[i][j+1],变为f[i][
BraketBN
·
2016-02-25 10:00
数位dp
【
SPOJ
-SARRAY】Suffix Array【后缀数组】
题意:求一个字符串的SA数组。回顾一下模板。出题人说O(n)的才可以得100分,然而倍增也过了。#include #include #include usingnamespacestd; constintmaxn=100005,M=70; intnum[maxn],sa[maxn]; intwa[maxn],wb[maxn],wv[maxn],cnt[maxn]; voidSA(int*r
BraketBN
·
2016-02-24 22:00
后缀数组
【
SPOJ
-ABCPATH】ABC Path【BFS/DFS】
题意:n×m的格子,每个格子有一个大写英文字母,每个格子可以沿着八个方向走。问图中最长的从A开始的字母序列(ABCD...)的长度是多少。搜索...注意写vis标记,否则容易炸。可以试试这组数据:5050 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BraketBN
·
2016-02-24 22:00
搜索
【
SPOJ
-DYNACON1】Dynamic Tree Connectivity【LCT/并查集】
题意:和BZOJ2049一样。换了各种LCT姿势,一直TLE。后来发现可以用并查集...参考了Seter聚聚的blog:http://seter.is-programmer.com/posts/29428.htmlBZOJ2049:http://blog.csdn.net/braketbn/article/details/50732912#include #include usingnamesp
BraketBN
·
2016-02-24 19:00
并查集
【BZOJ2049】[Sdoi2008]Cave 洞穴勘测【Link-Cut Tree】
就不发题意了...LCT模板题,和http://www.
spoj
.com/problems/DYNACON1/一样,但是不卡常数。
BraketBN
·
2016-02-24 19:00
tree
Link-Cut
【
SPOJ
-MGAME1】Game【博弈DP】
题意:一个n×m的地图,地图上有些地方不能走,有些地方有分值(1/3/5)。两个玩家移动一个棋子,棋子只能向下、右、右下移动。棋子到达一个格子,这个格子的分值属于移动方。当棋子无法移动时,分数高的获胜,如果分数一样,无法移动者输。有多组询问,每个询问给出一个起点,问先手赢还是后手赢。这题我能玩一年。设dp[i][j][0]代表先手从(i,j)出发所能获取的最大分值,设dp[i][j][1]代表后手
BraketBN
·
2016-02-24 11:00
博弈DP
【
SPOJ
-GCDEX】GCD Extreme【欧拉函数】【线性筛】
题意:求∑(1 typedefunsignedlonglongULL; typedefunsignedintuint; constintmaxn=1000001; intcnt; intprime[maxn],phi[maxn]; ULLf[maxn]; boolisnotprime[maxn]; inlineintiread(){ intf=1,x=0;charch=getchar();
BraketBN
·
2016-02-24 08:00
欧拉函数
线性筛
【数位DP】
SPOJ
10606Balanced Numbers
传送门题目大意:一个数被称为是平衡的数当且仅当对于所有出现过的数位,偶数出现奇数次,奇数出现偶数次。给定A,B,请统计出[A,B]内所有平衡的数的个数。注意,这里的偶数是指出现过的数,并且不能计算前导零。蒟蒻一开始理解成所有的偶数和奇数,被坑成狗QAQ对于每一个数有三种状态:0:这个数还木有出现过。1:这个数出现过奇数次。2:这个数出现过偶数次。于是乎用一个三进制数来表示每一种状态,然后直接转移吧
cqbztsy
·
2016-02-23 23:00
数位dp
SPOJ10606
【
SPOJ
-SCPC11H】Dolls【最小路径覆盖】
题意:有一些箱子,已知长宽高(不能旋转),一个较大的箱子中最多可以放入一个较小的箱子(小箱子里有可能也有箱子),问最外层最少有多少箱子。相当于有一些点(x,y,z),若两个点i和j满足xi constintmaxn=505,maxm=maxn*maxn; intn,a[maxn],b[maxn],c[maxn],head[maxn],cnt,vis[maxn],from[maxn],clo;
BraketBN
·
2016-02-23 22:00
最小路径覆盖
二分图最大匹配
【
SPOJ
-MAIN75】BST again【计数DP】【记忆化搜索】
题意:节点个数为n,编号分别为1到n,高度为h,求排序二叉树的个数。一开始写了个预处理DP,结果TLETLETLETLETLE...然后发现可以写记忆化搜索...当前二叉树的方案数等于左子树的方案数×右子树的方案数...然后就可以记忆化搜索了。#include typedefunsignedintuint; typedefunsignedlonglongULL; constintmaxn=50
BraketBN
·
2016-02-23 21:00
dp
二叉树
记忆化搜索
【
SPOJ
-LCM】The Time of Day【计数DP】【离散化】
题意:从1到n这n个数中选出一些数,使得它们的lcm不小于M。(n #include usingnamespacestd; typedefunsignedlonglongULL; constintmaxn=45,maxs=40005; intprime[]={0,2,3,5,7,11,13,17,19,23,29,31,37},cnt=12; intp[]={0,5,3,2,1,1,1,1
BraketBN
·
2016-02-23 18:00
dp
计数dp
【bzoj2400】
Spoj
839 Optimal Marks 最小割
好题!!!最小割按位做枚举每一位一个点与S联通表示这个点选0,与T联通表示这个点选1如果这个点为0,那么源点S向这个点连一条容量为inf的边如果这个点为1,那么这个点向汇点T连一条容量为inf的边每条边对应连一条容量为1的边考虑点权的话非常巧妙,本来两个条件应该是费用流的?但是可以通过一些技巧用最小割来实现把原来的边容量放大10000倍如果一个点不和S直接连边,那么源点S向这个点连一条容量为1的边
u012288458
·
2016-02-23 09:00
【
SPOJ
-ALIEN2】Aliens at the train, again!【DP】
题意:有两个火车站A和B,每个有n个站台,每个站台有一些人。外星人从1号站台开始出发(他可以选择从A或者B开始),每次他可以继续沿着当前火车站走,或者切换到另一个火车站。如果在第i号站台切换,那么遇到的人数就是Ai+Bi。但是外星人遇到的人数总和不能超过k。问你外星人最多能走到几号站台,最少能遇到多少人。(如果下一步遇到人数总和大于k,那么外星人会在当前站台下车。)比较简单的dp。#include
BraketBN
·
2016-02-22 16:00
dp
【
SPOJ
-BALLSAG】Ball Stacking Again【DP】
题意:数字三角形,取走一个数字,会把这个数字左上方和右上方的数字取走(这两个数被取走后还会取走他们俩上面的数字,类似连锁反应),每个数字的贡献只算一次。问最大贡献。从上到下DP,但是要去重。转移一开始写的n-1转n,不好写,最后改成n转n+1了,也不用特判边界了。#include #include usingnamespacestd; constintmaxn=1001,inf=0x3f3f3
BraketBN
·
2016-02-22 15:00
dp
【
SPOJ
-MYQ5】The Nerd Factor【计数DP】
题意:n个人分组,每组不少于k个人,求方案数。先O(n^2)预处理,然后O(1)回答就好。#include constintmaxn=1001,p=1000000007; intdp[maxn][maxn]; inlineintiread(){ intf=1,x=0;charch=getchar(); for(;ch'9';ch=getchar())f=ch=='-'?-1:1; for(;
BraketBN
·
2016-02-22 14:00
计数dp
【
SPOJ
-NAGAY】Joseph’s Problem【余数求和】【分块】
题意:给出n,k。求n和k都是10^18,sqrt(k)理论上过不了,但是还是过了...题挺好。这题的分块和一般的分块不太一样,直接看图吧。设k=d*x+r。发现每个块内都是一个等差数列,公差就是d。于是我们枚举d,按d分块。对于一个块[l,r](指的是i的区间),显然r=k/d,l用上一块的末尾加1,就是l=k/(d+1)+1。然后就完了...看代码。(已知了d和x之后就不要用r=k%x了...
BraketBN
·
2016-02-22 12:00
分块
spoj
Distinct Substrings【后缀数组 不重复子串】
DescriptionGivenastring,weneedtofindthetotalnumberofitsdistinctsubstrings.InputT-numberoftestcases.T #include #include usingnamespacestd; #defineMAXN10005 intt1[MAXN],t2[MAXN],c[MAXN]; boolcmp(int*r,i
zhou_yujia
·
2016-02-22 08:00
String
后缀数组
【
SPOJ
-TRIGALGE】Easy Calculation【二分法】【牛顿迭代法】
题意:求Ax+Bsinx=C的解。一开始,我高高兴兴的写了二分法:虽然比较长,但是一发AC了。#include #include constdoubleeps=1e-9; doubleA,B,C; boolcheck(doublex){ if(A*x+B*sin(x)-Ceps){ doublemid=(l+r)/2; if(check(mid))l=mid; elser=mid; } pr
BraketBN
·
2016-02-21 21:00
二分法
牛顿迭代法
【
SPOJ
-DESRUG】Desrugenstein【Floyd】
题意:给出一个NxN的网格,给出每个网格可以走的方向,有一些询问,问从一点到另一点的最短路长度。多源最短路裸题,但是读入太恶心了,而且表述不清楚...附自己的画的样例的图:(比较丑)#include #include usingnamespacestd; constintmaxn=105,inf=0x3f3f3f3f; intn,g[maxn][maxn]; inlineintiread(
BraketBN
·
2016-02-21 20:00
floyd
多源最短路
【
SPOJ
-YELBRICK】The Yellow Brick Road【GCD】
题意:给出n个长方体,要割出相同大小的正方体,并使得正方体的个数尽可能小。所有的长方体必须用上,且不能丢弃材料。个数尽可能少就是让边长尽可能大。因为要整除所有的边,那么显然对所有的长方体的长宽高取gcd就好了。算的时候注意开LL。#include typedeflonglongLL; constintmaxn=1005; intn,num[maxn][3]; inlineintiread(
BraketBN
·
2016-02-21 19:00
gcd
SPOJ
705 SUBST1 - New Distinct Substrings(后缀数组)
给一个字符串求有多少个不相同子串。每一个子串一定都是某一个后缀的前缀。由此可以推断出总共有(1+n)*n/2个子串,那么下面的任务就是找这些子串中重复的子串。在后缀数组中后缀都是排完序的,从sa[1]到sa[n],这么思考以某个串为前缀的子串有几个,那么容易想到重复子串的个数其实就是∑height[i]。所以结果就是(1+n)*n/2-∑height[i]。1#include 2#include
WABoss
·
2016-02-20 16:00
上一页
9
10
11
12
13
14
15
16
下一页
按字母分类:
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
其他