- 博客(41)
- 收藏
- 关注
原创 目录
青藤递归(二)#44 比例简化#210733 奶牛碑文#4 龙虎斗#43 珠心算测试#10193 工作分配#24 回文日期#23 买铅笔#10213 质因数分解升级版
2020-11-19 22:17:59
216
原创 网络流相关定理与模型
模型:最大流,最小割,最大权闭合子图,最大密度子图,最小链覆盖定理:最大流最小割定理,Kőnig 定理,霍尔定理,二分图 Vizing 定理,Dilworth 定理,等其他定理。
2023-08-28 17:40:00
260
原创 青藤 #10281 最佳调度问题
直接放图吧:我们先看这篇代码:#include <bits/stdc++.h>using namespace std;int n, m, mac[10001], Time[10001], ans = INT_MAX / 3, Min = INT_MAX / 3, Now = 0;int SetNow() { int k = 0; for (int i = 1; i <= m; i++) k = max(k, mac[i]); return k;}vo
2021-01-08 23:15:32
223
原创 青藤 #10118 质数环
题目描述一个大小为N(N<=17)的质数环是由1到N共N个自然数组成的一个数环,数环上每两个相邻的数字之和为质数。如下图是一个大小为6的质数环。为了方便描述,规定数环上的第一个数字总是1。若两个质数环,数字排列顺序相同则视为本质相同。现在要求你求出所有本质不同的数环。输入格式只有一个数N,表示需求的质数环的大小。输出格式每一行描述一个数环,如果有多组解,按照字典序从小到大输出有了数据范围,打表省时(isprime)#include <iostream>using names
2021-01-08 22:49:36
227
原创 青藤 #10280 字符序列
题目描述从三个元素[A,B,C]的集合中选取N元素生成一个个字符组成的序列,使得没有两个相邻的子序列(子序列长度=2)输入格式输入N输出格式求出满足条件的N个字符的所有序列的总数。我们肯定会直接分三种情况填,最后填好时继续判断:#include <iostream>using namespace std;int sum = 0;char abc[4] = { ' ', 'A', 'B', 'C' };string a;int ds;bool Same(str
2021-01-08 22:44:31
849
原创 青藤 #10265 工作分配问题
题目描述设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为c[i][j]。试设计一个算法,为每一个人都分配一件不同的工作,并使总费用达到最小。输入格式输入数据。第一行有1个正整数n (1≤n≤20)。接下来的n行,每行n个数,第i行表示第i个人各项工作费用输出格式将计算出的最小总费用输出直接爆搜,搜到标记,最后对比找到最小解。#include <bits/stdc++.h>using namespace std;int n, Time[30][30], N
2021-01-08 22:28:05
282
原创 青藤 #160 数的划分
题目描述将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。输入格式输入n和k.输出格式一个整数,即不同的分法数。先放代码:#include <bits/stdc++.h>using namespace std;int num[10001];int n, parts, summ;void Dfs(int sum, int lp, int pre) { if (lp == parts) { if (sum == 0)
2021-01-08 21:44:10
818
原创 青藤 #801【经典】N皇后问题
题目描述在一张NN的国际象棋棋盘上,放置N个皇后,使得所有皇后都无法互相直接攻击得到,(皇后可以直接攻击到她所在的横行,数列,斜方向上的棋子),现在输入一个整数N,表示在的NN棋盘上放N个皇后,请输出共有多少种使得所有皇后都无法互相直接攻击得到的方案数。 例如下面这样的摆法,是4皇后的一个解 (1代表有皇后,0代表没有)0 1 0 00 0 0 11 0 0 00 0 1 0输入格式一个整数N输出格式能使得在N*N的国际象棋棋盘上放置N个皇后,并且所有皇后都无法互相
2021-01-03 20:35:45
910
原创 青藤 #10116 迷宫
题目描述在N*N的迷宫内,“#”为墙,“.”为路,“s”为起点,“e”为终点,一共4个方向可以走。从左上角((0,0)“s”)位置处走到右下角((n-1,n-1)“e”)位置处,可以走通则输出YES,不可以走则输出NO。输入格式输入的第一行为一个整数m,表示迷宫的数量。其后每个迷宫数据的第一行为一个整数n(n≤16),表示迷宫的边长,接下来的n行每行n个字符,字符之间没有空格分隔。输出格式输出有m行,每行对应的迷宫能走,则输出YES,否则输出NO。思路简单!直接爆搜,往四个方向,
2021-01-03 20:08:21
431
原创 青藤 #210777 树的深度
题目大意给你一棵以1为根的树,求树的深度思路从根节点开始搜,搜索到最深的节点。注意事项:因为是用vector储存,所以会前后访问死循环,所以要判断是否与他的关系里有他的father。#include <iostream>#include <vector>using namespace std;vector<int> N[10001];int sum = -1;bool istr[100001];void Search(int rt, int f, i
2020-12-25 21:31:37
239
原创 青藤 #10033 二叉树的叶节点和
题目大意求一棵二叉树的叶子节点和,默认1为二叉树的根的编号思路从根节点一直往下搜,搜到叶子节点时计数。#include <iostream>using namespace std;void set(int, int, int);void Lp(int);int sum;struct Node { int L_child; int R_child;} T[100001];int main() { int n, l, r; cin >>
2020-12-25 21:24:26
153
原创 青藤 #10032 二叉树的序遍历
题目大意求一棵二叉树的前序遍历,中序遍历和后序遍历思路谨记先序遍历(根左右),中序遍历(左根右),后序遍历(左右根)。注意:不要判断是否是根节点来停止,否则当节点度为一时会出现异常。#include <iostream>using namespace std;void set(int, int, int);void Preorder(int);void Midorder(int);void Postorder(int);struct Node { int L_chi
2020-12-25 21:16:22
141
原创 青藤 #10064 奇怪的电梯
题目描述大楼的每一层楼都可以停电梯,而且第 i 层楼(1<=i<=N)上有一个数字 Ki(0<=Ki<=N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果 不能满足要求,相应的按钮就会失灵。例如:3 3 1 2 5代表了 Ki(K1=3,K2=3,……),从一 楼开始。在一楼,按“上”可以到 4 楼,按“下”是不起作用的,因为没有-2 楼。那么, 从A 楼到 B 楼至少要按几次按钮呢?思路直接 BFS 。#include <
2020-12-13 23:06:50
198
原创 青藤 #10062 括弧匹配检验
题目大意判断圆括号,方括号是否匹配。思路单独分类讨论,不同括号直接return。#include <iostream>#include <stack>using namespace std;stack<char> oper;int main() { string n; cin >> n; for (int i = 0; i < n.size(); i++) { if (n[i] == '(' ||
2020-12-13 22:57:01
194
原创 青藤 #10061 表达式括号匹配
题目大意有一个以"@"为结束符的字符串,判断圆括号是否匹配。思路遇到"(" 压入 oper ,遇到")"弹出。切记:一定要判断栈空!#include <bits/stdc++.h>using namespace std;stack<int> oper;char n[255];int main() { for (int i = 0; n[i - 1] != '@'; i++) cin >> n[i]; int len = strlen(n)
2020-12-13 22:53:14
140
原创 青藤 #136 合并果子
题目大意给出n个数,每次将两个数合起来,消耗两个数的和的体力,输出最少的体力。思路用 priority_queue 即可。因为要使体力最小,所以要从小到大排。但 priority_queue 是从大到小……用负数!#include <bits/stdc++.h>using namespace std;int n;priority_queue<int> m;int main() { long long n, ans = 0; int t; c
2020-12-13 22:45:46
174
原创 青藤 #10113 乘积最大 2
题目大意要求将n写成若干个正整数之和,并且使这些正整数的乘积最大,保留小数点前一百位。思路可以先分类讨论。2 → 1×13 → 1×24 → 2×25 → 2×36 → 3×3这时发现拆成三的方法最优,也可以证明:拆成2:(n−2)×2=2n−4(n-2)×2=2n-4(n−2)×2=2n−4拆成3:(n−3)×3=3n−9(n-3)×3=3n-9(n−3)×3=3n−9相差:∵3n−9−(2n−4)=n−5\because 3n-9-(2n-4)=n-5∵3n−9−(2n−4)=n
2020-12-13 22:31:11
16763
原创 青藤 #10043 美元汇率
题目大意给你每一天美元与马克的汇率,求出最多可得到的美元。思路分两条路,从前一天得到今天最多可得的马克与美元,最后换算成美元输出。#include <bits/stdc++.h>using namespace std;long double d = 100, m;double n, day[100001];int main() { cin >> n; for (int i = 1; i <= n; i++) { cin >&
2020-12-13 21:58:08
197
原创 青藤 #10115 栈练习1
题目大意模拟栈(1操作入栈,2操作出栈),栈空输出“Impossible!”思路直接模拟,即可。#include <bits/stdc++.h>using namespace std;stack<int> s;int main() { int n, c, m; cin >> n; for (int i = 1; i <= n; i++) { cin >> c; if (c == 2)
2020-12-12 08:33:42
170
原创 青藤 #30004「一本通 1.1 例 5」智力大冲浪
题目描述小伟报名参加中央电视台的智力大冲浪节目。本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元。先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则:首先,比赛时间分为n个时段,它又给出了很多小游戏,每个小游戏都必须在规定期限tit_iti前完成。如果一个游戏没能在规定期限前完成,则要从奖励费m元中扣去一部分钱wiw_iwi,wiw_iwi为自然数,不同的游戏扣去的钱是不一样的。当然,每个游戏本身都很简单,保证每个参赛者都能在一个时段内完成,而且都必
2020-11-27 20:59:38
258
原创 青藤 #10021 均分纸牌
题目描述有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若于张纸牌,然后移动。 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1的堆上;其他堆上取的纸 牌,可以移到相邻左边或右边的堆上。 现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。 例如N=4,4 堆纸牌数分别为:① 9 ② 8 ③ 17 ④ 6 移动3次可达到目的: 从 ③ 取 4 张
2020-11-27 19:38:28
274
原创 青藤 #10038 最大整数
题目描述设有 n 个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。 例如:n=3 时,3 个整数 13,312,343 联接成的最大整数为:34331213 又如:n=4 时,4 个整数 7,13,4,246 联接成的最大整数为:7424613输入格式n 个数输出格式联接成的多位数进行排序,只要相邻两个数的解法达到最优即可。#include <bits/stdc++.h>using namespace std;string m[21];bool c
2020-11-27 19:21:31
154
原创 青藤 #10081 活动选择
题目描述学校在最近几天有n个活动,这些活动都需要使用学校的大礼堂,在同一时间,礼堂只能被一个活动使用。由于有些活动时间上有冲突,学校办公室人员只好让一些活动放弃使用礼堂而使用其他教室。 现在给出n个活动使用礼堂的起始时间bi和结束时间ei(bi < ei<=32767),请你帮助办公室人员安排一些活动来使用礼堂,要求安排的活动尽量多。输入格式第一行一个整数n(n<=1000); 接下来的n行,每行两个整数,第一个bi,第二个是ei(bi < ei<=32767
2020-11-27 19:18:26
988
原创 青藤 #10080 删数问题
题目描述键盘输入一个高精度的正整数n(n<1024010^{240}10240),去掉其中任意s个数字后剩下的数字按照原来的次序将组成一个新的非负整数。编程对给定的n和s,寻求一种方案,使得剩下组成的新数最小。输入格式第1行:一个正整数n;第2行:s(s<n的位数).输出格式最后剩下的最小数。为了达到最优,把n先删成一个上升序列,再从后往前删。#include <bits/stdc++.h>using namespace std;int main()
2020-11-27 19:11:20
150
原创 青藤 #10036 排队接水
题目描述有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序, 使得n个人的平均等待时间最小。 n<=1000,等待的时间小于等于1000输入格式输入文件共两行,第一行为n;第二行分别表示第 1 个人到第n个人每人的接水时间T1,T2,…,Tn,每 个数据之间有 1 个空格。输出格式输出有一行,最少平均排列方案下的平均等待时间 ( 输出结果精确到小数点后两位 ) 。因为第一个接水的人要被算n次,所以第一个耗时最少,接着是T2,T3…#i
2020-11-27 19:02:02
250
原创 青藤 #10233 Div Times Mod
给你两个整数n和k,求最小的满足如下要求的x 。令 a=x/k,b=x%k,如果a×b=n , 则满足要求,现在我们希望求出满足要求最小的x。输入格式一行两个整数n和k输出格式一个整数,满足要求的最小x。数据保证有解因为b有一定的范围限制0≤b≤k−10 \leq b \leq k-10≤b≤k−1直接枚举b,反推a,找到最小的x#include <bits/stdc++.h>using namespace std;int main() { int n,
2020-11-27 18:56:23
171
原创 青藤 #10232 Couple number
题目描述任何一个整数N都能表示成另外两个整数a和b的平方差吗?如果能,那么这个数N就叫做Couplenumber。你的工作就是判断一个数N是不是Couple number。输入格式仅一行,两个长整型范围内的整数n1和n2,之间用1个空格隔开。输出格式输出在n1到n2范围内有多少个Couple number。注意:包括n1和n2两个数,且n1<n2,n2 - n1 <= 10 000 000。分两步走。a2−b2=(a−b)(a+b)\mathsf{a^2-b^2=(
2020-11-27 18:47:21
248
原创 青藤 #10082 整数区间
题目描述给n个区间,形式为[a, b],a和b均为整数,且a < b。求一个最小的整数点的集合,使得每个区间至少 1个元素属于这个集合。求这个集合的元素个数。输入格式第1行:1个整数n(1 <= n <= 10000)接下来n行,每行2个整数,表示区间的左右端点a, b(0 <=a < b <=10000)输出格式第1行:1个整数,表示集合的元素的个数思路:按右端点排,并区间,以右端点做元素。struct interval保存区间左
2020-11-22 13:48:18
299
原创 青藤 #10040 纪念品组合
题目大意把n个数分成几组,每组的总和不超过w,求最少可分多少组。思路先把数进行排序,再用大数配对小数。value目前组的总价值g最少组数#include <bits/stdc++.h>using namespace std;int souv[100001];int main() { int Max, n; cin >> Max >> n; for (int i = 1; i <= n; i++) cin >&g
2020-11-22 13:25:27
703
原创 青藤 #280157 Lost number (wild)
题目描述小强写了一个十进制数X ,但有些字迹已经模糊不清(我们以 ? 代替),现在给定另一个相同位数的十进制数Y ,他想知道有多少种可能使得X>Y。输入格式第一行为正整数t(t≤100) ,表示数据组数;每组数据中,第一行为一个16位以内的十进制数X ,当中有若干个 ?;第二行为一个相同位数的十进制数Y。输出格式输出X>Y 的可能数。思想如下:贴上代码:#include <bits/stdc++.h>using namespace std;str
2020-11-20 22:59:03
988
原创 青藤 #420 [NOI Online 入门组] 文具订购(本站数据)
题目描述小明的班上共有 元班费,同学们准备使用班费集体购买 种物品:圆规,每个7元。笔,每支4元。笔记本,每本3元。小明负责订购文具,设圆规,笔,笔记本的订购数量分别为a,n,c他订购的原则依次如下:n元钱必须正好用光,即 7a+4b+3c=n在满足以上条件情况下,成套的数量尽可能大,即a,b,c中的最小值尽可能大。在满足以上条件情况下,物品的总数尽可能大,即a+b+c尽可能大。请你帮助小明求出满足条件的最优方案。可以证明若存在方案,则最优方案唯一。输入格式输入仅一行一个整数
2020-11-19 23:10:57
188
原创 青藤 #44 比例简化
题目描述在社交媒体上,经常会看到针对某一个观点同意与否的民意调查以及结果。例如,对某一观点表示支持的有 1498 人,反对的有 902 人,那么赞同与反对的比例可以简单的记为 1498:902 。不过,如果把调查结果就以这种方式呈现出来,大多数人肯定不会满意。因为这个比例的数值太大,难以一眼看出它们的关系。对于上面这个例子,如果把比例记为 5:3 ,虽然与真实结果有一定的误差,但依然能够较为准确地反映调查结果,同时也显得比较直观。现给出支持人数A,反对人数 B ,以及一个上限 L ,请你将 A 比
2020-11-19 22:04:34
1101
原创 青藤 #210733 奶牛碑文
题目描述小伟暑假期间到大草原旅游,在一块石头上发现了一些有趣的碑文。碑文似乎是一个神秘古老的语言,只包括三个大写字母 C 、O 和 W。尽管小伟看不懂,但是令他高兴的是,C 、O 、W 的顺序形式构成了一句他最喜欢的奶牛单词 “COW” 。现在,他想知道有多少次 COW 出现在文本中。如果 COW 内穿插了其他字符,只要 COW 字符出现在正确的顺序,小伟也不介意。甚至,他也不介意出现不同的 COW 共享一些字母。例如,CWOW 出现了1次 COW ,CCOW 算出现了2次 COW ,CCOOWW 算出
2020-11-19 20:44:16
953
原创 青藤 #4 龙虎斗
题目描述轩轩和凯凯正在玩一款叫《龙虎斗》的游戏,游戏的棋盘是一条线段,线段上有n个兵营(自左至右编号1~n),相邻编号的兵营之间相隔1厘米,即棋盘为长度为n-1厘米的线段。i号兵营里有nin_ini位工兵。 下面图 1 为n=6的示例:轩轩在左侧,代表“龙”;凯凯在右侧,代表“虎”。 他们以m号兵营作为分界, 靠左的工兵属于龙势力,靠右的工兵属于虎势力,而第 m号兵营中的工兵很纠结,他们不属于任何一方。一个兵营的气势为:该兵营中的工兵数×该兵营到m号兵营的距离;参与游戏一方的势力定义为:属于
2020-11-19 20:16:08
811
原创 青藤 #43 珠心算测试
题目描述珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?最近老师出了一些测验题,请你帮忙求出答案输入格式输入共两行,第一行包含一个整数 n ,表示测试题中给出的正整数个数。 第二行有 n个正整数,每两个正整数之间用一
2020-11-15 09:37:08
197
原创 青藤 #10193 工作分配
题目描述新录A、B、C三个工人,每人分配一个工种,每个工种只需一人,经测试,三人做某种工作的效率如下表所示。如何分配三人的工作才能使他们工作效益最大?输入格式为1个3×3的矩阵矩阵的第一行为A做三种工作的效益,第二行为B做三种工作的效益,第三行为C做三种工作的效益。输入保证各效益的范围可能超过int能表示的范围,请使用long long替代int如果 int a; 先让a表述更大的整数,可使用long long a; long long是int的扩展类型输出格式一个整数,为最大效
2020-11-15 09:20:35
858
原创 青藤 #24 回文日期
题目描述在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月份,最后2位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现在,牛牛想知道:在他指定的两个日期之间包含这两个日期本身),有多少个真实存在的日期是回文的。 一个8位数字是回文的,当且仅当对于所有的i (1 <=i<= 8 )从左向右数的第i个
2020-11-14 23:15:23
420
1
原创 青藤 #23 买铅笔
题目描述P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有 3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起见,P老师决定只买同一种包装的铅笔。商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过 n 支铅笔才够给小朋友们发礼物。现在P老师想知道,在商店每种包装的数量都足够的情况下,要买够至少 n 支铅笔最少需要花费多少钱。输入格式第一行包含一个正整数 n ,表示需要的铅笔数量。 接下来三行,每行用 2 个正整数描述一种包装的铅笔:其中
2020-11-14 23:07:03
667
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅