- 博客(125)
- 收藏
- 关注
原创 51nod3128 小明爱上课
根据题意,对于每个课程,我们可以上 1 到 m 分钟的任何一种情况,但是这 1 到 m 分钟的情况不能叠加,那么就不是完全背包了,而且之后的课程可以叠加上去,那么对于每个课程的每一分钟,我们可以“并行”处理,意思就是对于每一分钟,我们把当前课程的所有情况在这一分钟的贡献都算出来,这样就保证了对于一个课程,我们只会使用它的一种情况,而且不影响后面课程的叠加,那么这就是分组背包了,时间复杂度。不同时长的奖励,题目数据中会给出。对于 100% 的数据, 1≤n≤100 , 1≤m≤100 1≤奖励值≤1000。
2025-03-06 09:56:41
427
原创 51nod1034 骨牌覆盖 V3
在 m×n 的一个长方形方格中,用一个 1×2 的骨牌排满方格。问有多少种不同的排列方法。2 个数 n, m,中间用空格分隔 (2≤n,m≤100)解析和代码还是给会做的大佬来解决吧,我emo了,QAQ。例如: 3×2 的方格,共有 3 种不同的排法。
2025-02-18 07:56:04
165
原创 51nod3432 排列游戏
发现肯定有解,因为若极限情况 k=n−1 ,则 1,n,2,n−1,3,n−2 ,这样可以保证相邻两个数的差值都是不同的值,所以想到构造方法就是这样,构造完 n+1 个数,剩下的都让他相邻即可(即差值为 1)。注意如果 k 是偶数那最终从大到小,如果 k 是偶数那最终要由小到大构造。小 P 发现自己不会做了,请你帮帮他。(其中 1≤k<n≤。构造一个长度为 n 的排列。一行 n 个整数表示排列 p。小 P 非常喜欢摆弄排列。共有 k 种不同的取值。一行两个整数 n,k。
2025-02-17 13:19:22
172
原创 51nod3231 小明和二分图
(这里给出一个二分图的通俗定义:顶点集 V 可分割为两个互不相交的子集 A,B ,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻,满足这样条件的图叫二分图。小明最近在学习二分图,由于小明现在还是初级阶段,什么都不会,这天小明的老师给小明这样一道题目,题目描述如下。根据二分图的定义,我们用 DFS 对图的顶点进行染色,第一个访问的点为白色,与白色相邻的点为黑色。( 1≤n≤500 , 1≤m≤70000 )对于 100% 的数据, 1≤n≤500 , 1≤m≤70000。
2025-02-17 08:41:32
349
原创 51nod1404 解码
其实可以这样理解,先从列中拿出2\*k根线,再从行中拿出2\*k根线,然后从内往外把行列一对一对配对,就可以得到一种方案。所以答案就是 c(n−1,2\*K)\*c(m−1,2\*k) .比较大,可以先对阶乘打个表,对答案进行字符串压缩一下。分别存( 1000000\*t)!按照代码的意思每次从一个矩形中拿出一个小矩形,一共拿 k 次有多少种方法。然后进行组合数求的时候要 O(1000000) 递推求解。对于每一组数据,输出。
2025-02-07 21:06:51
312
原创 51nod1170 组合数的最后K位
给出 M,N,K ,求 C(M,N) 的十进制表示的最后 K 位。例如 M=18,N=8,K=3 , C(18,8)=18!=43758 ,最后 3 位数是 758。解析和代码还是由通过此题的大佬来解决吧,作者试了好几次都没过,QAQ。第 1 行: M。第 2 行: N。第 3 行: K。输出结果的后 K 位。
2025-02-07 16:53:57
190
原创 51nod5128 奶牛选美
听说最近三个斑点的奶牛最受欢迎,约翰立即购进了一批三斑点牛。不幸的是,时尚潮流往往变化很快,当前最受欢迎的牛变成了一斑点牛。约翰希望通过给每头奶牛涂色,使得它们身上的三个斑点能够合为一个斑点,让它们能够更加时尚。牛皮可用一个其中,表示斑点部分。如果两个在垂直或水平方向上相邻(对角相邻不算在内),则它们属于同一个斑点,由此看出上图中恰好有三个斑点。约翰牛群里所有的牛都有三个斑点。约翰希望通过使用油漆给奶牛尽可能少的区域内涂色,将三个斑点合为一个。在上面的例子中,他只需要给。
2024-06-13 17:22:13
447
原创 51nod2624 LTree2
你需要维护一棵个节点的树,每个节点有一个颜色,有个操作,每次修改一个位置的颜色,然后你需要在每次修改后输出树上所有简单路径的颜色数的和,(即所有二元组构成的树上简单路径)
2023-08-25 15:32:54
316
原创 51nod3234 小明爱配对
3234 小明爱配对小明现在非常喜欢配对,这天有一队人(有男生也有女生)在小明面前排成了一排,每人都有一个技能值,老师给小明出了一道题目,让他来对这些人进行配对。配对有如下要求:1. 相邻的男女才能进行配对。2. 每次优先选择技能值差距最小的一对进行配对,如果不止有一对,那么选出最左边的那一对。3.选出的人离开队列,空位由后面的人补上,这让原来不相邻的男女可能变成相邻的。就这样一直选取,直到最后配对出现。这个问题难为住了小明,聪明的你可以帮助小明解决这个问题吗?输入第一行包括一
2022-05-08 10:59:22
649
原创 51nod3109 看电影
3109 看电影这个世界上有很多叫小明的人,他们在不同的国家,不同国家有不同的语言,每一种语言有一个语言编号。我们给出所有语言的编号,需要注意的是:每个国家的人除了可以懂自己国家的语言,也能懂编号相邻国家的语言,例如:语言编号为:1,7,10,5,其中:母语编号为1,懂编号为1,5 的语言母语编号为5,懂编号为1,5,7 的语言母语编号为7,懂编号为5,7,10的语言母语编号为10,懂编号为7,10 的语言这个相邻编号指的并不是输入顺序,而是按照数字大小。同时我们还会...
2022-05-08 10:53:54
493
原创 51nod3241 小明和他的同学们
3241 小明和他的同学们小明在全球数学竞赛获得了冠军,他很高兴,所以他想请他的同学吃巧克力,但是小明每天都很忙,只有x分钟的时间可以宴请同学们,现在小明有m个巧克力,小明要请n个同学吃巧克力,每个同学吃一块巧克力的时间都不一样,有的同学吃的快,有的同学吃的慢,每个同学吃完一块巧克力之后,马上就会去吃另外一个巧克力,假如2个人同时吃完,优先发给吃的快的同学。直到没有剩余的巧克力或者宴请时间结束了。现在小明想要知道在宴请结束之后有几块巧克力被吃完,有几块巧克力没有被吃完,但是被吃了一些,聪明的你可以帮
2022-04-10 13:54:42
684
原创 51nod3225 小明和最短路
3225 小明和最短路经过一段时间的修炼,小明已经成为最短路大师,最近他设计了这样一个问题。给定一个图,小明想要知道从s点到e点正好经过图里面k条边的最短路的长度是多少,聪明的你可以帮助小明解决这个问题吗?输入第一行输入两个整数n和k;接下来n-1行,每行包含两个数x,y和w,表示x和y直接有一条长度为w的路径;接下来一行输入两个整数s和e,表示起点和终点。输出输出一个整数,表示从s点到e点正好经过图里面k条边的最短路的长度,如果不存在这样一条道路,输出-1。数据范围..
2022-04-10 13:50:02
458
原创 51nod3137 圆形巧克力
3137 圆形巧克力5.20到了,阿P的女朋友送了他一块特别特别大的巧克力(你可以认为是无限大的平面),巧克力上面有三个糖果,阿P喜欢吃巧克力,女朋友要求他吃掉以这三个糖果作为顶点的三角形(必须是非退化的三角形,即选出的点不能共线),吃掉这三个糖果组成的三角形的外接圆,请你帮忙计算一下阿P最多能吃到多少巧克力?输入多组数据第一行一个整数case,表示数据组数对于每组数据,第一行一个整数n,表示糖果的个数接下来n行,每行两个数x y,表示一个糖果的坐标为(x,y)输出对于每组数据
2022-04-08 09:59:07
375
原创 51nod3425 中缀表达式求值
3425 中缀表达式求值现在给你一个中缀表达式,式子中包括+-*/()六种运算符号,要求你求出这个中缀表达式的值。中缀表达式:所谓中缀表达式就是我们平常写的算式,例如1+2、(1+2)*3,。输入输入一个中缀表达式。输出输出一行,表示表达式的值。可使用以下语句保留固定长度的小数点后尾数C++:cout<<setiosflags(ios::fixed)<<setprecision(6)<<ans<<endl;C:printf("%
2022-04-08 09:49:46
596
1
原创 51nod3399 矩形的数量V7
3399 矩形的数量V7小明有一个m*n的棋格,他想让你求出其中矩形的数量。但他不希望第u行第v列、第s行第t列的两个格子包含在矩形当中,请你帮帮他。 小明还希望你将得到的结果对1000000007取模。输入一行输入六个整数m,n,u,v,s,t。保证不选的两个格子不在同一位置。输出输出一个数,表示符合要求的矩形数量。结果对1000000007取模。数据范围对于100%的数据,1≤m,n≤10^9,0≤u,s≤m,0≤v,t≤n。输入样例4 3 3 3 2 2
2022-04-08 09:31:57
622
1
原创 51nod3398 矩形的数量V6
3398 矩形的数量V6小明有一个m*n的棋格,他想让你求出其中矩形的数量。但他不希望第u行第v列的格子包含在矩形当中,请你帮帮他。小明还希望你将得到的结果对1000000007取模。输入一行输入四个整数m,n,u,v。输出输出一个数,表示符合要求的矩形数量。结果对1000000007取模。数据范围对于100%的数据,1≤m,n≤10^9,0≤u≤m,0≤v≤n。输入样例4 3 3 3输出样例42解析:利用容斥的思路,首先如果不考
2022-04-08 09:24:32
696
1
原创 51nod3404 后缀表达式(逆波兰表达式)
3404 后缀表达式(逆波兰表达式)后缀表达式是一种把运算符后置的算术表达式,例如普通的表达式2 + 3的后缀表示法为2 3 +。后缀表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的后缀表示法为2 3 + 4 *。本题求解后缀表达式的值,其中运算符包括+ - * /四个。计算后缀表达式,要从前向后遍历字符串。当遇见运算数时,压入栈中。当读到运算符时,将栈中的连续2个运算数弹栈;用当前运算符计算后(注意后缀表达式的先出栈的运算数,放在运算符后面;后出栈.
2022-03-31 11:23:41
1272
原创 51nod2015 诺德街
2015 诺德街又仁慈、又善良、又有钱的夹克老爷买下了一条街!懂得经商的夹克老爷决定沿街开n个店铺,从南到北编号为1~n。经过紧张的筹备之后,诺德街的n个店铺同时开张了。由于刚开业,夹克老爷的人手不是非常足够,所以需要夹克老爷自己去干活。然而夹克老爷的手下们干活不积极,使得第i个店铺在每分钟都有pi的概率无人营业,且每分钟之间相互独立。于是夹克老爷从1号店铺出发向北走,当遇到第一个无人营业的店铺时就进去营业而停止移动。如果一直走到第n个店铺都有人营业,则原路返回,然后不停地来回走直到遇到一个无人营业的
2022-03-31 11:19:10
186
原创 51nod3155 跳房子
3155跳房子小华正在和她的小伙伴玩跳房子游戏。这是一个加强版的跳房子,每一行的格子数量可能超过 2 个。这个游戏需要在地面上画了n排格子,其中第i排包含a[i]个格子。(保证两端的这两排仅有一个格子)之后规定两端的这两个格子分别为起点和终点,小朋友从起点出发,每次可以跳到下一排或下两排的某个格子,直到抵达终点.现在小华想知道从起点到终点共有多少种跳法,你能回答她的问题吗?答案对1000000007取模。输入第一行输入一个正整数n,其中(3 <= n <= 1000
2022-03-31 10:59:41
4770
原创 51nod3174 堆积木
3174 堆积木有 n 种立方体积木,每种积木有无限多个,可以用 a,b,w 来描述,表示长、宽和高。积木可以搭在一起成为一个塔形,积木 可以放在在积木 上当且仅当,积木 X底面 可以嵌套进积木 Y的底面 ,即 且 。例如底面为 (1,5) 的积木可以放在底面为 (6,2) 的积木上,但不能放在底面为 (3,5) 的积木上。积木可以延 x,y,z 轴的方向旋转任意角度,但最终要平行于 x,y,z 轴,也就是说,底面可以是立方体 6个面中的任意一个。你的任务是选中一块作为底座,利用这...
2022-03-31 10:51:46
721
原创 51nod3062 n皇后问题 V2
3062 n皇后问题 V2在 n*n 格(n<=15)的国际象棋棋盘上摆放 n 个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。输入一行一个正整数,表示 n(n<=15)输出输出一个正整数,表示八皇后摆放的个数数据范围对于40%的数据,n<=8;对于100%的数据,n<=15。输入样例8输出样例92解析:暴力枚举放代码:#include<bits/stdc++.h
2022-03-07 22:36:01
466
1
原创 51nod2993 Budget
2993 Budget求一个的矩阵a,a中的元素都要求是非负数,关于矩阵中的元素大小有条限制,限制有两种类型:"1 i j x" 表示"2 i j x" 表示还要求了每一行每一列的元素和的值,如果存在这样的矩阵则输出"Yes",否则输出"No"多组数据输入第一行一个整数case,表示数据组数接下来case组数据,每组数据的第一行输入三个整数n,m,k表示矩阵的大小和限制个数接下来一行n个数,第i个数表示第i行的数字和接下来一行m个数,第j个数表示第j行的数字和接下来k行
2022-03-07 22:29:37
305
原创 51nod3658 小明统计数组
3658 小明统计数组小明最近喜欢上数组统计,但是他遇到了一道难题,题目如下:最初数列是空的,那么一共有下面五种操作:1. a x 表示向数列里面增加数值为x的数;2. d x 表示删除数列里面数值为x的数;3. I 表示删除数列里面数值最大的数;4. m 表示删除数列里面数值最小的数;5. q 询问当前数列的和。保证添加的元素都不不一样,对于删除操作,如果数列里面不存在这个元素,则不进行删除操作。小明不会做这个题,希望寻求你的帮助,聪明的你可以帮助小明解决这个问题吗?在
2022-02-28 22:40:50
550
原创 51nod3593 小明的数字表
3593 小明的数字表小明现在爱上了查询,他遇到了这样一个查询问题,给出n个数(n<=100000,有q 个查询(q<=100000),每组查询3个数:uvw,表示查找第u位(个位为第1位,十位为第2位,依此类推)为数字v的所有数字中,第w小的数,如果这个数字不存在,输出“-1”。小明不会做这个题,聪明的你可以帮助小明解决这个问题吗?注:不考虑所有数字中的前导 0。输入第一行输入一个n(n<=100000),表示数列的长度;第二行n个正...
2022-02-28 22:36:36
689
原创 51nod2507 安排工作以达到最大收益
2507 安排工作以达到最大收益有一些工作:difficulty[i] 表示第 [i] 个工作的难度,profit[i] 表示第 i 个工作的收益。现在我们有一些工人。worker[i] 是第 i 个工人的能力,即该工人只能完成难度小于等于 worker[i] 的工作。每一个工人都最多只能安排一个工作,但是一个工作可以完成多次。举个例子,如果 3 个工人都尝试完成一份报酬为1的同样工作,那么总收益为 3。如果一个工人不能完成任何工作,他的收益为 0 。我们能得到的最大收益是多少?输入
2021-11-07 19:23:19
212
原创 51nod2477 最长有效括号串
2477 最长有效括号串小明的老师给小明布置了一道作业,作业内容如下:给定一个只包含 '('和 ')'的字符串,找出最长的包含有效括号的子串的长度。由于小明太忙了,所以想请你帮忙完成,聪明的你可以帮小明解决这个问题吗?有效括号串定义为左右可以匹配,例如'('和')'可以匹配。匹配规则如下:(1)若a是有效括号串,则(a)也是;(2)若a、b是有效括号串,则ab也是。输入输入一个只包含'('与')'的字符串,字符串长度n满足0<n≤50000输出输出一个数表..
2021-11-07 19:20:03
391
原创 51nod3406 小明查成绩
3406 小明查成绩小明的班级一用有n个学生,有语文,数学,英语三门课,每个学生都有三个成绩,现在小明给出了三个区间[a,b],[c,d],[e,f],小明想知道三门课成绩都在区间内的学生都有谁,聪明的你可以帮助小明解决这个问题吗?输入第 1 行:一个数字n(n<=10000),表示这个班级一个n个学生。第 2~n+1 行:每行一个字符串和三个数字,分别代表这个学生的名字和他三门课的成绩;第 n+2 行:包含一个数字k(k<=10),表示询问的次数第 n+3 ~ n+2+k
2021-11-07 19:12:49
1123
原创 51nod3478 走迷宫
3478 走迷宫小明最近爱上了走迷宫,现在有这样一个走迷宫的问题,给定一个N∗M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。输入第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标SX,SY,终点坐标FX,FY。接下来T行,每行为障碍点的坐标。输出给定起点坐标和终点坐标,问每个方格最多经过1次,从起点坐标到
2021-11-07 19:09:06
682
1
原创 51nod2681 嗲串
2681 嗲串一个词连着说两遍就会变得很嗲,比如“花花”、“狗狗”、“肚肚”,一个字符串如果它的长度为偶数且前一半和后一半完全一样,那么这个串被称为嗲串。比如“gougou”、“biubiu”、“qq”都是嗲串,而“pufu”、“moom”、“wow”都不是嗲串。现在给你一个字符串ss,请你回答:最少需要删掉几个字符,使得剩下的字符串是一个嗲串。数据范围:1≤s.length≤50输入输入仅一行,一个字符串s。输出输出仅一行,表示最少删掉的字符数输入样例singing
2021-11-02 21:49:05
486
原创 51nod2860 奶牛议会
2860 奶牛议会本题出自于bzoj2199[Usaco2011 Jan]奶牛议会,这里只放代码:#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<queue>#include<stack>#include<cstdlib>#include<cmath>#include<algor
2021-11-02 21:28:16
101
原创 51nod3121 小陶与杠铃片
3121 小陶与杠铃片小陶在举重队负责后勤工作。举重队的训练场中有一个区域一排码放了n片杠铃片,每天运动员们训练完之后会将杠铃片放回,之后小陶需要重新整理杠铃片的顺序,使它们由轻到重依次排好。由于杠铃片很重,小陶每次只能选两片相邻的杠铃片,交换它们的位置。现在小陶想知道,这一天他至少需要交换多少次才能整理完毕?已知n<=200000,0<=杠铃片重量<=200000。输入第一行一个正整数n,表示有n片杠铃片;第二行n个整数,表示运动员们放回后每片杠铃片依次的重量。输
2021-11-02 21:23:30
460
原创 51nod2937 最大获利
2937 最大获利新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战。THU集团旗下的CS&T通讯公司在新一代通讯技术血战的前夜,需要做太多的准备工作,仅就站址选择一项,就需要完成前期市场研究、站址勘测、最优化等项目。在前期市场调查和站址勘测之后,公司得到了一共N个可以作为通讯信号中转站的地址,而由于这些地址的地理位置差异,在不同的地方建造通讯中转站需要投入的成本也是不一样的,所幸在前期调查之后这些都是已知数据:建立第i个通讯中转站需要的成本为Pi(1≤i≤N)。另外公司调查
2021-10-27 23:13:17
93
原创 51nod2938 寿司餐厅
2938 寿司餐厅题目详情见bzoj4873[Shoi2017]寿司餐厅,这里只放代码:#include<iostream>#include<algorithm>#include<cstdio>#include<cmath>#include<cstring>#include<queue>#define LL long longusing namespace std;const int INF=0x3f3f3f3
2021-10-27 23:09:22
108
原创 51nod2941 Planar
2941 Planar若能将无向图G=(V,E)画在平面上使得任意两条无重合顶点的边不相交,则称GG是平面图。判定一个图是否为平面图的问题是图论中的一个重要问题。现在假设你要判定的是一类特殊的图,图中存在一个包含所有顶点的环,即存在哈密顿回路。输入的数据保证 100% 的数据满足T≤100,3≤N≤200,M≤10000T≤100,3≤N≤200,M≤10000T≤100,3≤N≤200,M≤10000。输入输入文件的第一行是一个正整数 T,表示数据组数 (每组数据描述一个需要判定的图..
2021-10-27 22:54:49
189
原创 51nod3075 线段树练习6
3075 线段树练习6你需要维护一个长为n的序列,支持m次操作:1. 区间修改2. 查询区间平均数3. 查询区间方差输入第一行包含两个整数 n,m,分别表示该数列数字的个数、操作的总个数。第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。接下来 m 行每行包含若干个整数,表示一个操作,具体如下:操作1:`1 l r k`:将 [l,r] 位置的数加上 k,k 为实数操作2:`2 l r`:输出区间 [l,r] 内的平均数操作3:`3 l r
2021-10-17 11:23:20
172
原创 51nod3072 线段树练习3
3072 线段树练习3你需要维护一个长为n的序列,支持m个操作:1. 区间中每个数乘x2. 区间中每个数加x3. 查询区间和答案对一个常数p取模输入第一行包含三个整数 n,m,p,分别表示该数列数字的个数、操作的总个数和模数。第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。接下来 m 行每行包含若干个整数,表示一个操作,具体如下:操作 1: 格式:`1 x y k` 含义:将区间 [x,y] 内每个数乘上 k操作 2: 格式:`2 x y
2021-10-17 11:16:18
230
原创 51nod3071 线段树练习2
3071 线段树练习2你需要维护一个长为n的序列,支持m个操作:1. 区间修改为一个数2. 查询一个区间中的最大子段和,即和最大的子区间的值输入第一行包含两个整数 n, m,分别表示该数列数字的个数和操作的总个数。第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。接下来 m 行每行包含 3 或 4 个整数,表示一个操作,具体如下:1. `1 l r k`:将区间 [l, r] 内每个数都变成 k。2. `2 l r`:输出区间 [l, r...
2021-10-17 11:08:02
262
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人