
lanqiaobei
c ++
SUGA no sugar
我也没有很懒呀,就写一点吧
展开
-
费马小定理
费马小定理:假如p是质数,且gcd(a,p)=1(a,p互质),那么 a^(p-1)≡1(mod p)。说我文章质量过低发不出去,凑点字数,读n的时候可以转化成字符串,要是有硬刚取余是不是就能想到这个原创 2022-04-01 21:19:48 · 270 阅读 · 0 评论 -
798.差分矩阵
输入一个n 行m 列的整数矩阵,再输入q 个操作,每个操作包含五个整数x1,y1,x2,y2,c 其中(x1,y1) 和(x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。每个操作都要将选中的子矩阵中的每个元素的值加上c请你将进行完所有操作后的矩阵输出。输入格式第一行包含整数n,m,q接下来n 行,每行包含m 个整数,表示整数矩阵。接下来q 行,每行包含5 个整数x1,y1,x2,y2,c 表示一个操作。输出格式共n 行,每行m 个整数...原创 2022-03-30 21:13:49 · 454 阅读 · 0 评论 -
797.差分
输入一个长度为n 的整数序列。接下来输入m 个操作,每个操作包含三个整数l,r,c ,表示将序列中 [l,r]之间的每个数加上 c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数n 和m 。第二行包含n 个整数,表示整数序列。接下来m 行,每行包含三个整数 l,r,c,表示一个操作。输出格式共一行,包含n 个整数,表示最终序列。数据范围1≤n,m≤1000001≤l≤r≤n−1000≤c≤1000−1000≤整数序列中元素的...原创 2022-03-30 20:22:09 · 445 阅读 · 0 评论 -
1237.螺旋折线
如下图所示的螺旋折线经过平面上所有整点恰好一次。对于整点(X,Y ),我们定义它到原点的距离dis(X,Y) 是从原点到(X,Y) 的螺旋折线段的长度。例如dis(0,1)=3,dis(−2,−1)=9给出整点坐标(X,Y) ,你能计算出dis(X,Y) 吗?输入格式包含两个整数X,Y输出格式输出一个整数,表示dis(X,Y)数据范围−109≤X,Y≤1e9输入样例:0 1输出样例:3#include ...原创 2022-03-29 22:08:31 · 470 阅读 · 0 评论 -
1215. 小朋友排队
n个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。如果某个小朋友第一次被要求交换,则他的不高兴程度增加1 ,如果第二次要求他交换,则他的不高兴程度增加2 (即不高兴程度为 3),依次类推。当要求某个小朋友第 k次交换时,他的不高兴程度增加 k。请问,要让所有小朋友按从低到高排队,他们的不高兴程度之和最小是多少。如果有两个小朋友身高一样,则他们谁站在谁前面...原创 2022-03-29 21:13:28 · 145 阅读 · 0 评论 -
1270. 数列区间最大值
输入一串数字,给你M 个询问,每次询问就给你两个数字X,Y 要求你说出X 到Y 这段区间内的最大数。输入格式第一行两个整数N,M 表示数字的个数和要询问的次数;接下来一行为N 个数;接下来M 行,每行都有两个整数X,Y输出格式输出共M 行,每行输出一个数。数据范围1≤N≤1e51≤M≤1e61≤X≤Y≤N数列中的数字均不超过2^31 − 1输入样例:10 23 2 4 5 6 8 1 2 9 71 43 8输出样例:...原创 2022-03-28 21:36:07 · 1339 阅读 · 0 评论 -
1233. 全球变暖
你有一张某海域N×N 像素的照片,”.”表示海洋、”#”表示陆地,如下所示:........##.....##........##...####....###........其中”上下左右”四个方向上连在一起的一片陆地组成一座岛屿,例如上图就有22座岛屿。由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。例如上图中的海域未来会变成如下样子:....原创 2022-03-28 21:30:36 · 91 阅读 · 0 评论 -
1240. 完全二叉树的权值
给定一棵包含N 个节点的完全二叉树,树上每个节点都有一个权值,按从上到下、从左到右的顺序依次是A1,A2,⋅⋅⋅AN ,如下图所示:现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。注:根的深度是1 。输入格式第一行包含一个整数N 。第二行包含N 个整数A1,A2,⋅⋅⋅AN输出格式输出一个整数代表答案。数据范围1≤N≤1e5−105≤Ai≤1e5输入样...原创 2022-03-23 20:30:58 · 159 阅读 · 0 评论 -
1224.交换瓶子
有N 个瓶子,编号1∼N ,放在架子上。比如有5 个瓶子:2 1 3 5 4要求每次拿起2 个瓶子,交换它们的位置。经过若干次后,使得瓶子的序号为:1 2 3 4 5对于这么简单的情况,显然,至少需要交换2 次就可以复位。如果瓶子更多呢?你可以通过编程来解决。输入格式第一行包含一个整数N ,表示瓶子数量。第二行包含N 个整数,表示瓶子目前的排列状况。输出格式输出一个正整数,表示至少交换多少次,才能完成排序。数据范围1≤N≤1000...原创 2022-03-23 19:57:21 · 126 阅读 · 0 评论 -
1113. 红与黑
有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下左右四个方向)的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入格式输入包括多个数据集合。每个数据集合的第一行是两个整数WW和HH,分别表示xx方向和yy方向瓷砖的数量。在接下来的HH行中,每行包括WW个字符。每个字符表示一块瓷砖的颜色,规则如下1)‘.’:黑色的瓷砖;2)‘#’:红色的瓷砖;3)‘@’:黑色的瓷砖,并且你站在这块瓷...原创 2022-03-22 21:42:53 · 183 阅读 · 0 评论 -
1101. 献给阿尔吉侬的花束
阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。迷宫用一个R×CR×C的字符矩阵来表示。字符 S 表示阿尔吉侬所在的位置,字符 E 表示奶酪所在的位置,字符 # 表示墙壁,字符 . 表示可以通行。阿尔吉侬在 1 个单位时间内可以从当前的位置走到它上下左右四个方向上的任意一个位置,但不能走出..原创 2022-03-28 21:30:48 · 394 阅读 · 1 评论 -
4378 选取数对
给定一个长度为nn的整数数列a1,a2,…,ana1,a2,…,an。请你选择kk个数对[l1,r1],[l2,r2],…,[lk,rk][l1,r1],[l2,r2],…,[lk,rk],要求所选数对满足:1≤l1≤r1<l2≤r2<…<lk≤rk≤n。 对于1≤i≤k ,ri−li+1=m 均成立。 设sum=∑(i=1k)∑(j=li,ri )aj, sum的值应尽可能大。请你输出sum 的最大可能值。输入格式第一行包含三个整数n,m,k...原创 2022-03-21 20:46:44 · 153 阅读 · 0 评论 -
p1443 马的遍历
题目描述有一个n \times mn×m的棋盘,在某个点(x, y)(x,y)上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。输入格式输入只有一行四个整数,分别为n, m, x, yn,m,x,y。输出格式一个 n×m的矩阵,代表马到达某个点最少要走几步(左对齐,宽5格,不能到达则输出-1 )。输入输出样例输入3 3 1 1输出0 3 2 3 -1 1 2 1 4 说...原创 2022-03-21 19:12:33 · 224 阅读 · 0 评论 -
p1219 八皇后
题目描述一个如下的6 \times 66×6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列2\ 4\ 6\ 1\ 3\ 5246135来描述,第ii个数字表示在第ii行的相应位置有一个棋子,如下:行号1\ 2\ 3\ 4\ 5\ 6123456列号2\ 4\ 6\ 1\ 3\ 5246135这只是棋子放置的一个解。请编一个程序找出所有棋...原创 2022-03-21 19:10:06 · 125 阅读 · 0 评论 -
p1135 奇怪的电梯
题目描述有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第ii层楼(1 \le i \le N1≤i≤N)上有一个数字K_iKi(0 \le K_i \le N0≤Ki≤N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:3, 3, 1, 2, 53,3,1,2,5代表了K_iKi(K_1=3K1=3,K_2=3K2=3,……),从11楼开始。在11楼,按“上”可以到44...原创 2022-03-21 19:08:34 · 138 阅读 · 0 评论 -
1265. 数星星
天空中有一些星星,这些星星都在不同的位置,每个星星有个坐标。如果一个星星的左下方(包含正左和正下)有kk颗星星,就说这颗星星是kk级的。例如,上图中星星55是33级的(1,2,41,2,4在它左下),星星2,42,4是11级的。例图中有11个00级,22个11级,11个22级,11个33级的星星。给定星星的位置,输出各级星星的数目。换句话说,给定NN个点,定义每个点的等级是在该点左下方(含正左、正下)的点的数目,试统计每个等级有...原创 2022-03-18 17:10:03 · 153 阅读 · 0 评论 -
1264. 动态求连续区间和
给定nn个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列[a,b][a,b]的连续和。输入格式第一行包含两个整数nn和mm,分别表示数的个数和操作次数。第二行包含nn个整数,表示完整数列。接下来mm行,每行包含三个整数k,a,bk,a,b(k=0k=0,表示求子数列[a,b][a,b]的和;k=1k=1,表示第aa个数加bb)。数列从11开始计数。输出格式输出若干行数字,表示k=0k=0时,对应的子数列[a,b][a,b...原创 2022-03-17 21:55:25 · 127 阅读 · 0 评论 -
1231.航班问题
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;int get_seconds(int h, int m, int s){ return h * 3600 + m * 60 + s;}int get_time(){ string line; getline(cin, lin.原创 2022-03-16 21:15:13 · 92 阅读 · 0 评论 -
1229. 日期问题
小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗?输入格式原创 2022-03-16 20:35:41 · 83 阅读 · 0 评论 -
1219. 移动距离
X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3…当排满一行时,从下一行相邻的楼往反方向排号。比如:当小区排号宽度为 6时,开始情形如下:1 2 3 4 5 612 11 10 9 8 713 14 15 .....我们的问题是:已知了两个楼号m 和 n,需要求出它们之间的最短移动距离(不能斜线方向移动)。输入格式输入共一行,包含三个整数w,m,n ,w 为排号宽度,m,n 为待计算的楼号。输出格式输...原创 2022-03-14 21:37:06 · 203 阅读 · 0 评论 -
466. 回文日期
在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。牛牛习惯用8 位数字表示一个日期,其中,前4 位代表年份,接下来2 位代表月份,最后 2位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。牛牛认为,一个日期是回文的,当且仅当表示这个日期的8 位数字是回文的。现在,牛牛想知道:在他指定的两个日期之间(包含这两个日期本身),有多少个真实存在的日期是回文的。一个8 位数字是回文的,当且仅当对于所有的i 1≤i≤8 从左向右...原创 2022-03-14 20:54:00 · 78 阅读 · 0 评论 -
1204. 错误票据
某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。输入格式第一行包含整数N ,表示后面共有N 行数据。接下来N 行,每行包含空格分开的若干个(不大于100个)正整数(不大于100000),每个整数代表一个ID号。输出格...原创 2022-03-14 18:07:29 · 114 阅读 · 0 评论 -
1236. 递增三元组
给定三个整数数组A=[A1,A2,…AN]B=[B1,B2,…BN]C=[C1,C2,…CN]请你统计有多少个三元组(i,j,k)(i,j,k)满足:1≤i,j,k≤N Ai<Bj<Ck输入格式第一行包含一个整数N 。第二行包含N 整数A1,A2,…AN第三行包含N 整数B1,B2,…BN第四行包含N 整数C1,C2,…CN输出格式一个整数表示答案。数据范围1≤N≤1e50≤Ai,Bi,Ci≤1e53...原创 2022-03-14 17:38:23 · 296 阅读 · 0 评论 -
1210. 连号区间数
小明这些天一直在思考这样一个奇怪而有趣的问题:在1∼N 的某个排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间[L,R][L,R]里的所有元素(即此排列的第L 个到第R 个元素)递增排序后能得到一个长度为R−L+1 的“连续”数列,则称这个区间连号区间。当N 很小的时候,小明可以很快地算出答案,但是当N 变大的时候,问题就不是那么简单了,现在小明需要你的帮助。输入格式第一行是一个正整数N ,表示排列的规模。第二行是N 个不同的数字Pi ,表示这...原创 2022-03-14 16:04:46 · 100 阅读 · 0 评论 -
1211. 蚂蚁感冒
长100厘米的细长直杆子上有 n只蚂蚁。它们的头有的朝左,有的朝右。每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。输入格式第一行输入一个整数n, 表示蚂蚁的总数。接着的一行是n个用空格分开的整数Xi,Xi的绝对值表示蚂蚁离开杆子左边端点的距离。正值表示头朝右,...原创 2022-03-11 21:37:32 · 75 阅读 · 0 评论 -
1205. 买不到的数目
小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。输入格式两个正整数n,m,表示每种包装中糖的颗数。输出格式一个正整数,表示最大不能买到的糖数。数据范围.原创 2022-03-11 21:13:43 · 145 阅读 · 0 评论 -
1230. k倍空间
#include <bits/stdc++.h>using namespace std;int n, k;const int N = 1e5 + 10;long long a[N];//开long longint cnt[N];int main(){ cin >> n >> k; for(int i = 0; i < n; i ++) { cin >> a[i]; if(i) a[i] +...原创 2022-03-07 21:39:30 · 68 阅读 · 0 评论 -
99. 激光炸弹
地图上有N个目标,用整数Xi,Yi 表示目标在地图上的位置,每个目标都有一个价值Wi。注意:不同目标可能在同一位置。现在有一种新型的激光炸弹,可以摧毁一个包含R×R 个位置的正方形内的所有目标。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个正方形的边必须和x,y轴平行。求一颗炸弹最多能炸掉地图上总价值为多少的目标。输入格式第一行输入正整数N和R,分别代表地图上的目标数目和正方形的边长,数据用空格隔开。接下来N行,每行输入一组数据,...原创 2022-03-07 20:50:00 · 95 阅读 · 0 评论 -
1227. 分巧克力
儿童节那天有 K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 NN 块巧克力,其中第 i 块是 Hi×Wi的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数 大小相同例如一块 6×5 的巧克力可以切出 6 块 2×2 的巧克力或者 2 块 3×3 的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?输入格式第一行包含两个整数原创 2022-03-07 20:08:06 · 85 阅读 · 0 评论 -
1221. 四平方和
四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和。如果把0包括进去,就正好可以表示为4个数的平方和。比如:5=0^2+0^2+1^2+2^27=1^2+1^2+1^2+2^2对于一个给定的正整数,可能存在多种平方和的表示法。要求你对4个数排序:0≤a≤b≤c≤d并对所有的可能表示法按a,b,c,d 为联合主键升序排列,最后输出第一个表示法。输入格式输入一个正整数N。输出格式输出4个非负整数,按从小到大排序,中间...原创 2022-03-07 19:45:27 · 390 阅读 · 0 评论 -
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−H(k+1)的能量值。游戏目标是到达第N个建筑...原创 2022-03-07 11:39:43 · 108 阅读 · 0 评论 -
789. 数的范围
##懒得调,所有数字都变成两个了,就酱紫给定一个按照升序排列的长度为nn的整数数组,以及qq个查询。对于每个查询,返回一个元素kk的起始位置和终止位置(位置从00开始计数)。如果数组中不存在该元素,则返回-1 -1。输入格式第一行包含整数nn和qq,表示数组长度和询问个数。第二行包含nn个整数(均在1∼100001∼10000范围内),表示完整数组。接下来qq行,每行包含一个整数kk,表示一个询问元素。输出格式共qq行,每行包含两...原创 2022-03-03 20:31:15 · 139 阅读 · 0 评论 -
116 飞行员兄弟
question:“飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有16个把手的冰箱。已知每个把手可以处于以下两种状态之一:打开或关闭。只有当所有把手都打开时,冰箱才会打开。把手可以表示为一个4×4的矩阵,您可以改变任何一个位置[i,j]上把手的状态。但是,这也会使得第i行和第j列上的所有把手的状态也随着改变。请你求出打开冰箱所需的切换把手的次数最小值是多少。输入格式输入一共包含四行,每行包含四个把手的初始状态。符号+表示把手处于闭合状态,而符号-表...原创 2022-03-02 18:47:05 · 78 阅读 · 0 评论 -
1209 带分数
100100可以表示为带分数的形式:100=3+69258714100=3+69258714还可以表示为:100=82+3546197100=82+3546197注意特征:带分数中,数字1∼91∼9分别出现且只出现一次(不包含00)。类似这样的带分数,100100有1111种表示法。输入格式一个正整数。输出格式输出输入数字用数码1∼91∼9不重复不遗漏地组成带分数表示的全部种数。数据范围1≤N<1061≤N<106输入样例1:100...原创 2022-03-01 20:50:03 · 120 阅读 · 0 评论 -
递归实现组合型枚举
从 1∼n这 n 个整数中随机选出 m 个,输出所有可能的选择方案。输入格式两个整数 n,m在同一行用空格隔开。输出格式按照从小到大的顺序输出所有方案,每行 1 个。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如 1 3 5 7 排在 1 3 6 8 前面)。数据范围n>00≤m≤nn+(n−m)≤25输入样例:5 3输出样例:1 2 3 1 2 4 1 2 5原创 2022-02-24 20:57:40 · 91 阅读 · 0 评论 -
费解的开关
question:你玩过“拉灯”游戏吗?25盏灯排成一个5×5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字1表示一盏开着的灯,用数字0表示关着的灯。下面这种状态1011101101101111000011011在改变了最左上角的灯的状态后将变成:0111111101101111000011011...原创 2022-02-24 20:00:11 · 3302 阅读 · 0 评论 -
递归实现排列型枚举
question:把1∼n这n 个整数排成一行后随机打乱顺序,输出所有可能的次序。输入格式一个整数n。输出格式按照从小到大的顺序输出所有方案,每行1个。首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。数据范围1≤n≤9输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1#include <iostream>#include ...原创 2022-02-22 19:55:33 · 297 阅读 · 0 评论 -
递归实现指数型枚举
#include <iostream>using namespace std;int main(){ int n = 6; while(n){ int m = n >> 1 & 1; cout << m << endl; n >>= 1; } return 0;}*顺序从前往后原创 2022-02-21 19:36:39 · 121 阅读 · 0 评论