- 博客(16)
- 收藏
- 关注
原创 缩位求和
缩位求和题目描述在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确。比如:248 * 15 = 3720把乘数和被乘数分别逐位求和,如果是多位数再逐位求和,直到是1位数,得2 + 4 + 8 = 14 ==> 1 + 4 = 5;1 + 5 = 65 * 6而结果逐位求和为 35 * 6 的结果逐位求和与3符合,说明正确的可能性很大!!(不能排除错误)请你写一个计算机程序,对给定的字符串逐位求和:输入输入为一个由数字组成的串,表示n位数(n<1000);
2021-02-23 21:52:39 151
原创 map
mapmap翻译为映射,也是常见的STL容器。例如整型数组就是一个int到int的映射,字符串为int到char的映射。但是,无论是什么类型,它总是将int型映射到其他类型。这时,就可以用到map,因为map可以将任何基本类型,(包括STL容器)映射到任何基本类型(包括STL容器)。map的定义map<typename1,typename2>mp;map需要确定映射前类型(键key)和映射后类型(值value)但是如果是字符串到整型的映射,必须是string而不是char数组map
2021-01-26 21:49:52 127
原创 洛谷 P1082 同余方程
P1082 同余方程题目说明:主要思路:扩展的欧几里德:已知 a,b 求 一组解 x,y 满足 ax+by = gcd(a, b) 这个公式(即扩展欧几里得算法)以下这篇文章写的非常好,拯救了我这个小垃圾。扩展的欧几里德根据这篇文章我们可以利用递归函数求解函数如下:void exgcd(int a,int b){ if(b==0) { x=1; y=0; return; } exgcd(b,a%b);
2021-01-18 22:20:09 158
原创 Talent Show G
Talent Show G题目网址:https://www.luogu.com.cn/problem/solution/P4377题目思路:把牛当作物品,重量当作cost,才艺值当作value。就是一道裸的0/1背包题了。dp[i][j]表示,前ii头牛,重量恰好为jj,可以取到的最大比值(ratio)。最后的答案就是:(其中C为题目中给的W,weight[i]为题目中给的w[i]。)代码:```cpp在这里#include<bits/stdc++.h>#define I
2021-01-17 22:44:50 335
原创 跳台阶
跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。输入输出样例:题目分析,假设f[i]表示在第i个台阶上可能的方法数。逆向思维。如果我从第n个台阶进行下台阶,下一步有2中可能,一种走到第n-1个台阶,一种是走到第n-2个台阶。所以f[n] = f[n-1] + f[n-2].代码如下:class Solution {public:int jumpFloor(int target) {int a = 1;int b
2021-01-16 23:40:01 127
原创 置换群
置换群置换实质为映射,是可逆的。Burnside引理:对于一个置换f,若一个着色方案s经过置换后不变,称s为f的不动点。将f的不动点数目记为C(f),则可以证明等价类数目为所有C(f)的平均值。Polya引理:例题一个2*2的方阵,用两种颜色涂色,求不同的着色方案个数(若通过旋转可相同则算为一种)。首先对格子标号1 2 3 4顺时针旋转 0° a1 = (1)(2)(3)(4)顺时针旋转 90° a2 = (1 4 3 2)顺时针旋转 180° a3 = (1 3)(2 4)
2021-01-15 23:46:51 343
原创 凸包
凸包1. 定义:凸多边形:过多边形的任意一边做一条直线,如果其他各个顶点都在这条直线的同侧,则把这个多边形叫做凸多边形。凸包即构成凸多边形的点构成的集合,点称为极点,边称为极边。2.求解凸包的高效算法:...
2021-01-15 01:15:53 623
原创 贪心算法
贪心算法贪心算法:在贪心算法中,我们要逐步构造一个最优解。每一步,我们都在一定的标准下,做出一个最优决策。做出决策所依据的标准称为贪心准则。即贪心思想指的是寻找局部最优解,然后通过推导局部最优解能够最后导出整体最优解。局部最优解:即不从整体最优上加以考虑而设计算法,做出的仅是在某种意义上的局部最优解。特点:1、可行性:即它必须满足问题的约束。2、局部最优:他是当前步骤中所有可行选择中最优的局部选择。3、无后效性:即未来与过去无关,只和现在有关。...
2021-01-12 00:07:34 299
原创 洛谷 P1803 凌乱的yyy
P1803 凌乱的yyy题目网址:https://www.luogu.com.cn/problem/P1803题目描述:给出比赛的时间段,求能够参加比赛的最大数目。输入输出:输入:第一行是一个整数 n ,接下来 n 行每行是 2 个整数 a,b,表示比赛开始、结束的时间。输出:一个整数即能够最多参加比赛的场数。思路分析:此题可理解为不重合的放置线段,求能放置线段的最大个数,要利用贪心的策略思想,获取最好的结果。我的想法是将线段按照右端点的大小进行排序,首先结束时间最早的比赛应该参加,然后遍
2021-01-10 20:11:58 731
原创 关于排序(杂记)
排序算法:关于排序,一些基础的排序方法(部分)比如:冒泡排序:从第一个元素开始依次比较,若不符合所需顺序则进行交换,然后再从第一个开始遍历,直到整个数列排列结束。时间复杂度为O(n^2)较高。快速排序:先找一个数作为基准数,然后从两边查找交换,使这个数一边的数都小于这个数,另一边的数都大于这个数,然后在这个基准数的两边重复此过程,完成排序。选择排序:每一此遍历从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。排序函数:手打代码肯定
2021-01-09 23:04:17 188 1
原创 洛谷 P1093 奖学金
P1093 奖学金题目网址:https://www.luogu.com.cn/problem/P1093题目描述:将给出的n组成绩数据排序,优先按成绩总和由高到低排序,其次按语文成绩由高到低排序,最后按照序号从小到大排序。输入排名靠前的五组数据编号及数据总和。输入输出格式:输入:第1行为一个正整数n;第2到n+1行,每行有3个用空格隔开的数字,第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。输出:共5行,每行是两个用空格隔开的正整数,依次表示前5名学生的学号和总分。思
2021-01-08 23:18:57 212
原创 洛谷 P3858 路标设置
P3858 路标设置题目网址:https://www.luogu.com.cn/problem/P3853题目描述:我们把公路上相邻路标的最大距离定义为该公路的“空旷指数”。给出增设的路标数,求最小的空旷指数。输入格式:第1行包括三个数L、N、K,分别表示公路的长度,原有路标的数量,以及最多可增设的路标数量。第2行包括递增排列的N个整数,分别表示原有的N个路标的位置。路标的位置用距起点的距离表示,且一定位于区间[0,L]内。输出格式:输出1行,包含一个整数,表示增设路标后能达到的最小“空旷
2021-01-07 23:43:49 665
原创 洛谷 P2440 木材加工
P2440 木材加工题目网址:https://www.luogu.com.cn/problem/P2440题目描述给定一批木材的数量以及每一根的长度,给出要求获得小段木头的数量,求出能获得的小段木头的最大长度。输入输出格式输入格式:第一行是两个正整数N和K(1 ≤ N ≤ 100000,1 ≤ K ≤ 100000000),N是原木的数目,K是需要得到的小段的数目。接下来的N行,每行有一个1到100000000之间的正整数,表示一根原木的长度。输出格式:能够切割得到的小段的最大长度。如果连
2021-01-06 21:55:18 211
原创 洛谷 P1719最大加权矩形
P1719最大加权矩形题目描述矩阵的每一个元素都有一权值,权值定义在整数集上。从中找一矩形,矩形大小无限制,是其中包含的所有元素的和最大 。即求最大加权矩形。输入输出格式输入格式:第一行:n,接下来是n行n列的矩阵。输出格式:最大矩形(子矩阵)的和。思路分析此题要将二维的矩阵压缩成一维,然后对压缩后的序列求最大子序列即可。压缩方法:将需压缩的行 对应列的元素相加 存入新的数组即可。如本题例子:0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2第一二行
2021-01-05 20:51:10 589 1
原创 洛谷P1115最大子段和
洛谷P1115: https://www.luogu.com.cn/problem/P1115本题是想求出给定序列的最大子序列和,根据题意,可以从第一个数开始遍历,每次将此数a[i],与此数与之前保留的和的和(a[i]+b[i]-1)比较取较大值,再将b[i]与所保存最大值ans比较,从而求解。开始做题时因为此题是在前缀和的题单中,所以一直把想法局限在利用前缀和求解,利用前缀和固然能求出,但翻阅题解后,发现此方法更加精妙,代码更加简化易懂。详见代码如下:#include<bits/stdc+
2021-01-04 23:49:31 1501 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人