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
Tjoi2013
洛谷 4823 [
TJOI2013
]拯救小矮人
题目链接->噔楞题解:贪心按个高+臂长排序。个矮臂长的先走,个高臂短的后走#include#include#include#include#defineN2007usingnamespacestd;intf[N],n,flag,now,ans;structnode{intx,y;}edge[Ny.x+y.y;}intmain(){scanf("%d",&n);for(inti=1;i=1;i--)
bai123456888888
·
2020-08-25 02:46
省选专练[
TJOI2013
]循环格
神仙网络流QAQ这个主要还是没想通环是啥:图中全是入读出度为1的点所以用费用流表示改变方向#includeusingnamespacestd;constintN=1e5+10;constintINF=0x3f3f3f3f;structFront_star{intu,v,w,c,nxt;}e[Nmmp;voidBuild_Gra(){for(inti=1;iQ;intinqueue[N]={};in
dingwufu9301
·
2020-08-24 08:23
BZOJ3173: [
Tjoi2013
]最长上升子序列 Treap+树状数组
BZOJ3173:[
Tjoi2013
]最长上升子序列TimeLimit:10SecMemoryLimit:128MBSubmit:1505Solved:784[Submit][Status][Discuss
Oakley_
·
2020-08-23 15:33
JZOJ3256 【
TJOI2013
】松鼠聚会 切比雪夫距离转曼哈顿距离
题目大意给在给你二维平面上的n个点(xi,yi),现在规定从一个格点走到八相邻的格点的费用是1。现在要求你选出其中一个给定的点,要求其余所有点到这个点的花费和最小。n≤105xi,yi≤109解题思路首先先分析一下怎样能更简便的算费用,不难发现,由于每走一步可以是横坐标距离减1或纵坐标距离减1,或两个同时减1。那么从一个点走到另一个点的代价显然是max(|x1−x2|,|y1−y2|)。这个距离的
YxuanwKeith
·
2020-08-22 00:53
算法-计算几何
算法-数论
BZOJ-3172: [
Tjoi2013
]单词(SA+RMQ+二分查找)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3172把所有单词中间加入一个其他字符,然后建成后缀数组,明显,以相同单词为前缀的后缀在SA里面是一个区间,那么二分查找枚举区间端点即可。代码(第二次写,很长很丑)(刚开始快排在BZOJ上过了,在WIKI上却TLEL了,搞的只能硬着头皮去写基排):#include#include#include#
AmadeusChan
·
2020-08-21 12:46
洛谷P3963 [
TJOI2013
]奖学金
堆题目传送门首先这道题不可二分,自己YY一下挺显然的。把每个人按照成绩排序,从大往小扫,用三个可删除的堆q1,q2,q3q1,q2,q3q1,q2,q3维护。q1,q3q1,q3q1,q3分别维护当前位置左右的前kkk大,q2q2q2维护左边不是前kkk大的,相当于q1q1q1的后备。具体实现见代码:#include#include#include#include#include#defineN2
forezxl
·
2020-08-19 08:00
洛谷
数据结构---堆
蒟蒻zxl的Blog专栏
【DP水题】P4823 [
TJOI2013
]拯救小矮人
题目传送门题目题目描述一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯。即:一个小矮人站在另一小矮人的肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口。对于每一个小矮人,我们知道他从脚到肩膀的高度Ai,并且他的胳膊长度为Bi。陷阱深度为H。如果我们利用矮人1,矮人2,矮人3,。。。矮人k搭一个梯子,满足A1+A2+A3+....+Ak+Bk>=H,那么矮人k就可以离开陷阱
大国梦_小兔子
·
2020-07-25 20:00
3170: [
Tjoi2013
]松鼠聚会
TimeLimit:10SecMemoryLimit:128MBSubmit:1804Solved:968[Submit][Status][Discuss]Description有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1。现在N个松鼠要走到一个松鼠家去,求走过的最短距离。Input第一行给出数字N,表示有多少只
anjiang8171
·
2020-07-14 07:41
[
Tjoi2013
]最长上升子序列 树状数组+二分
Description给定一个序列,初始为空。现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置。每插入一个数字,我们都想知道此时最长上升子序列长度是多少?SampleInput3002SampleOutput112这道题首先我们的思路是求出每个数放的位置,这个过程我们倒着插,是可以二分的。然后再考虑求最长上升子序列,用树状数组维护全局最大值。。。#include#includ
_xgcxgc
·
2020-07-06 08:17
树状数组
二分
xgc的做题记录
TJOI2013
奖学金—大根堆实现(洛谷P3963)
奖学金题目描述小张学院有\(c\)名学生,第\(i\)名学生的成绩为\(ai\),要获得的奖学金金额为\(bi\)。要从这\(c\)名学生中挑出\(n\)名学生发奖学金。这个神秘人物爱好奇特,他希望得到奖学金的同学的成绩的中位数尽可能大,但同时,他们的奖学金总额不能超过\(f\)。输入格式第一行有三个整数,分别表示要挑出的学生人数\(n\),学生总人数\(c\)和奖学金总额的最大值\(f\)。第\
#三玖天下第一#
·
2020-06-30 06:00
暑假集训Day 5 P3963 [
TJOI2013
] 奖学金
题目大意猪仙发现人类可以上很多大学,而猪们却没有大学可上。为了解决这个问题,于是他创立了一所大学,取名为猪仙大学。为了选拔合适的学生入学,他发明了一种学术能力测试(简称\(CSAT\)),这种测试的分数异常精确,每头猪的成绩可以用1到2,000,000,000之间的一个整数表示。猪仙大学的学费很贵(猪仙比较黑),很多猪都负担不起,他们需要申请一些奖学金(\(1=usingnamespacestd;
HISKrrr
·
2020-06-28 21:00
BZOJ-3175: [
Tjoi2013
]攻击装置(flood fill+最大流)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3175很经典的一道骑士共存问题,直接Floodfill之后网络流即可。代码:#include#include#includeusingnamespacestd;#defineMAXN210#defineinf0x7fffffff#defineMAXV50010structgraph{struct
AmadeusChan
·
2020-02-23 06:37
[
TJOI2013
] 攻击装置 - 二分图匹配
给定\(N\timesN\)棋盘,某些格子是障碍,问可以放置的互不侵犯的马的个数黑白染色后建立二分图,求最大独立集=总点数-最大匹配数注意把反边也连上会WA掉(脑抽一发血)#includeusingnamespacestd;//Input:make(u,v,w)//Solver:intsolve(s,t);//Output:ans(returned)namespaceflow{constintma
Mollnn
·
2020-02-11 09:00
[
TJOI2013
] 拯救小矮人- 贪心,dp
结论:矮的人比高的人先走一定不会使得答案变劣于是我们排序后,像0-1背包那样依次考虑每个人走不走#includeusingnamespacestd;structobj{inta,b;booloperator>n;for(inti=1;i>a[i].a>>a[i].b;sort(a+1,a+n+1);cin>>h;memset(f,0xff,sizeoff);f[0][0]=0;for(inti=1
Mollnn
·
2020-02-03 11:00
luoguP3964 [
TJOI2013
]松鼠聚会
首先这个距离就叫做切比雪夫距离,即\(qdis(\{x_1,y_1\},\{x_2,y_2\})=\max(|x_1-x_2|,|y_1-y_2|)\)可以证明\(\max(|x_1-x_2|,|y_1-y_2|)=\frac{|x_1-x_2+y_1-y_2|+|x_1-x_2-y_1+y_2|}2\).于是我们就将切比雪夫距离转化成了曼哈顿距离.于是我们可以对于\(x\)坐标与\(y\)坐标分
wuhan2005
·
2019-10-24 20:00
[
TJOI2013
]奖学金 乱搞
[
TJOI2013
]奖学金乱搞从\(c\)个二元组\((v,w)\)中选出\(n\)个,使其\(v\)的中位数最大的同时使\(w\)和小于等于\(f\),求这个中位数有点意思。
Santiego
·
2019-10-14 18:00
[
TJOI2013
]拯救小矮人 nlogn贪心Hack征集
[
TJOI2013
]拯救小矮人nlogn贪心Hack征集考试的时候忘记了DP,乱搞了一个贪心。
✐wch✎
·
2019-08-30 21:00
[
TJOI2013
]单词 AC自动机fail树的简单应用
https://ac.nowcoder.com/acm/problem/20443https://www.luogu.org/problemnew/show/P3966题意:给出n个单词,一篇文章由这n个单词组成,问每个单词在文中的串出现的次数,其中包括自己本身。首先:每一个字符串建Trie然后,建立fail的指针,一个串要在其他串出现过,必定是另一个串的前缀的后缀形式出现的,我们在建立Trie时
KXL5180
·
2019-04-26 13:11
ACM题解
数据结构
BZOJ 3173: [
Tjoi2013
]最长上升子序列 (线段树+BIT)
先用线段树预处理出每个数最终的位置.然后用BIT维护最长上升子序列就行了.用线段树O(nlogn)O(nlogn)O(nlogn)预处理就直接倒着做,每次删去对应位置的数.具体看代码CODE#includeusingnamespacestd;charcb[1inlinevoidread(T&res){charch;intflg=1;while(!isdigit(ch=getc()))if(ch==
_Ark
·
2019-03-29 08:03
线段树
bzoj
洛谷 4823 [
TJOI2013
]拯救小矮人
题目链接->噔楞题解:贪心按个高+臂长排序。个矮臂长的先走,个高臂短的后走#include#include#include#include#defineN2007usingnamespacestd;intf[N],n,flag,now,ans;structnode{intx,y;}edge[Ny.x+y.y;}intmain(){scanf("%d",&n);for(inti=1;i=1;i--)
GTBA
·
2019-02-15 15:00
省选专练[
TJOI2013
]循环格
神仙网络流QAQ这个主要还是没想通环是啥:图中全是入读出度为1的点所以用费用流表示改变方向#includeusingnamespacestd;constintN=1e5+10;constintINF=0x3f3f3f3f;structFront_star{intu,v,w,c,nxt;}e[Nmmp;voidBuild_Gra(){for(inti=1;iQ;intinqueue[N]={};in
Leo_JAM
·
2018-08-27 16:11
费用流
2013
TJOI
【BZOJ3172】[
TJOI2013
] 单词(AC自动机的小应用)
点此看题面大致题意:给你NNN个单词,请你求出每一个单词在这NNN个单词中出现的次数。相关题目这道题应该是洛谷上一道板子题的升级版。LinkLinkLink【洛谷3796】【模板】AC自动机(加强版)的题解详见博客【洛谷3796】【模板】AC自动机(加强版)ACACAC自动机这是一道ACACAC自动机的简单运用题。LinkLinkLinkACACAC自动机详见博客初学AC自动机题解一个比较暴力的做
chenxiaoran666
·
2018-08-20 19:33
BZOJ
AC自动机
[bzoj3170][
Tjoi2013
]松鼠聚会【切比雪夫距离】
【题目链接】https://www.lydsy.com/JudgeOnline/problem.php?id=3170【题解】首先将切比雪夫距离转换为曼哈顿距离。把每个点的坐标变为(x+y2,x−y2)(x+y2,x−y2)后曼哈顿距离等于之前的切比雪夫距离。证明:设切比雪夫距离为aa,曼哈顿距离为bb,两个点的坐标为(x1,y1),(x2,y2)(x1,y1),(x2,y2)。那么有a=max(
VanishD
·
2018-06-26 22:50
【切比雪夫距离】
[BZOJ3172][
Tjoi2013
]单词(AC自动机)
题目传送门题解AC自动机AC自动机第一题,感觉做起来非常不顺,感觉难点在于处理单词重叠的问题大体的思路应该是,我们把每个单词出现的字母在fail树上进行累加,然后建立bfs序,把单词的字母的ans累加到单词的第一个字母上(应该是这样吧?),输出答案;另一种实现方法:这是我刚开始想到的,在每个单词之间添加一个'#''#'分隔组成文章,在处理重叠单词上:我们的mp[k]表示与第k个单词相同的最靠前的单
A_Comme_Amour
·
2018-04-22 14:30
后缀数组
AC自动机
bzoj3174 [
Tjoi2013
]拯救小矮人(贪心+dp)
设i出去之后j出去,i下面的人的高度和为s。则有s+a[i]+b[i]>=H,s-a[i]+a[j]+b[j]>=H。我们发现如果a[i]+b[i]>a[j]+b[j],则交换后肯定不会更差。因此我们贪心地按a+b从小到大排序。考虑dp[i],表示出去i个人之后的最大剩余高度。如果dp[j]+a[i].b>=H,则可以用dp[j]-a[i].a来更新dp[j+1]。#include#include
Icefox_zhx
·
2018-03-21 11:19
bzoj
贪心
【bzoj3173】[
Tjoi2013
]最长上升子序列 Treap
原文链接:http://www.cnblogs.com/GXZlegend/p/6856502.html作者:GXZlegend题目描述给定一个序列,初始为空。现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置。每插入一个数字,我们都想知道此时最长上升子序列长度是多少?输入第一行一个整数N,表示我们要将1到N插入序列中,接下是N个数字,第k个数字Xk,表示我们将k插入到位置Xk
Dr_Nobody
·
2017-08-10 20:50
BZOJ3174: [
Tjoi2013
]拯救小矮人
题目大意:每个小矮人有臂长和身高,它们可以搭人梯,如果人梯的人高度总和+最上面的人的手的高度>=H,那最上面的人就可以跑,跑了的人不能再搭人梯,问最多能跑几个小矮人这题...做了好长好长时间啊貌似从2015年就开始做了,但是当时写了个贪心不对,然后又上网搜题解没看懂,瞎改DP也不对,过了几个月重新做也是WA,今天突然心血来潮写一发就A了...首先是要按照身高+臂长来排序,但是为什么呢?这个我看了很
commonc
·
2016-06-16 18:44
BZOJ
DP
省选
BZOJ3172——[
Tjoi2013
]单词
1、题目大意:一篇论文是由许多单词组成,现在想知道每个单词分别在论文中出现多少次。2、分析:对着广义后缀自动机的图看,我们就会发现玄机,答案不就是这个单词下的后缀个数吗?于是建立自动机,然后求出right,统计答案就好,另外说一句,right集合用基数排序之后更新一下就好#include #include #include #include usingnamespacestd; structSAM
qzh_1430586275
·
2016-05-17 08:00
单词
后缀自动机
bzoj
Tjoi2013
3172
bzoj 3173: [
Tjoi2013
]最长上升子序列(splay)
3173:[
Tjoi2013
]最长上升子序列TimeLimit:10SecMemoryLimit:128MBSubmit:1315Solved:682[Submit][Status][Discuss]Description
clover_hxy
·
2016-05-09 11:45
bzoj 3173: [
Tjoi2013
]最长上升子序列(splay)
3173:[
Tjoi2013
]最长上升子序列TimeLimit: 10Sec MemoryLimit: 128MBSubmit: 1315 Solved: 682[Submit][Status][Discuss
clover_hxy
·
2016-05-09 11:00
bzoj 3171(费用流)
3171:[
Tjoi2013
]循环格TimeLimit: 1Sec MemoryLimit: 128MBSubmit: 785 Solved: 493[Submit][Status][Discuss
M_AXSSI
·
2016-05-08 14:00
[
TJOI2013
]单词
题目大意一篇文章由n个单词组成。询问每个单词在文章中作为某单词(包括自己)的子串总共出现了多少次(如果在某单词中多次出现,算多次)?单词都由小写字母组成。令单词总长为L,L≤1000000,1≤n≤200题目分析在Trie上建一个SAM,然后直接计算即可。当然如果使用SAM构造广义后缀树的话代码会简单很多,但是我目前还不会。学习了之后会进行更新。令T为Trie,g(T)为T的最大深度,则时间复杂度
a_crazy_czy
·
2016-05-06 22:00
trie
OI
sam
bzoj3173 [
Tjoi2013
]最长上升子序列 dp Treap
bzoj3173[
Tjoi2013
]最长上升子序列题意:依此插入1-n求每插完一次的LIS分析:每个数是按照升序插入的,因此每新加入一个数,不会影响之前的答案,那么我们就可以求出最后的序列,这样我们可以求出以每个数为结尾的
yxr0105
·
2016-05-03 17:00
dp
LIS
treap
bzoj
bzoj3175【
TJOI2013
】攻击装置
3175:[
Tjoi2013
]攻击装置TimeLimit: 10Sec MemoryLimit: 128MBSubmit: 839 Solved: 418[Submit][Status][Discuss
AaronGZK
·
2016-04-13 22:00
二分图
bzoj
bzoj3173【
TJOI2013
】最长上升子序列
3173:[
Tjoi2013
]最长上升子序列TimeLimit:10SecMemoryLimit:128MBSubmit:1236Solved:643[Submit][Status][Discuss]Description
AaronPolaris
·
2016-04-13 22:04
二分
树状数组
OIer的狂欢
bzoj3173【
TJOI2013
】最长上升子序列
3173:[
Tjoi2013
]最长上升子序列TimeLimit: 10Sec MemoryLimit: 128MBSubmit: 1236 Solved: 643[Submit][Status][Discuss
AaronGZK
·
2016-04-13 22:00
树状数组
二分
bzoj
BZOJ3173~3175
TJOI2013
DAY2
BZOJ3173最长上升子序列数从小到大加入,所以以每个数结尾的最大长度等于位置在它前面的数的长度的最大值+1,求每个数的位置的方法同POJ2828.http://blog.csdn.net/elemmir/article/details/50131127#include#include#include#includeusingnamespacestd;constintmaxn=100005;co
Elemmir
·
2016-04-13 10:49
BZOJ3173~3175
TJOI2013
DAY2
BZOJ3173最长上升子序列数从小到大加入,所以以每个数结尾的最大长度等于位置在它前面的数的长度的最大值+1,求每个数的位置的方法同POJ2828.http://blog.csdn.net/elemmir/article/details/50131127#include #include #include #include usingnamespacestd; constintmaxn=1000
Elemmir
·
2016-04-13 10:00
bzoj3170【
TJOI2013
】松鼠聚会
3170:[
Tjoi2013
]松鼠聚会TimeLimit: 10Sec MemoryLimit: 128MBSubmit: 965 Solved: 475[Submit][Status][Discuss
AaronGZK
·
2016-04-13 00:00
bzoj
bzoj3170【
TJOI2013
】松鼠聚会
3170:[
Tjoi2013
]松鼠聚会TimeLimit: 10Sec MemoryLimit: 128MBSubmit: 965 Solved: 475[Submit][Status][Discuss
AaronGZK
·
2016-04-13 00:00
bzoj
BZOJ3170~3172
TJOI2013
DAY1
T1松鼠聚会求切比雪夫距离之和最小。要去的点在“中间”,于是我就算算中间的点就过了。#include #include #include #include #include #include usingnamespacestd; #defineLLlonglong constintmaxn=100005; structnode{ intx,y; }a[maxn]; LLdis(nodea,node
Elemmir
·
2016-04-11 16:00
[BZOJ3172][
TJOI2013
]单词(AC自动机+fail树)
题目描述传送门题解记录每一个点建自动机时候的访问次数。建Fail树,然后节点子树的大小即为当前点出现的次数。代码#include #include #include #include usingnamespacestd; constintmax_n=2e2+5; constintmax_s=1e6+5; intn,pos[max_n]; inttot,ans[max_s],query[max_
Clove_unique
·
2016-04-04 17:00
AC自动机
bzoj
TJOI
bzoj 3172: [
Tjoi2013
]单词
3172:[
Tjoi2013
]单词TimeLimit: 10Sec MemoryLimit: 512MBSubmit: 2577 Solved: 1205[Submit][Status][Discuss
clover_hxy
·
2016-04-04 17:00
bzoj 3171 [
Tjoi2013
]循环格(MCMF)
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=3171 【题意】 给定一个方向矩阵,要求改变最少的格子,使得任意一个点都在一个环中。 【思路】 任意一个点位于一个环中,即等价于所有的点都有且仅有一个后继。 对于一个点构建XY结点。 连边(S,Xi,1,0),(Yi,T,1,0)。对于原来可以转移到的点连边(
hahalidaxin
·
2016-03-23 19:00
bzoj 3172: [
Tjoi2013
]单词
1#include 2#include 3#include 4#defineM1000008 5usingnamespacestd; 6charch[M]; 7inta[M][27],n,cnt=1,fa[M],f1[M],ans[M],q[M]; 8longlongsum[M],aa; 9voidjia() 10{ 11intnow=1; 12for(inti=1;i1;s
xiyuedong
·
2016-03-22 23:00
[bzoj3172][
TJOI2013
]单词
题目大意给定许多个单词,求每个单词在所有单词中出现的次数。SAM显然可以用SAM做。一种是在单词与单词间加入字符{,第二种是trie上建sam,最简单当然是建广义后缀自动机。建后缀树做法可以看用SAM建广义后缀树#include #include #include #definefo(i,a,b)for(i=a;i=b;i--) usingnamespacestd; constintmaxn=25
WerKeyTom_FTD
·
2016-03-11 14:00
bzoj3172 [
Tjoi2013
]单词
题目链接构造AC自动机BFS更新答案由于做完fail后有BFS序,直接用就可以了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,r,l)for(in
HugeGun
·
2016-02-29 21:00
【bzoj3172】[
Tjoi2013
]单词 AC自动机+fail树
Description某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。Input第一个一个整数N,表示有多少个单词,接下来N行每行一个单词。每个单词由小写字母组成,N #include #include #include #include #include usingnamespacestd; constintSZ=10000
LOI_DQS
·
2016-02-24 19:00
bzoj 3172 [
Tjoi2013
]单词(fail树,DP)
3172:[
Tjoi2013
]单词TimeLimit: 10Sec MemoryLimit: 512MBSubmit: 2327 Solved: 1093[Submit][Status][Discuss
hahalidaxin
·
2016-02-20 08:00
【BZOJ 3172】 [
Tjoi2013
]单词
Description某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。Input第一个一个整数N,表示有多少个单词,接下来N行每行一个单词。每个单词由小写字母组成,N 2#include 3#include 4#include 5#include 6#definelllonglong 7#defineinf10000
抬头仰望浮云飘过
·
2016-02-20 07:00
上一页
1
2
下一页
按字母分类:
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
其他