![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法竞赛入门经典
刘汝佳的《算法竞赛入门经典》和最近学的c语言和c++内容
CV工程师呀
就写给自己看看
展开
-
最短路径引理的证明
引理8.2引理8.3原创 2020-06-10 18:50:43 · 163 阅读 · 0 评论 -
Huffman算法正确性证明
定理7.5原创 2020-06-10 18:47:03 · 1068 阅读 · 0 评论 -
贪心选择的最优性证明
给定n种物品和一个背包。物品i的重量是Wi,其价值为Vi,背包的容量为C。Xi=1表示第i个物体放入原创 2020-06-10 18:59:09 · 382 阅读 · 0 评论 -
uva1658
#include<iostream>#include<string.h>#include<vector>#include<stdio.h>#include<queue>using namespace std;const int INF=0x7fffffff;const int maxn=2010;struct Edge{ int from,to,cap,flow,cost; Edge(int u,int v,in.原创 2020-06-10 18:40:23 · 97 阅读 · 0 评论 -
Uva10048
题意:求所有路中最大分贝最小的路。思路:类似floyd算法的思想,u->v可以有另外一点k,通过u->k->v来走,拿u->k和k->v的最大值和u->v比较,存下最小的值。/*solution: 此题可以直接套上floyd算法的模板,但是要把加法改成max 对于任意一条至少包含两条边的路径,i->j,一定存在k使得i->j 噪音的最高级等于max(d[i][k], d[k][j.原创 2020-06-04 21:30:03 · 129 阅读 · 0 评论 -
Uva1395 Slim Span(最小生成树)
题意: 给出一个n个结点的无向图,找一棵苗条度(最大边减去最小边)最小的生成树。图中不含重边和自环。题解: 首先对边的权值大小排序,从小到大开始枚举最小生成树。#include <iostream>#include <cstring>#include <algorithm>#include <cstdio>#include <map>#include <queue>using namespace std;c.原创 2020-06-04 21:29:42 · 153 阅读 · 0 评论 -
Uva10954 Add All(哈夫曼编码问题)
#include<iostream>#include <math.h>#include<algorithm>#include<vector>#include<string>using namespace std;#include<queue>priority_queue<int, vector<i...原创 2020-04-24 16:25:04 · 134 阅读 · 0 评论 -
UVa11491 Erasing and Winning 奖品的价值
题目思路类比单调栈,输入时将元素一个个插到数组末尾,由于位越高的数越大越好,每次进栈的时候做类似单调栈操作,就是一直保持数组降序单调性,同时每删去一个数耗一点d。最后就有两种情况:点数用完:后面直接进数组都进了数组了却没用完点数:从后往前删(因为前面的都是挑过的够大的)#include<iostream>#include <math.h>#inclu...转载 2020-04-24 15:38:15 · 128 阅读 · 0 评论 -
Uva1149-Erasing ans Winning
#include<iostream>#include <math.h>#include<algorithm>#include<vector>using namespace std;vector<int> arr;int pro(int ctn);int main() { int T; cin >> T;...原创 2020-04-24 08:53:19 · 87 阅读 · 0 评论 -
UVa12186 - Another Crisis(树形dp)
简介:一个公司有1个老板和n个员工,n个员工中有普通员工和中级员工现在进行一次投票,若中级员工管理的普通员工中有T%的人投票,则中级员工也投票并递交给上级员工求最少需要多少个普通员工投票,投票才能到达老板处分析:基础的树形dp,供消遣为了方便,用一个vector存储结点的儿子设f[i]表示为了让信息传到i,需要的最少人数唯一有一点不直白的就是我们需要计算到底至少需要多少人设结点u...转载 2020-04-11 15:24:25 · 151 阅读 · 1 评论 -
UVA 12563 Jin Ge Jin Qu hao(01背包变形:两个条件最优化)
题意:KTV里面有n首歌曲你可以选择,每首歌曲的时长都给出了. 对于每首歌曲,你最多只能唱1遍. 现在给你一个时间限制t (t<=10^9) , 问你在最多t-1秒的时间内可以唱多少首歌曲num , 且最长唱歌时间是多少time (time必须<=t-1) ? 最终输出num+1 和 time+678 即可.注意: 你需要优先让歌曲数目最大的情况下,再去选择总时长最长的.#inc...转载 2020-04-10 23:18:08 · 99 阅读 · 0 评论 -
贪心算法--雷达安装
题目描述:假定海岸线是一条无限延伸的直线,陆地在海岸线的一边,大海在另一侧。海中有许多岛屿,每一个小岛我们可以认为是一个点。现在要在海岸线上安装雷达,雷达的覆盖范围是d,也就是说大海中一个小岛能被安装的雷达覆盖,那么它们之间的距离最大为d。我们使用平面直角坐标系,定义海岸线是x轴,大海在x轴上方,陆地在下方。给你海中每一个岛屿的坐标位置(x,y)和要安装的雷达所覆盖的范围d,你的任务是写一个程...原创 2020-04-08 19:32:48 · 486 阅读 · 0 评论 -
uva12100(打印队列)
#include#include#include#include#include#include using namespace std;#define MAXN 1000int main() {int T;int time = 0;int n, d,temp;cin >> T;while (T–) {deque q;deque q1;time = 0;...原创 2020-04-03 12:45:18 · 236 阅读 · 0 评论 -
Uva-10935
#include<string>#include<stdio.h>#include<queue>#include<string>#include<iostream>using namespace std;#define MAXN 51int main() { int n; int ctn; while (cin>...原创 2020-04-03 09:53:15 · 78 阅读 · 0 评论 -
uva442-矩阵链乘
题目大意:给你若干个矩阵(xy),然后给你若干种计算公式,问你在该种计算公式情况下能否进行矩阵乘法运算,若能进行,输出需进行乘法的次数。思路分析:首先要对矩阵的乘法运算有一定了解,首先,A(xy)和B(xy)矩阵能否进行AB运算的充要条件是是否满足A.y==B.x,如果满足,则会得到矩阵C(A.xB.y),这次运算进行的乘法的次数是A,xA.y*B.y.下面就考虑如何进行实现,首先括号里面...转载 2020-03-28 17:56:32 · 126 阅读 · 0 评论 -
UVa 714 - Copying Books
题目大意:要抄N本书,编号为1,2,3…N, 每本书有1<=x<=10000000页, 把这些书分配给K个抄写员,要求分配给某个抄写员的那些书的编号必须是连续的。每个抄写员的速度是相同的,求所有书抄完所用的最少时间的分配方案。Sample Input29 3100 200 300 400 500 600 700 800 9005 4100 100 100 100 100...原创 2020-03-27 15:07:15 · 147 阅读 · 0 评论 -
习题5-1代码对齐
#include #include #includeusing namespace std;#include #include#include#includevector vec[1005];int len[190];string line, buff;int main() {int i = 0,j=0;while (getline(cin, line)) {strin...原创 2020-03-19 14:58:42 · 257 阅读 · 1 评论 -
习题3-11换抵挡转置
KickdownDescriptionA research laboratory of a world-leading automobile company has received an order to create a special transmission mechanism, which allows for incredibly efficient kickdown – an o...转载 2020-01-16 21:36:35 · 211 阅读 · 0 评论 -
习题3-9 子序列
我写的,用了两个for循环,没有很好的利用变量的特点,革命尚未成功,同志还需努力#include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>using namespace std;#define maxn 1000int main(){ ...原创 2020-01-16 20:59:40 · 211 阅读 · 0 评论 -
习题3-4 周期串
/**如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。*输入一个长度不超过80的串,输出它的最小周期。*样例输入:HoHoHo*样例输出:2*/#include <stdio.h>#include <string.h>//枚举法int main(){ch...转载 2020-01-15 21:29:02 · 393 阅读 · 0 评论 -
习题3-2 分子量
分子量。给出一种物质的分子式(不带括号),求分子量。本题中的分子式只包含4种原子,分别为C, H, O, N,原子量分别为12.01, 1.008, 16.00, 14.01(单位:g/mol),输入t个分子式,输出分子量,保留三位小数。写的时候事直接按照刘汝佳的算法入门经典(第2版)的第57页习题3-2,没打开UVaOJ,只写大致实现方法#include <iostream>...原创 2020-01-15 20:43:58 · 377 阅读 · 1 评论 -
例题3-6环状序列
环状序列。长度为n的环状串有n种表示法,分别为某个位置开始顺时针得到。在这些表示法中,字典序最小的称为“最小表示”。输入一个长度为n(n<=100)的环状DNA串(只包含A、C、G、T这4种字符)的一种表示法,你的任务是输出该环状串的最小表示。例如,CTCC的最小表示是CCCT,CGAGTCAGCT的最小表示为AGCTCGAGTC。答案代码#include <iostream>...原创 2020-01-15 17:52:59 · 440 阅读 · 1 评论 -
程序3-4 竖式问题
竖式问题。找出所有形如abc*de(三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后应有一个空行。最后输出解的总数。具体格式见样例输出(为了便于观察,竖式中的空格改用小数点显示,但你的程序应该输出空格,而非小数点)。样例输入:2357样例输出:<1>..775...原创 2020-01-14 20:33:46 · 202 阅读 · 0 评论 -
程序3-3 蛇形填数
蛇形填数。在n*n方阵里填入1,2,...,n*n,要求填成蛇形,输入为一个整数n,输出为一个方阵。例如n=4时方阵为: 10 11 12 1 9 16 13 2 ...原创 2020-01-14 20:06:40 · 252 阅读 · 0 评论 -
习题2-6 排列
memset() 函数介绍:每种类型的变量都有各自的初始化方法,memset() 函数可以说是初始化内存的“万能函数”,通常为新申请的内存进行初始化工作。它是直接操作内存空间,mem即“内存”(memory)的意思。该函数的原型为:#include <string.h>void *memset(void s, int c, unsigned long n);函数的功能是:将指针...原创 2020-01-14 11:54:37 · 112 阅读 · 0 评论 -
习题 2-5 分数化小数
(模拟保留小数位的过程):思路:这道题主要要注意的是小数的位数需要人工输入,就是模拟保留小数位的过程,具体的思路是先输出整数位和小数点,小数位则通过上一次除后的所得余数再除除数依次类推,到最后一位时要根据下一位的数值来判断是否进位。这里选择题目的样例就是1/6,输出至小数点后4位数,先求出他们的商,既1÷6=0······1。商为0余数为1。那么此时就打印出”0.”来。此时应该算十分位,所以余...转载 2020-01-14 11:32:20 · 166 阅读 · 0 评论