自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 【模板】线段树 1

区间修改+区间查询#include<cstdio>#define LL long longusing namespace std;LL a[100003],//原数列 tree[400003],//线段树 delta[400003];//标记void update(int now){//用儿子们来更新自己 tree[now]=tree[now<<1]+tr

2017-02-17 17:13:56 448

原创 【模板】后缀数组

处理一个字符串中的所有后缀应用: -模式串匹配 -计算LCP(两个后缀之间的最长公共前缀)#include <bits/stdc++.h>using namespace std;char s[1000003];int len, cc[1000003], rank[1000003],//从第x位开始的后缀排第几 height[1000003],//跟排名前一位的字符串有

2017-01-24 17:50:39 196

原创 【模板】树状数组 2

区间修改+单点查询在[x,y]区间上加k 另开一个数组 在x处+k,y+1处-k 该数组对应位置的前缀和即为改数字的变化量#include<cstdio>using namespace std;int n,//点数 m,//操作数 C[500003],//树状数组 //树状数组用以求前缀和 a[500003];//原数列 void add(int loc,

2017-01-21 18:15:03 293

原创 【模板】树状数组 1

单点修改+区间查询#include<cstdio>using namespace std;int n,//点数 m,//操作数 C[500000];//树状数组 void add(int loc,int value){//单点修改 for(int i=loc;i<=n;i+=i&(-i)) C[i]+=value;}int query(int l

2017-01-21 17:50:31 254

转载 位运算(整理)

& 与 都为1 结果为1| 或 一个为1 结果为1^ 异或 不相同 结果为1,相同结果 为0<< 左移 >>右移——判断a第i位是否为1 (1<<(i-1))&a将a第i位更改成1 a|(1<<(i-1))删除a最靠右的1 a&(a-1)

2017-01-04 21:41:16 398

原创 【NOI】20 求一元二次方程的根

描述 利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2+ bx + c =0的根,其中a不等于0。输入 输入一行,包含三个浮点数a, b, c(它们之间以一个空格分开),分别表示方程ax2 + bx + c =0的系数。 输出 输出一行,表示方程的解。 若b2 = 4 * a

2017-01-04 21:14:12 6484

原创 【NOI】1818 红与黑

描述 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 输入 包括多个数据集合。每个数据集合的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下 1)‘.’:黑色的瓷砖; 2)

2017-01-02 20:48:25 783

原创 【NOI】6044 鸣人和佐助

描述 佐助被大蛇丸诱骗走了,鸣人在多少时间内能追上他呢?已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置。地图上的每个位置都可以走到,只不过有些位置上有大蛇丸的手下,需要先打败大蛇丸的手下才能到这些位置。鸣人有一定数量的查克拉,每一个单位的查克拉可以打败一个大蛇丸的手下。假设鸣人可以往上下左右四个方向移动,每移动一个距离需要花费1个单位时间,打败大蛇丸的手下不需要时间。如果鸣人查克拉消耗完

2017-01-02 19:04:19 751

原创 【NOI】6266 取石子游戏

描述 有两堆石子,两个人轮流去取.每次取的时候,只能从较多的那堆石子里取,并且取的数目必须是较少的那堆石子数目的整数倍.最后谁能够把一堆石子取空谁就算赢. 比如初始的时候两堆石子的数目是25和7 25 7 –> 11 7 –> 4 7 –> 4 3 –> 1 3 –> 1 0 选手1取 选手2取 选手1取 选手2取 选手1取

2016-12-28 17:09:39 1459

原创 【NOI】7218 献给阿尔吉侬的花束

描述 阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。迷宫用一个R×C的字符矩阵来表示。字符S表示阿尔吉侬所在的位置,字符E表示奶酪所在的位置,字符#表示墙壁,字符.表示可以通行。阿尔吉侬在1个

2016-12-28 16:40:18 927

原创 【NOI】6264 走出迷宫

描述 当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单。 假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路。输入 第一行是两个整数n和m(1<=n,m<=100),表示迷宫的行数和列数。 接下来n行,每行一个长为m的字符串,表示整个迷宫的布局。字符’.’表示空地,’#’表示墙,’S’表示起点,’T’表示出口。

2016-12-28 16:38:32 2535

原创 【NOI】7084 迷宫问题

描述 定义一个二维数组表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。输入 一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。 输出 左上角到右下角的最短路径-隔壁的走迷宫记个前驱#include<cstdio>#include<cstring>using namespace std;int r,c;i

2016-12-28 16:35:59 890

原创 【NOI】2753 走迷宫

描述 一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走;有的格子是空地,可以走。 给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到)。只能在水平方向或垂直方向走,不能斜着走。 输入 第一行是两个整数,R和C,代表迷宫的长和宽。( 1<= R,C <= 40) 接下来是R行,每行C个字符,代表整个迷宫。 空地格子用’.’表示,有障碍物的格子用’#’表示。 迷宫

2016-12-28 16:33:07 2910

原创 【NOI】2971 抓住那头牛

描述 农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式:1、从X移动到X-1或X+1,每次移动花费一分钟 2、从X移动到2*X,每次移动花费一分钟假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?输入 两个整数,N和K 输出 一个整数,农夫抓到牛所要花费的

2016-12-28 16:29:27 889

空空如也

空空如也

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

TA关注的人

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