- 博客(39)
- 收藏
- 关注
原创 AtCoder Grand Contest 001 E BBQ Hard
都别拦我,我要放日语题面E - BBQ Hard時間制限 : 2sec / メモリ制限 : 256MB配点 : 1400 点問題文高橋君はバーベキューをしようとしています。 バーベキューでは 2 本の串にいくつかの具材を刺した串焼きを 1 個作る予定です。串焼きセットが N 個あり、i 番目のセットには串が 1 本、肉が Ai 個、野菜が Bi 個入っています。セットを 2 個選び、セッ
2017-10-07 21:38:21
364
原创 部分刷题记录
BZOJBZOJ出新题了,赶紧去抢一血。没有数据?!Python 2B!{ static char fl[N],*A=fl,*B=fl; return A==
2017-08-08 23:56:49
404
1
原创 KD-tree学习笔记
概念 k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。K-D树是二进制空间分割树的特殊的情况。(摘自百度百科) 直接看概念显然看不懂,我们先看看二维的KD-tree长什么样子吧。触摸板画的。。 这里有几个点,我们要建树。 先找出按x排序后最中间的点,从中间分开 这样有什么用呢,你要查
2017-08-08 17:36:12
574
1
原创 [BZOJ][KD-tree]2626: JZPFAR
题目Description 平面上有n个点。现在有m次询问,每次给定一个点(px, py)和一个整数k,输出n个点中离(px, py)的距离第k大的点的标号。如果有两个(或多个)点距离(px, py)相同,那么认为标号较小的点距离较大。Input 第一行,一个整数n,表示点的个数。 下面n行,每行两个整数x_i, y_i,表示n个点的坐标。点的标号按照输入顺序,分别为1..n。 下面
2017-08-08 16:34:40
381
1
原创 [BZOJ] 3670: [Noi2014]动物园
题面比较长,就不复制了(大多都是废话),反正就是要对于每个前缀求它的border中长度小于等于它的长度一半的数量。然后再处理一下。 这题和KMP还是有点关系的,只要我们先构建next树,对于一个长度为x的前缀(在next树上编号为x),它在树上的祖先中编号小于等于⌊x⌋\lfloor x\rfloor的编号最大的节点的深度就是题目要求的num[x],不知道为什么的请先搞清楚next树是什么东西。
2017-07-31 23:55:44
831
1
原创 [hihoCoder]#1033 : 交错和
描述 给定一个数 x,设它十进制展从高位到低位上的数位依次是 a0, a1, …, an - 1,定义交错和函数: 例如: 给定 l, r, k,求在 [l, r] 区间中,所有 f(x) = k 的 x 的和,即: 输入 输入数据仅一行包含三个整数,l, r, k(0 ≤ l ≤ r ≤ 101810^{18}, |k| ≤ 100)。
2017-07-18 18:37:27
441
1
原创 [BZOJ]3223: Tyvj 1729 文艺平衡树
3223: Tyvj 1729 文艺平衡树 Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 Input 第一行为n,m n表示初始序列有n个数,这个序列依次是(1,2……n-1,n) m表示翻转操作次数 接下
2017-07-17 19:08:20
310
1
原创 随便写写(内附fread读优和一些较弱的常数优化)
由于本人在看别人的代码时,总会因为别人的代码风格而产生一些疑惑,所以写一下自己的代码习惯来帮助一些人适应我的代码,以后打代码都会尽量打一些注释。首先是我的大部分代码都带有fread()读优,如下inline char tc(void){ static char fl[1000000],*A=fl,*B=fl; return A==B&&(B=(A=fl)+fread(fl
2017-07-03 13:54:06
573
2
原创 [BZOJ]2154: Crash的数字表格&&2693: jzptab
题目描述 Description Input 一个正整数T表示数据组数 接下来T行 每行两个正整数 表示N、M Output T行 每行一个整数 表示第i组数据的结果 Sample Input 1 4 5 Sample Output 122 HINT T <= 10000 N, M<=10000000解题思路
2017-07-03 13:32:25
344
1
原创 [BZOJ]1106: [POI2007]立方体大作战tet
1106: [POI2007]立方体大作战tetTime Limit: 10 Sec Memory Limit: 162 MBSubmit: 722 Solved: 534[Submit][Status][Discuss]Description 一个叫做立方体大作战的游戏风靡整个Byteotia。这个游戏的规则是相当复杂的,所以我们只介绍他的简单规则:给定玩家一个
2017-07-01 16:28:33
549
1
原创 [BZOJ]1104: [POI2007]洪水pow
Description AKD市处在一个四面环山的谷地里。最近一场大暴雨引发了洪水,AKD市全被水淹没了。Blue Mary,AKD市的市长,召集了他的所有顾问(包括你)参加一个紧急会议。经过细致的商议之后,会议决定,调集若干巨型抽水机,将它们放在某些被水淹的区域,而后抽干洪水。你手头有一张AKD市的地图。这张地图是边长为m*n的矩形,被划分为m*n个1*1的小正方形。对于每个小正方形,地
2017-06-30 15:01:42
704
1
原创 [BZOJ]2301: [HAOI2011]Problem b
Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数。 Input 第一行一个整数n,接下来n行每行五个整数,分别表示a、b、c、d、k Output 共n行,每行一个整数表示满足要求的数对(x,y)的个数 Sample Input 2
2017-06-29 20:51:28
471
1
原创 [BZOJ]1101: [POI2007]Zap
Description FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d。作为FGD的同学,FGD希望得到你的帮助。 Input 第一行包含一个正整数n,表示一共有n组询问。(1<=n<= 50000)接下来n行,每行表示一个询问,每行三个正整数,分别为a,b,d。(1<
2017-06-29 19:01:49
503
1
原创 [BZOJ]1102: [POI2007]山峰和山谷Grz
Description FGD小朋友特别喜欢爬山,在爬山的时候他就在研究山峰和山谷。为了能够让他对他的旅程有一个安排,他想知道山峰和山谷的数量。 给定一个地图,为FGD想要旅行的区域,地图被分为n*n的网格,每个格子(i,j) 的高度w(i,j)是给定的。 若两个格子有公共顶点,那么他们就是相邻的格子。(所以与(i,j)相邻的格子有(i−1, j−1),(i−1,j),(i−1,j
2017-06-29 17:52:43
392
1
原创 [BZOJ]1103: [POI2007]大都市meg dfs序+树状数组
Description 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了。 不过,她经常回忆起以前在乡间漫步的情景。昔日,乡下有依次编号为1..n的n个小村庄,某些村庄之间有一些双 向的土路。从每个村庄都恰好有一条路径到达村庄1(即比特堡)。并且,对于每个村庄,它到比特堡的路径恰好 只经过编号比它的编号小的村庄。另外
2017-06-29 17:31:20
383
1
原创 [BZOJ]1097: [POI2007]旅游景点atr
FGD想从成都去上海旅游。在旅途中他希望经过一些城市并在那里欣赏风景,品尝风味小吃或者做其他的有趣 的事情。经过这些城市的顺序不是完全随意的,比如说FGD不希望在刚吃过一顿大餐之后立刻去下一个城市登山, 而是希望去另外什么地方喝下午茶。幸运的是,FGD的旅程不是既定的,他可以在某些旅行方案之间进行选择。由于 FGD非常讨厌乘车的颠簸,他希望在满足他的要求的情况下,旅行的距离尽量短,这样他就有足
2017-06-28 13:24:47
476
1
原创 [BZOJ]1098: [POI2007]办公楼biu
FGD开办了一家电话公司。他雇用了N个职员,给了每个职员一部手机。每个职员的手机里都存储有一些同事的 电话号码。由于FGD的公司规模不断扩大,旧的办公楼已经显得十分狭窄,FGD决定将公司迁至一些新的办公楼。FG D希望职员被安置在尽量多的办公楼当中,这样对于每个职员来说都会有一个相对更好的工作环境。但是,为了联 系方便起见,如果两个职员被安置在两个不同的办公楼之内,他们必须拥有彼此的电话号码。
2017-06-28 13:19:46
329
1
原创 [BZOJ]1609: [Usaco2008 Feb]Eating Together麻烦的聚餐
水#include <cstdio>#include <algorithm>using namespace std;inline char tc(void){ static char fl[100000],*A=fl,*B=fl; return A==B&&(B=(A=fl)+fread(fl,1,100000,stdin),A==B)?EOF:*A++;}inline
2017-06-13 19:44:37
292
1
原创 [BZOJ]1610: [Usaco2008 Feb]Line连线游戏
水一下#include <cstdio>#include <cstdlib>#include <cmath>#include <algorithm>using namespace std;inline char tc(void){ static char fl[100000],*A=fl,*B=fl; return A==B&&(B=(A=fl)+fread(fl,1,1
2017-06-13 19:43:25
258
1
原创 [BZOJ]2054: 疯狂的馒头
数据太大,我们考虑对于一个馒头,最后一次染的色就是最后的颜色,然后就倒着来搞,加上并查集优化就好了#include <cstdio>#include <algorithm>using namespace std;inline char tc(void){ static char fl[1000000],*A=fl,*B=fl; return A==B&&(B=(A=fl)+f
2017-06-12 21:33:18
243
1
原创 [BZOJ]2440: [中山市选2011]完全平方数
莫比乌斯反演#include <cstdio>#include <cmath>using namespace std;#define ll long longbool flag[44012];int T,u[44012],prim[44012],k;ll l,r,mid;inline char tc(void){ static char fl[1000000],*A=fl,*
2017-06-12 18:34:37
209
1
原创 [HDU]2255-奔小康赚大钱
打了一遍KM算法的板子#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n,l[305][305],match[305],ex1[305],ex2[305],slack[305];char vis1[305],vis2[305];inline int max(int a,int b)
2017-06-02 20:49:23
244
1
原创 [BZOJ]3110: [Zjoi2013]K大数查询
整体二分+BIT区间修改,区间查询#include <cstdio>using namespace std;typedef long long int unt;inline char tc(void){ static char fl[100000],*A=fl,*B=fl; return A==B&&(B=(A=fl)+fread(fl,1,100000,stdin),A==B
2017-05-31 21:37:02
179
1
原创 [BZOJ]1016: [JSOI2008]最小生成树计数
#include <cstdio>#include <algorithm>using namespace std;#define mod 31011inline char tc(void){ static char fl[10000],*A=fl,*B=fl; return A==B&&(B=(A=fl)+fread(fl,1,10000,stdin),A==B)?EOF:
2017-05-30 20:47:20
248
1
原创 点分治[BZOJ]2599: [IOI2011]Race
题目:给一棵树,每条边有权.求一条简单路径,权值和等于K,且边的数量最小.N <= 200000, K <= 1000000思路:先找到根,然后求出经过根的路径数最小的方案。在处理一个节点时,用已处理的信息加上当前点的信息来更新答案,t[i]表示距离根为i的节点的最小深度,dis[i]表示i节点离根的距离,ans=min(ans,t[k-dis[i]]+d[i])。处理完根的一个子树后再更新一下信息
2017-05-26 19:58:36
460
1
原创 [BZOJ]4832: [Lydsy2017年4月月赛]抵制克苏恩
这个版本带克苏恩怕是活不到10费啊#include <cstdio>#include <cstring>using namespace std;inline int read(void){ int a=0;static char c; while((c=getchar())<'0'||c>'9'); while(c>='0'&&c<='9') a=a*1
2017-05-15 20:00:40
272
1
原创 [BZOJ]1242: Zju1015 Fishing Net弦图判定
弦图判定,题目没有骗你#include <cstdio>using namespace std;#define F(x) (x+1+n)inline int max(int a,int b){ return a>b?a:b;}inline char tc(void){ static char fl[10000],*A=fl,*B=fl; return A==B?B=
2017-05-15 19:51:21
355
1
原创 [BZOJ]3036: 绿豆蛙的归宿
DFS求期望就好了#include <cstdio>using namespace std;inline int read(void){ int a=0,f=1;static char c; while((c=getchar())<'0'||c>'9')c=='-'?f=-1:0; while(c>='0'&&c<='9') a=a*10+c-'0',c
2017-05-14 17:02:31
310
1
原创 [BZOJ]3781: 小B的询问
莫队裸题,连我这种蒟蒻都可以一次AC#include <cstdio>#include <cmath>#include <algorithm>using namespace std;inline char tc(void){ static char fl[10001],*A=fl,*B=fl; return A==B?B=(A=fl)+fread(fl,1,10000,st
2017-03-23 20:31:55
295
1
原创 [BZOJ]1051: [HAOI2006]受欢迎的牛
题目:每一头牛的愿望就是变成一头最受欢迎的牛。现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎。 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎。你的任务是求出有多少头 牛被所有的牛认为是受欢迎的。 缩点之后如果只有一个点出度为0就输出个数,有多个的话就输出0。#include <cstdio>#include <vector>#incl
2017-03-18 08:22:21
335
1
原创 1054: [HAOI2008]移动玩具
很显然这题bfs就可以过了,但是因为上完数学课降智商,看都没看就直接打了IDA*,凑合着看吧。#include <cstdio>#include <cstring>using namespace std;int s,t,x,mincost,ans;char b[65537];bool IDs(const int limit,const int mincost,const int now,co
2017-03-14 19:48:01
284
1
原创 [BZOJ]4404: [Neerc2015]Binary vs Decimal
由于本人太垃圾了,只能打表#include <iostream>#include <cstdio>using namespace std;int n,fa[]={0,0,0,2,0,4,4,4,0,8,6,6,0,12,10,10,8,8,8,8,0,20,12,12,12,12,8,8,0,28,18,18,12,12,10,10,0,36,26,26,12,12,12,12,0,44,18
2017-03-06 20:08:06
518
1
原创 [BZOJ]3224: Tyvj 1728 普通平衡树
平衡树的模板题。#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;#define C (c=getchar())inline void read(int &a){ a=0;static char c; int f=1; while(C<'0'||c>'9')
2017-02-16 16:15:20
240
1
原创 [BZOJ]1602: [Usaco2008 Oct]牧场行走
题目大意:给你一棵树以及相邻节点之间的距离,之后询问2点之间的距离。 用dis数组存根节点到其他节点的距离,则有distance(a,b)=dis[a]+dis[b]-dis[lca(a,b)]*2,所以这题可以用树上倍增求LCA。#include <cstdio>#include <cstring>#include <vector>#include <algorithm>using na
2017-02-16 10:31:27
307
1
原创 [bzoj1015][JSOI2008]星球大战starwar
19号学校要考试了,检测大家寒假预习情况…… 题目大意:一个无向图上有N个点,有m条边,要按顺序删点,按次序输出每次删点后图中的连通块数量。 因为删点的操作实现过于复杂,所以我们可以考虑倒着来将一个个点加入图中,通过并查集来求出连通块数量。#include <cstdio>#include <vector>using namespace std;#define rover 10000inl
2017-02-15 19:27:24
458
1
原创 [BZOJ]1324: Exca王者之剑
题目大意:在一个N*M的网格之中,每个格子上都有一定价值的宝石,Amber可以任意选则一个起始点。并且Amber可以瞬间取走当前所在格子中的宝石,Amber每秒可以走一步,在偶数秒时他周围4格中的宝石会消失(包括0秒),问最多能取到宝石的价值和。 这题就是要我们求这个图的最大点权独立集,因为最大点权独立集的点权和=所有点权和-最小点权覆盖的点权和,所以这题转换为求最小点权覆盖的点权和,先把图染色,
2017-02-15 13:04:28
426
1
原创 [BZOJ]1601: [Usaco2008 Oct]灌水
题目大意:要给n块地灌水,对于每一块地,可以选择从另一块地引水过来,也可以选择建造水库,引水和建造水库都需要费用,问给N块地灌水的最小费用。最终状态是个森林,对于每一棵树,都有一个点建造了水库,我们人工加入一个点,把建造了水库看做是连了这个点,最终状态就成了一棵树,这题也就转化为了最小生成树。#include <cstdio>#include <cstring>using namespace
2017-02-15 08:56:47
377
1
原创 [BZOJ]1024: [SCOI2009]生日快乐
因为今天是同桌生日(兼虐狗节)加上第一次写博客,所以就挑了这么一道(水)题。 题目大意:N个人分一个边长分别为X和Y的矩形蛋糕,要切N-1刀分成面积相等的N块,并且每刀都得平行于一块蛋糕的一条边来切,我们要求 N块蛋糕的长边与短边的比值的最大值最小。 可以直接算出每个人拥有蛋糕的面积s,然后考虑切一块长l宽w的蛋糕,因为得顺着边切,所以切完后的2个蛋糕要么长都为l,要么宽都为w,
2017-02-15 08:53:35
549
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人