自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fl_334正经的码棚

萌新334蠢码存储窝

  • 博客(34)
  • 收藏
  • 关注

原创 【luogu3853】路标设置(二分,模拟)

题目大意把公路上相邻路标的最大距离定义为该公路的“空旷指数”,给出个路标距起点的距离,求最小“空旷指数”值简单二分+模拟即可#include<iostream>using namespace std;const int maxn=100010;int L,n,k;int a[maxn]; int pd (int tmp){ ...

2018-08-21 22:34:36 281

原创 【luogu2759】奇怪的函数(二分,数论)

一个换底公式解决的事 https://www.luogu.org/problemnew/show/P2759 题摘使得 x^x 达到或超过 n 位数字的最小正整数 x 是多少? 求x^x次方的位数,可用x*log10(x)+1#include<iostream>#include<cmath>#define ll long...

2018-08-20 23:09:55 219

原创 拓扑排序【kahn算法及dfs的拓扑排序】

家谱树有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。给出每个人的孩子的信息。输出一个序列,使得每个人的后辈都比那个人后列出 Sample Input 5 0 4 5 1 0 1 0 5 3 0 3 0样例输出 Sample Output 2 4 5 3 1 【因为需输出字典序最小的因而要使用优先队列】#include<iostream>#...

2018-05-09 19:49:15 489 1

原创 求逆序对个数(树状数组)

#include<iostream>#include<algorithm>#define ll long longusing namespace std;const int maxn=100010;struct node{ int w; int p;}a[maxn];int n;int bit[maxn];int cmp(node a,...

2018-03-17 16:41:33 239

原创 点的最短路径

FLOYD for (int k=1;k<=n;k++) for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) if (f[i][j]>f[i][k]+f[k][j]) f[i][j]=f[i][k]+f[k][j];dj mem...

2018-03-07 20:58:04 150

原创 绘制二叉树

# 1、小写字母“o”表示结点,对于一个父亲结点,分别用“/”、“\”连接左、右子树。 2、定义[i,j]为位于第i行,第j列的某个字符。若[i,j]为“/”,那么[i-1,j+1]与[i+1,j-1]只可能是“o”或者“/”。若[i,j]为“\”,那么[i-1,j-1]与[i+1,j+1]只可能是“o”或者“\”。同样,若[i,j]为第1-m层的某个节点(即“o”),那么[i+1,

2018-02-03 17:28:16 1873

原创 [codevs1213]解的个数(数论,扩欧)

已知整数x,y满足如下面的条件:ax+by+c = 0p<=x<=qr<=y<=s求满足这些条件的x,y的个数。#include<iostream>#define ll long longusing namespace std;ll n,a,b,c,p,q,r,s; ll exgcd(ll a,ll b,ll &x,ll &y){ if (b==0){ x=1;

2017-09-16 22:11:14 248

原创 [luogu3397]地毯(二维线段树组)

在n*n的格子上有m个地毯。给出这些地毯的信息,问每个点被多少个地毯覆盖。 输入样例#1: 5 3 2 2 3 3 3 3 5 5 1 2 1 4 输出样例#1: 0 1 1 1 0 0 1 1 0 0 0 1 2 1 1 0 0 1 1 1 0 0 1 1 1#include<iostream>using namespace std;const int maxn=1010

2017-08-24 09:23:58 345

原创 [luogu1004]方格取数(dp,亚瑟)

某人从图中的左上角的A出发,可以向下行走,也可以向右行走,直到达右下角的B点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。 此人从A点到B点共走了两次,试找出两条这样的路径,使得取得的数字和为最大。INPUT 8 2 3 13 2 6 6 3 5 7 4 4 14 5 2 21 5 6 4 6 3 15 7 2 14 0 0 0 OUTPUT 67#in

2017-08-17 18:14:10 235

原创 树状数组(区间更新区间查询)

#include<iostream>#define ll long longusing namespace std;const int maxn=200010;int n,q,data;long long bit0[maxn],bit1[maxn];void add(long long bit[],int i,int x){ while (i<=n){ bit[i]

2017-08-12 21:33:35 308

原创 树状数组模板

模板废话#include<iostream>#define ll long longusing namespace std;const int maxn=500010;int n,m;int bit[maxn];void add(int i,int x){ while (i<=n){ bit[i]+=x; i+=i&-i; }}ll sum

2017-08-05 20:52:52 201

原创 包含第k元素LIS(dp)

输入样例 8 6 65 158 170 299 300 155 207 389 输出样例 4 #include<iostream> using namespace std; const int maxn=1010; int n,k; int f[maxn],g[maxn],a[maxn]; int main(){ cin>>n>>k; for (int

2017-08-03 18:26:47 298

原创 最大子矩阵和(n^2*m,dp,前缀和)

INPUT: 5 4 -1 -2 -3 -4 -3 -2 2 4 -3 -4 3 5 4 -5 3 6 -3 -2 -1 0 OUTPUT 23前缀和+dp优化#include<iostream>using namespace std;const int maxn=600;int n,m;long long f[maxn];long long s[maxn][maxn];in

2017-08-03 13:33:14 506

原创 [luogu1892]团伙(并查集反集)

题梗: 我朋友的朋友是我的朋友;我敌人的敌人也是我的朋友。 INPUT 6 4 E 1 4 F 3 5 F 4 6 E 1 2OUTPUT 3#include<iostream>using namespace std;const int maxn=40100;int fa[maxn];void init(int n){ for (int i=1;i<=n;i++)

2017-07-29 20:54:35 1254

原创 线段树模板

334的蠢码废话不说,贴码#include<iostream>using namespace std;long long sum[500100*4+1];void pushup(int rt){ sum[rt]=sum[rt<<1]+sum[rt<<1|1];}void build(int rt,int l,int r){ if (l==r){ cin>>sum[

2017-07-28 22:09:19 185

原创 [luogu1429]平面最接近点对(二分)

给定平面上n个点,找出其中的一对点的距离,使得在这n个点的所有点对中,该距离为所有点对中最小的#include <iostream>#include <algorithm>#include <cmath>#include <cstdio>using namespace std;int n;struct Point{ double x,y; Point(){} Po

2017-07-17 13:19:50 251

原创 [luogu2307]迷宫(并查集)

INPUT 6 8 5 3 5 2 6 4 5 6 0 08 1 7 3 6 2 8 9 7 5 7 4 7 8 7 6 0 03 8 6 8 6 4 5 3 5 6 5 2 0 0-1 -1OUTPUT 1 1 0并查集int main(){ for (int i=1;i<=10010;i++) fa[i]=i; w

2017-07-01 18:13:06 259

原创 [UVA1626]Brackets sequence(dp)

样例: 1([(]#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int INF=1<<30;const int maxn=110;int f[maxn][maxn];int pd(char x,char y){ if (x=='('&&y==')'||x=='['&

2017-06-30 22:19:47 203

原创 [UVA10003] 切木棍(dp)

**样例: 100 3 25 50 75 10 4 4 5 7 8 0 **#include<iostream>using namespace std;const int maxn=1010;int f[maxn][maxn];int s[maxn];int main(){ int l,n; while (true){ cin>>l;

2017-06-30 21:41:53 311

原创 [vijos1944]琵琶湖(并查集)

题梗琵琶岛被分割为了 n x m 的格子图。每一块格子区域都有着确定的高度。不幸的是,琵琶湖的水位最近开始上涨了,第 i 年湖面的高度将上涨至 i 米。另外一方面,琵琶岛是由松软的土质形成的,且琵琶湖的湖水可以自由渗入到其中。也就是说,如果有一块格子区域的高度不超过当前的水位,则将被淹没。相连的未被淹没的格子(有着公共边的格子区域)将组成一块未被淹没的区域。求对于指定的某一年来说,

2017-04-14 18:34:26 470

原创 luogu P3143 钻石收藏(dp)

题目大意收集了N颗钻石(N她不会把两个大小相差K以上的钻石同时放在一个陈列架上(差值可等于K)现在给出K,请你帮Bessie确定她最多一共可以放多少颗钻石在这两个陈列架上。#include#includeusing namespace std;const int maxn=200100;int a[maxn],l[maxn],r[maxn];int main()

2017-03-27 19:58:54 380

原创 luoguP1379八数码难题

题目摘要在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变#include #include #include #include #includ

2017-03-18 20:43:50 238

原创 luoguP1092虫食算(dfs)

题目简要我们只考虑加法的虫食算。这里的加法是N进制加法,算式中三个数都有N位,允许有前导的0。其次,虫子把所有的数都啃光了,我们只知道哪些数字是相同的,我们将相同的数字用相同的字母表示,不同的数字用不同的字母表示。如果这个算式是N进制的,我们就取英文字母表午的前N个大写字母来表示这个算式中的0到N-1这N个不同的数字:但是这N个字母并不一定顺序地代表0到N-1。#include #inc

2017-03-18 20:39:31 240

原创 luoguP2439教室利用(贪心,排序,dp)

题目大意:读入所有演讲的起始和终止时间;计算最大的可能演讲总时间我们假设在某一演讲结束的瞬间我们就可以立即开始另一个演讲。#include#includeusing namespace std;struct data{ int x; int y;}a[5010];int f[5010]={0};int cmp(data a,data b){ if (a.x

2017-03-04 20:49:17 387

转载 RQNOJ 172 圣诞树(dp)

题目:这棵树有n层,每层有一件礼物,每件礼物都有一个价值,有的礼物还有一些连结线,与下层的礼物相连,领取礼物的规则如下:任选一件礼物,它的下面如果有连结线,则可以继续取它连结的礼物,以此类推,直至取到没有连结线的礼物才结束,你如果是第一个去取,怎样取才能获得最大的价值呢?var //Pascal不是重点a,b:array[0..100]of longint;map:ar

2017-02-18 13:56:28 547

原创 洛谷P1314聪明的质检员(二分)

小T 是一名质量监督员,最近负责检验一批矿产的质量。这批矿产共有 n 个矿石,从 1到n 逐一编号,每个矿石都有自己的重量 wi 以及价值vi 。检验矿产的流程是:1 、给定m 个区间[Li,Ri];2 、选出一个参数 W;3 、对于一个区间[Li,Ri],计算矿石在这个区间上的检验值Yi:这批矿产的检验结果Y 为各个区间的检验值之和。即:Y1+Y2...+

2017-02-18 13:31:55 274

原创 洛谷p2800又上锁妖塔

题目大意:一个塔,有n层,高度不同,小A可以选择跳,用一次可以让他向上跳一层或两层,但是每次跳后小A必须爬过至少一层才能再次跳跃,或者爬,每爬一层要消耗当前楼层高度的时间,求最短时间。#include#includeusing namespace std;int a[1001000],p[1001000],t[1001000];int main(){ int n; cin>>n;

2017-02-18 13:27:59 301

原创 luogu1090(堆,排序,贪心)合并果子

每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。例如有3种果子,数目依次为1,2,9。可以先将1、2堆合并,新堆数目为3,耗费体力为3。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。所以多多总共耗费体力=3+12=15。可

2016-11-19 10:51:23 510

原创 luogup1226取余运算||快速幂(数论)

输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。var b,p,k,t:int64;begin readln(b,p,k); write(b,'^',p,' mod ',k,'='); b:=b mod k; t:=1; while (p<>0) do

2016-11-12 21:26:30 449

原创 洛谷p1229遍历问题(树形结构)

题目大意:给前和中,求后序遍历#include#include#include#includeusing namespace std;int main(){ char s[255],s1[255]; scanf("%s",s); scanf("%s",s1); int len=strlen(s); int sum=1,k=0; for (

2016-11-12 21:21:45 437

原创 洛谷p2015苹果二叉树

有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点)这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1。我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。下面是一颗有4个树枝的树2 5 \ / 3 4 \ / 1 现在这颗树枝条太多了,需要剪枝。但是一些树枝上长有苹果。给定需要保留的树枝数量,求出最多能留住多少苹果

2016-11-12 21:04:31 318

原创 洛谷p1388算式(dp)

#includeusing namespace std;int x[100][100];int main(){ int n,r; cin>>n>>r; int a[1000]; for (int i=1;i<=n;i++) cin>>a[i]; for (int i=1;i<=n;i++) for (int j=i;j<=n;j++){ x[i][j]=x[i][j-1

2016-11-12 20:58:06 350

原创 洛谷P1896 互不侵犯king

#include #include #include #include #define ll long longusing namespace std;const int MAXN = 2000;const int MAXK = 1100;ll f[2][MAXN][MAXK],Ans;int N,K;int s[MAXN],num[MAXN];int Next[MAXN*1

2016-11-12 20:45:32 271

原创 新的开始,新的生活

开始啦开始啦,准备好了吗?坚持下去,会有结果的。刷题,走起。一只弱弱oier的心声。顺带庆祝一下我开通了博客,以后大家就可以找我玩了。ps:我觉得自己伪装小学生简直是完美

2016-10-24 22:42:18 258

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除