- 博客(87)
- 收藏
- 关注
原创 C++ double 型不能用%取余数
C++ double型不能实施%操作符,作为除数被除数都不可以,但可以用fmod函数,则作为除数被除数都可以,即fmod = numer - tquot * denom //tquot 是除法结果向“下”取整(向0的方向)的结果,denom是除数一个例子:/* fmod example */#include <stdio.h> /* printf */#include <math.h> /* fmod */ int main (){ pri
2020-08-23 15:01:41
6416
原创 大盗阿福(状态机模型)
阿福是一名经验丰富的大盗。趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。这条街上一共有 N 家店铺,每家店中都有一些现金。阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至。作为一向谨慎作案的大盗,阿福不愿意冒着被警察追捕的风险行窃。他想知道,在不惊动警察的情况下,他今晚最多可以得到多少现金?输入格式输入的第一行是一个整数 T,表示一共有 T 组数据。接下来的每组数据,第一行是一个整数 N ,表示一共有 N 家店铺。第二行是 N 个被空格分开的
2020-08-20 20:55:42
780
原创 搭配购买(DFS/并查集+01背包)
Joe觉得云朵很美,决定去山上的商店买一些云朵。商店里有 n 朵云,云朵被编号为 1,2,…,n,并且每朵云都有一个价值。但是商店老板跟他说,一些云朵要搭配来买才好,所以买一朵云则与这朵云有搭配的云都要买。但是Joe的钱有限,所以他希望买的价值越多越好。输入格式第 1 行包含三个整数 n,m,w,表示有 n 朵云,m 个搭配,Joe有 w 的钱。第 2∼n+1行,每行两个整数 ci,di 表示 i 朵云的价钱和价值。第 n+2∼n+1+m 行,每行两个整数 ui,vi,表示买 ui 就必须买
2020-08-19 20:06:34
207
原创 调手表(宽度优先搜索)
题目描述小明买了块高端大气上档次的电子手表,他正准备调时间呢。在 M78 星云,时间的计量单位和地球上不同,M78 星云的一个小时有 n 分钟。大家都知道,手表只有一个按钮可以把当前的数加一。在调分钟的时候,如果当前显示的数是 0 ,那么按一下按钮就会变成 1,再按一次变成 2 。如果当前的数是 n - 1,按一次后会变成 0 。作为强迫症患者,小明一定要把手表的时间调对。如果手表上的时间比当前时间多1,则要按 n - 1 次加一按钮才能调回正确时间。小明想,如果手表可以再添加一个按钮,表示把当前
2020-07-28 11:15:47
174
原创 交换瓶子(环)
有 N 个瓶子,编号 1∼N,放在架子上。比如有 5 个瓶子:2 1 3 5 4要求每次拿起 2 个瓶子,交换它们的位置。经过若干次后,使得瓶子的序号为:1 2 3 4 5对于这么简单的情况,显然,至少需要交换 2 次就可以复位。如果瓶子更多呢?你可以通过编程来解决。输入格式第一行包含一个整数 N,表示瓶子数量。第二行包含 N 个整数,表示瓶子目前的排列状况。输出格式输出一个正整数,表示至少交换多少次,才能完成排序。数据范围1≤N≤10000,输入样例1:53 1 2 5
2020-07-25 20:21:17
346
1
原创 [蓝桥杯2017决赛]磁砖样式(搜索)
题目描述小明家的一面装饰墙原来是 310 的小方格。现在手头有一批刚好能盖住2个小方格的长方形瓷砖。瓷砖只有两种颜色:黄色和橙色。小明想知道,对于这么简陋的原料,可以贴出多少种不同的花样来。小明有个小小的强迫症:忍受不了任何22的小格子是同一种颜色。(瓷砖不能切割,不能重叠,也不能只铺一部分。另外,只考虑组合图案,请忽略瓷砖的拼缝)显然,对于 23 个小格子来说,口算都可以知道:一共10种贴法。但对于 310 的格子呢?肯定是个不小的数目,请你利用计算机的威力算出该数字。输出输出一个整
2020-07-24 20:42:27
212
原创 7月9日训练
2019CCPC湖南全国邀请赛(广东省赛、江苏省赛)E.Hello XTCPCProblem DescriptionYou have a string of lowercase letters.You need to find as many sequence “xtCpc” as possible.But letters in the same position can only be used once。InputThe input file contains two lines.The f
2020-07-10 08:18:08
244
原创 7月8日训练总结
双指针算法牛客上遇到一个问题,可以用尺取+离散化做,但是尺取本质上也是双指针算法,所以复习一下双指针算法题目描述Farmer John’s N cows (1 <= N <= 100,000) are lined up in a row. Each cow is identified by an integer “breed ID” in the range 0…1,000,000,000; the breed ID of the ith cow in the lineup is B(i)
2020-07-08 23:30:31
184
原创 [牛客竞赛]rin和快速迭代
题目描述”数论真的太好玩了喵~“——hoshizora rinrin最近喜欢上了数论。然而数论实在太复杂了,她只能研究一些简单的问题。这天,她在研究正整数因子个数的时候,想到了一个“快速迭代”算法。设 为 的因子个数,将 迭代下去,rin猜想任意正整数最终都会变成 。例如: 。她希望你帮她验证一下。她会给你一个正整数 ,让你输出它在迭代过程中,第一次迭代成 的迭代次数。输入描述:一个正整数输出描述:一个正整数,为 迭代至 的次数。示例1输入12输出4说明12的
2020-07-07 22:02:30
219
原创 [宽度优先搜索]Acwing 1076. 迷宫问题
给定一个 n×n 的二维数组,如下所示:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。数据保证至少存在一条从左上角走到右下角的路径。输入格式第一行包含整数 n。接下来 n 行,每行包含 n 个整数 0 或 1,表示
2020-05-13 16:23:01
336
1
原创 [Acwing] 188. 武士风度的牛
农民John有很多牛,他想交易其中一头被Don称为The Knight的牛。这头牛有一个独一无二的超能力,在农场里像Knight一样地跳(就是我们熟悉的象棋中马的走法)。虽然这头神奇的牛不能跳到树上和石头上,但是它可以在牧场上随意跳,我们把牧场用一个x,y的坐标图来表示。这头神奇的牛像其它牛一样喜欢吃草,给你一张地图,上面标注了The Knight的开始位置,树、灌木、石头以及其它障碍的位置,除此之外还有一捆草。现在你的任务是,确定The Knight要想吃到草,至少需要跳多少次。The Knig
2020-05-13 15:30:02
156
1
原创 [Acwing] 1100. 抓住那头牛
农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点 N,牛位于点 K。农夫有两种移动方式:从 X 移动到 X−1 或 X+1,每次移动花费一分钟从 X 移动到 2∗X,每次移动花费一分钟假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?输入格式共一行,包含两个整数N和K。输出格式输出一个整数,表示抓到牛所花费的最少时间。数据范围0≤N,K≤105输入样例:5 17输出样例:4思路分析宽度优先队列最短路模型,就是更新d数组,记录各
2020-05-13 11:09:12
210
原创 [宽度优先搜索] Acwing 1098. 城堡问题
1 2 3 4 5 6 7 ############################# 1 # | # | # | | # #####---#####---#---#####---# 2 # # | # # # # # #---#####---#####---#####---# 3 # | | # # # # # #---#########---#####---#..
2020-05-12 10:26:13
253
原创 [宽度优先搜索] Acwing 1097 池塘计数
农夫约翰有一片 N∗M 的矩形土地。最近,由于降雨的原因,部分土地被水淹没了。现在用一个字符矩阵来表示他的土地。每个单元格内,如果包含雨水,则用”W”表示,如果不含雨水,则用”.”表示。现在,约翰想知道他的土地中形成了多少片池塘。每组相连的积水单元格集合可以看作是一片池塘。每个单元格视为与其上、下、左、右、左上、右上、左下、右下八个邻近单元格相连。请你输出共有多少片池塘,即矩阵中共有多少片相连的”W”块。输入格式第一行包含两个整数 N 和 M。接下来 N 行,每行包含 M 个字符,字符为
2020-05-11 10:42:51
314
原创 [算法竞赛进阶指南] Acwing 132. 小组队列
有n个小组要排成一个队列,每个小组中有若干人。当一个人来到队列时,如果队列中已经有了自己小组的成员,他就直接插队排在自己小组成员的后面,否则就站在队伍的最后面。请你编写一个程序,模拟这种小组队列。输入格式:输入将包含一个或多个测试用例。对于每个测试用例,第一行输入小组数量t。接下来t行,每行输入一个小组描述,第一个数表示这个小组的人数,接下来的数表示这个小组的人的编号。编号是0到99...
2020-04-29 10:54:48
190
原创 [算法竞赛进阶指南] Acwing 129. 火车进栈
这里有n列火车将要进站再出站,但是,每列火车只有1节,那就是车头。这n列火车按1到n的顺序从东方左转进站,这个车站是南北方向的,它虽然无限长,只可惜是一个死胡同,而且站台只有一条股道,火车只能倒着从西方出去,而且每列火车必须进站,先进后出。也就是说这个火车站其实就相当于一个栈,每次可以让右侧头火车进栈,或者让栈顶火车出站。车站示意如图: 出站<—— <——进...
2020-04-28 22:35:03
468
原创 [算法竞赛进阶指南] Acwing 128. 编辑器
你将要实现一个功能强大的整数序列编辑器。在开始时,序列是空的。编辑器共有五种指令,如下:1、“I x”,在光标处插入数值x。2、“D”,将光标前面的第一个元素删除,如果前面没有元素,则忽略此操作。3、“L”,将光标向左移动,跳过一个元素,如果左边没有元素,则忽略此操作。4、“R”,将光标向右移动,跳过一个元素,如果右边没有元素,则忽略次操作。5、“Q k”,假设此刻光标之前的序列为a...
2020-04-28 10:55:42
331
原创 jsp页面include静态文件html时导致的乱码问题.
<jsp:include page=“我只能是jsp文件”/>这样的用法只能是在页面中导入jsp文件.如果想要导入html文件的话,就可以使用<%@ include file=“html文件”%>如果出现乱码情况,首先确保jsp和引入的html编码一致,是utf-8的.如果仍然是乱码则是由于pageEncoding设置问题导致翻译jsp时码。有两种方式处理:方法一:...
2020-04-27 20:21:11
278
原创 798. 差分矩阵
输入一个n行m列的整数矩阵,再输入q个操作,每个操作包含五个整数x1, y1, x2, y2, c,其中(x1, y1)和(x2, y2)表示一个子矩阵的左上角坐标和右下角坐标。每个操作都要将选中的子矩阵中的每个元素的值加上c。请你将进行完所有操作后的矩阵输出。输入格式第一行包含整数n,m,q。接下来n行,每行包含m个整数,表示整数矩阵。接下来q行,每行包含5个整数x1, y1, x2...
2020-04-25 11:39:22
239
原创 Acwing 797. 差分
输入一个长度为n的整数序列。接下来输入m个操作,每个操作包含三个整数l, r, c,表示将序列中[l, r]之间的每个数加上c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数序列。接下来m行,每行包含三个整数l,r,c,表示一个操作。输出格式共一行,包含n个整数,表示最终序列。数据范围1≤n,m≤100000,1≤l≤r≤n,...
2020-04-25 11:09:39
201
原创 Acwing 789. 数的范围
给定一个按照升序排列的长度为n的整数数组,以及 q 个查询。对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。如果数组中不存在该元素,则返回“-1 -1”。输入格式第一行包含整数n和q,表示数组长度和询问个数。第二行包含n个整数(均在1~10000范围内),表示完整数组。接下来q行,每行包含一个整数k,表示一个询问元素。输出格式共q行,每行包含两个整数,表示所求...
2020-04-25 10:50:12
219
原创 AcWing 1230. K倍区间
给定一个长度为 N 的数列,A1,A2,…AN,如果其中一段连续的子序列 Ai,Ai+1,…Aj 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K 倍区间。你能求出数列中总共有多少个 K 倍区间吗?输入格式第一行包含两个整数 N 和 K。以下 N 行每行包含一个整数 Ai。输出格式输出一个整数,代表 K 倍区间的数目。数据范围1≤N,K≤100000,1≤Ai≤10000...
2020-04-25 10:38:12
144
原创 Acwing 1227. 分巧克力
儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 N 块巧克力,其中第 i 块是 Hi×Wi 的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数大小相同例如一块 6×5 的巧克力可以切出 6 块 2×2 的巧克力或者 2 块 3×3 的巧克力。当然小朋友们...
2020-04-24 21:55:49
135
原创 Acwing 730. 机器人跳跃问题
机器人正在玩一个古老的基于DOS的游戏。游戏中有N+1座建筑——从0到N编号,从左到右排列。编号为0的建筑高度为0个单位,编号为 i 的建筑高度为H(i)个单位。起初,机器人在编号为0的建筑处。每一步,它跳到下一个(右边)建筑。假设机器人在第k个建筑,且它现在的能量值是E,下一步它将跳到第k+1个建筑。如果H(k+1)>E,那么机器人就失去H(k+1)-E的能量值,否则它将得到E...
2020-04-24 21:31:54
272
原创 796. 子矩阵的和
输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1, y1, x2, y2,表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。输入格式第一行包含三个整数n,m,q。接下来n行,每行包含m个整数,表示整数矩阵。接下来q行,每行包含四个整数x1, y1, x2, y2,表示一组询问。输出格式共q行,每行输出一个询问的结果。数据范围1≤n,m...
2020-04-24 21:14:58
296
原创 Acwing 795. 前缀和
输入一个长度为n的整数序列。接下来再输入m个询问,每个询问输入一对l, r。对于每个询问,输出原序列中从第l个数到第r个数的和。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数数列。接下来m行,每行包含两个整数l和r,表示一个询问的区间范围。输出格式共m行,每行输出一个询问的结果。数据范围1≤l≤r≤n,1≤n,m≤100000,−1000≤数列中元素的值≤1...
2020-04-24 20:57:20
218
原创 Acwing 790. 数的三次方根
给定一个浮点数n,求它的三次方根。输入格式共一行,包含一个浮点数n。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留6位小数。数据范围−10000≤n≤10000输入样例:1000.00输出样例:10.000000思路分析浮点数二分模板题#include<bits/stdc++.h>using namespace std;double n;...
2020-04-24 20:40:58
147
原创 [模板]二分查找
二分整数二分模板:// 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用:(区间是右半段)int bsearch(int l, int r){ while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; // check()...
2020-04-24 20:39:09
104
原创 编程杂谈
有关递归与递推:写dfs的时候会用到递归,所谓递归与递推反映到最终计算机的指令上来看,都是一模一样的。只不过是写法不同而已,人的思维的不同决定了写法的不同。同样是求根的状态,可以自底向上推,就是递推,如果自顶向下推,就是递归。但是计算机执行的时候还是自底向上这种。先从叶子开始,然后逐渐回溯。...
2020-04-07 21:28:54
109
原创 [数据结构栈] L2-032 彩虹瓶
题目描述彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N)。现在工厂里有每种颜色的小球各一箱,工人需要一箱一箱地将小球从工厂里搬到装填场地。如果搬来的这箱小球正好是可以装填的颜色,就直接拆箱装填;如果不是,就把箱子先码放在一个临时货架上,码放的方法就是...
2020-03-24 16:26:06
276
原创 [整数拆分] Ignatius and the Princess III
Problem Description“Well, it seems the first problem is too easy. I will let you know how foolish you are later.” feng5166 says.“The second problem is, given an positive integer N, we define an equa...
2020-03-21 20:37:21
186
原创 [单调栈]Cow Acrobats
Farmer John’s N (1 <= N <= 50,000) cows (numbered 1…N) are planning to run away and join the circus. Their hoofed feet prevent them from tightrope walking and swinging from the trapeze (and thei...
2020-03-06 11:21:19
179
原创 [单调队列]滑动窗口
P1886 滑动窗口 /【模板】单调队列题目描述有一个长为 n 的序列 a,以及一个大小为 k 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。解题思路如果按照暴力方法做的话,每一次判断相邻的k个数的最大值和最小值,复杂度为O(n*k),肯定会超时,因此就想到把...
2020-02-29 20:33:29
629
原创 [水题]Array with Odd Sum
You are given an array a consisting of n integers.In one move, you can choose two indices 1≤i,j≤n such that i≠j and set ai:=aj. You can perform such moves any number of times (possibly, zero). You ca...
2020-02-07 17:33:04
272
原创 Linux中ls的用法
在linux系统中,可以说一切皆文件。文件类型包含:普通文件,目录,字符设备文件,块设备文件,符号链接文件等我们可以用file这个命令来查看文件的属性:这里可以看到1.sh是个脚本文件下面开始介绍下ls这个命令的常用的用法:ls的全称是list,ls默认列出当前目录下的所有目录和文件不包含隐藏文件;ls 后面还可以跟很多参数,具体大家可以man ls 一下,这里就不一一介绍,下面我们来看...
2020-02-07 16:52:11
602
原创 字符串和数字的相互转化
利用 sprintf()函数和sscanf()函数sprintf() 用于将数字转化为字符串#include #include using namespace std;int main(){char str[10];int a=1234321;//将整数转化为字符串sprintf(str,"%d",a);int len=strlen(str);cout<<“字符...
2020-02-05 09:28:20
143
原创 概率论与数理统计(一)
还不会的地方:大数定律,第六章,3,4章。连续型函数的概率密度函数离散型的比较好求,直接带值就可以,重点是连续型的。函数的概率密度函数,就是告诉你X的分布,让你求Y=g(X)的分布。公式法求一维概率密度函数首先根据x的区间求出y的区间,然后根据y=g(x)求出其反函数x=h(y)和x的导数。把x=h(y)带到X的概率密度函数里边,然后再乘一个导数的绝对值,就是Y的概率密度函数。不...
2020-01-04 19:47:49
1928
原创 概率论与数理统计
概率论与数理统计分成两大块,前一大块就是研究随机变量这个东西,一维的,二维的,连续的,离散的。研究他们的分布函数,概率密度函数或是分布律,然后有随机变量的性质和一些常见的概率分布。后边这一大块主要就是讲怎么通过一些样本得到这个随机变量。参数估计讲的就是估计随机变量的参数,分为点估计和区间估计。点估计就是给出一个值,而区间估计是给出一个区间。点估计分为矩估计和极大似然法估计。矩估计就是让样本...
2019-12-12 20:28:42
1320
原创 HRBUST - 1955 数独 (DFS递归)
数独应该是一个大家都玩过的游戏,说的就是在一个99的方格中填入一些数字,符合以下规则:1.每一列或每一行中1-9只能出现一次。2.这个数独划分成的9个小的33的方格矩阵内,从1-9的每个数只能出现一次。Input输入数据的第一行包括一个整数T,表示有T组测试数据。每组数据由9行组成,每行由9个整数或者组成,其中表示空白的格子。Output每组数据输出9行,每行9个整数,表示整个数独。...
2019-12-07 22:35:08
174
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅