算法
X_Trusher
闲暇时间谢谢博客,随手更新
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode2299. 强密码检验器 II
Leetcode2289:强密码检验器II原创 2023-01-19 23:07:22 · 411 阅读 · 0 评论 -
Luogu-P1036 选数
P1036 选数原题题意题解因为需要从n个数中取出m个进行相加,所以需要求出组合C(n,m)的个数,再对产生的和进行素数的判断。我的解法:利用DFS来从n个数中取出m个数来(PS: 在这里误求成了全排列,导致错误一直灭找到QAQ),要求C(n,m),那么选取的规则可以是这样的:每次选择的数的序号都不会比当前的大,例如,1,2,3中选出2个,那么选了1,就只能选2或3;选了2,就只能选3,而不能选1;同样,选了3,就不能选1和2。所以我在solve中加了一个变量l,来代表序号。solve函原创 2021-02-25 22:21:08 · 197 阅读 · 0 评论 -
luoguP1781 宇宙总统
P1781 宇宙总统原题题意思路简单对字符串大小进行比较:首先比较位数,毫无疑问位数大的代表的数字更大,如果位数相等的话,再依次比较字符串s和ans的各个位的大小AC代码#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#define ll long long#define MAX_INT 2147483647using namesp原创 2021-02-22 17:26:37 · 178 阅读 · 0 评论 -
洛谷P1093--奖学金
P1093 [NOIP2007 普及组] 奖学金原题题意思路此题分三次排序,第一次总分排序,如果总分一样,那么语文分数高者靠前,如果语文分数相同,那么看学号,学号小的名词靠前。我的解法:设置了一个Stu的结构体,将一名同学的总分,学号和语文分数放在其中,再利用qsort对总分进行排序,然后对成绩相同者做相关处理即可。(数组)交换函数:void swap(int *a,int *b){ int tmp = *a; *a = *b; *b = tmp;}qsort原创 2021-02-22 16:58:01 · 441 阅读 · 0 评论 -
(Java)A+B Problem(高精)
A+B Problem(高精度)原题题意思路由于要运算的数a和b的范围远远可以超出int的表示范围,所以需要进行加法的模拟运算,即从个位数开始相加,如果数字之和大于10,那么就要进1,直至最高位。Java代码import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException { StreamTokeniz原创 2021-02-19 21:27:38 · 827 阅读 · 0 评论 -
(Java洛谷)玩具谜题
洛谷P1563 [NOIP2016 提高组] 玩具谜题原题题意思路本题主要是模拟寻找眼镜的过程,通过给出的输入可以明显的发现其中的规律:当小人的朝向和指令的方向异或为0时,就倒着找,如果异或为1,则正着找。在java中,异或的表示方法为 ^ .例如:int n = 0 ^ 1;//结果为1ACjava代码import java.util.*;import java.io.*;public class Main { public static void main(Stri原创 2021-02-16 11:43:44 · 538 阅读 · 4 评论 -
(Java)洛谷——P1957 口算练习题
洛谷 P1957 口算练习题原题链接思路题目难度不大,主要是涉及到Java中字符串的读入问题,经测试,String变量会读取的内容以空格或回车作为结束符,所以题目所要求的读取一行就不能用next()实现,还是要用nextLine()来实现。所以,ts变量的作用就是在读取了第一个整数后将回车存入该变量中,如果没有此变量,那么运行将会报错。Java实现import java.io.*;import java.math.BigInteger;import java.text.DecimalForm原创 2021-02-04 14:39:00 · 638 阅读 · 0 评论 -
(Java)蛇形方阵与杨辉三角
蛇形方阵与杨辉三角PS:原题来自洛达蛇形方阵Java代码输入整数n, 输出n*n的蛇形方阵import java.io.*;import java.math.BigInteger;import java.text.DecimalFormat;import java.util.*;public class Main { public static int fabs(int a, int b) { int c = a - b; if (c <原创 2021-01-31 18:44:36 · 267 阅读 · 0 评论 -
洛谷P1009--阶乘之和
洛谷P1009 [NOIP1998 普及组] 阶乘之和题目描述用高精度计算出 S = 1!+2!+3!+⋯+n!(0n≤50)。其中“!”表示阶乘,例如:5!=5×4×3×2×1。分析由于n 的范围在0~50之间,所以当n太大时,int类型表示的范围就会无法达到要求,变为负数,所以在java中表示大数的话,可以用BigInteger类。Java代码import java.io.*;import java.math.BigInteger;import java.text.DecimalFor原创 2021-01-28 11:33:38 · 681 阅读 · 0 评论 -
洛谷 P5714 【深基3.例7】肥胖问题
P5714 【深基3.例7】肥胖问题题目描述BMI 指数是国际上常用的衡量人体胖瘦程度的一个标准,其算法是 m/h^2(40≤m≤120,1.4≤h≤2.0),其中 m 是指体重(千克),h 是指身高(米)。不同体型范围与判定结果如下:小于 18.5:体重过轻,输出 Underweight;大于等于 18.5 且小于 24:正常体重,输出 Normal;大于等于 24:肥胖,不仅要输出 BMI 值(使用 cout 的默认精度),然后换行,还要输出 Overweight;现在给出体重和身高数据,原创 2021-01-27 12:36:50 · 1677 阅读 · 0 评论 -
快速排序算法
快速排序定义快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。参考视频快速排序算法参考博客快速排序算法代码...原创 2020-02-09 12:57:56 · 148 阅读 · 0 评论 -
蓝桥杯之凑算式
凑算式题目 B DEFA + --- + ----- = 10 C GHI这个算式中AI代表19的数字,不同的字母代表不同的数字。求一共有多少种解法?(29种)思路借鉴自博客文章暴力枚举(略)DFS(深度优先搜索)总体经过9次遍历visit为遍历数组,初始化visit[]为0当遍历到visit[i]为1,便将该i位置的a数组设为遍历数...原创 2020-02-08 16:04:18 · 286 阅读 · 0 评论 -
哈夫曼编码
哈夫曼编码给出一个字符串,求其最优哈夫曼编码。思路:可以根据给出的字符串,分析其中出现过最多的单个字符是什么,并采用哈夫曼树的方式构建一颗虚拟的树,不需要真实构造,只是利用其思想,即出现字符多的其编码方式简单,字符出现少的编码方式复杂一点。PS:代码用到了最优队列来模拟哈夫曼树。 /* 哈夫曼编码 */ #include <bits/stdc++.h> usin...原创 2019-06-02 10:32:08 · 167 阅读 · 0 评论 -
Climbing the Leaderboard
Climbing the Leaderboard--HankRank题意代码这是hackrank上的一道medium题目题意大体题意如下:代码#include<bits/stdc++.h>using namespace std;int main(){ int m,n,i,j,res = 0; cin >> m; int scores...原创 2019-05-11 18:49:41 · 383 阅读 · 0 评论 -
两个有序数组的合并(不创建新的数组)时间复杂度O(n)
题目:给定两个有序数组a[m],b[n],要求将这两个数组合并陈一个数组,时间复杂度最大为O(n),辅助空间为O(1)分析:设sum控制合并后的数组,a1控制合并前a数组,b1控制合并前b数组,sum,a1,b1都是从最后一位开始的(这句不理解的话直接看代码)这个题用传统的归并排序的话不符合要求,所以要换种方法,所以:可以将a数组扩展成m+n的长度,然后从a,b地最后一个开始比...原创 2019-04-10 20:54:58 · 1789 阅读 · 0 评论
分享