- 博客(22)
- 收藏
- 关注
原创 PTA L2-001 紧急救援 迪杰斯特拉算法 邻接表存储
PTA 紧急求援 迪杰斯特拉 邻接表存储 第二行给出N个正整数,其中第i个数是第i个城市的救援队的数目,数字间以空格分隔。随后的M行中,每行给出一条快速道路的信息,分别是:城市1、城市2、快速道路的长度,中间用空格分开,数字均为整数且不超过500。作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。套用Dijkstra求最短路径的模板,在模板的求解最短路径的基础上做修改。
2023-01-05 17:15:56 147
原创 21天好习惯第一期—21
力扣日常切题1.有效的括号题解:用栈stack去做就简单多了AC代码如下:class Solution {public: bool isValid(string s) { stack<char>k; int n=s.size(); k.push(s[0]); for(int i=1;i<n;i++) {if(k.empty()) k.push(s[i]); elseif((k.top()=='('&
2021-11-11 23:49:41 364
原创 21天好习惯第一期—20
力扣 LeetCode日常切题1.值相等的最小索引题解:此题比较简单,一次循环找到符合条件的就returnAC代码如下:class Solution {public: int smallestEqual(vector<int>& nums) { for(int i=0;i<nums.size();i++) { if(i%10==nums[i]) retu...
2021-11-11 19:36:09 233
原创 21天好习惯第一期—19
力扣日常切题1.统计字符串中的元音子字符串题解:三重循环暴力AC代码如下:class Solution {public: int countVowelSubstrings(string word) { int sum=0; for(int i=0;i<word.size();i++){ for(int j=i+4;j<word.size();j++) { int a=0,e=0,s=0,o=.
2021-11-10 22:51:59 377
原创 21天好习惯第一期—18
牛客切SQL题1.创建一张新表AC代码如下:create table user_info_vip(id int(11) not null primary key auto_increment comment '自增ID',uid int(11) not null unique key comment '用户ID',nick_name varchar(64) comment '昵称',achievement int(11) default 0 comment '成就值',le.
2021-11-09 23:27:53 484
原创 21天好习惯第一期—17
牛客习题 ——差分数组1.空调遥控题解:可以把每个人适宜的温度视为一个区间,那么题目就是要求一个点覆盖最多的区间,区间可以用查分求,然后循环一遍就好了AC代码如下:#include <bits/stdc++.h>using namespace std;const int N=1000005;int n,p,a[N],x,maxn,now;int main()...
2021-11-08 22:50:10 66
原创 21天好习惯第一期—16
牛客刷题SQL1.SQL8删除记录(三)当你不再需要该表时, 用 drop;当你仍要保留该表,但要删除所有记录时, 用 truncate;当你要删除部分记录时(always with a WHERE clause), 用 delete.AC代码如下:TRUNCATE table exam_record2.SQL6删除记录(一)这题要用到TIMESTAMPDIFF(unit,begin,end);TIMESTAMPDIFF函数返回begin-end的结果,其中be...
2021-11-07 17:30:06 71
原创 21天好习惯第一期—15
牛客小白月初赛4 ——题解1.A——数字游戏题解:1.x的二进制有奇数个1且最低位为0则操作数为1的个数乘以2再加上1。2.x的二进制有奇数个1且最低位为1则操作数为1的个数减去1再乘以2再加上1。3.x的二进制有偶数个1且最低位为0则操作数为1的个数乘以2。4.x的二进制有偶数个1且最低位为1则操作数为1的个数减去1再乘以2。最后特别注意一定不能用cin和cout,要用快速读入...
2021-11-06 19:30:41 76
原创 21天好习惯第一期—14
牛客刷题SQL1.SQL26计算25岁以上和以下的用户数量题解:要进行这道题的查询要用到 If 或 Case 函数,在此就简单讲述以下 if 和 Case 函数的基本用法。IF(expr1,expr2,expr3)expr1 是个判断语句如果expr1=TRUE ,则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值。Case语句有两种形式:第一种评估一个或多个条件,并返回第一个符合条件的结果。 如果没有条件是符合的,则返回ELSE子句.
2021-11-05 17:00:00 113
原创 21天好习惯第一期—13
Codeforces 日常切题1.A. Linear Keyboard题解:给你一个重新排列好的26位字母,计算后一个字符距离前一个字符的距离,两重循环暴力就可以了。AC代码如下:#include <bits/stdc++.h> using namespace std;int main(){ int t; cin>>t; while(t--) { string s; string s1; cin>>s; cin>&
2021-11-04 17:00:00 91
原创 21天好习惯第一期—12
Codeforces 日常切题1.A. Elections题解:在三个数中找出最大的数,然后分别输出这三个数至少要加多少才能大于最大数的值。AC代码如下:#include <bits/stdc++.h>typedef long long ll; using namespace std;const ll mod=1e9+7;inline int gcd(ll a,ll b){if(a%b==0) return b; return gcd(b,a%b);} int m
2021-11-03 22:30:30 272
原创 21天好习惯第一期—11
牛客日常切题1.C——传染病统计暴力就完事AC代码如下:#include <bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--) { int n,a[8]; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; .
2021-11-02 21:47:58 125
原创 21天好习惯第一期—10
学个Python过水题1.神奇的回答AC代码如下:t=int(input())while t: t=t-1 a=int(input()) if a<18 : print(a) else: print("18")2.字节类型AC代码如下:t=int(input());if t<=127: print("byte")elif t<=32767: print("short".
2021-11-01 19:36:34 94
原创 21天好习惯第一期—9
简单三道题1.A——Counting 0 and 1 in stringAC代码如下:#include <stdio.h>int main() {int t; scanf("%d",&t); while(t>0) { int n,i; long long a[60]={1},b[60]={1}; scanf("%d",&n); for(i=0;i<n;i++){a[i+1]=b[i];b[i+1]=a[i]+b[i];}p
2021-10-31 23:11:16 92
原创 21天好习惯第一期—8
快速幂快速幂算法就是快速算底数的n次幂的算法。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。快速幂其实是一个比较固定的一种模板算法,完全可以套用模板。1.瓜瓜的A+B这是一道很基本的要用到快速幂的题目。AC代码如下:#include <bits/stdc++.h>using namespace std;typedef long long ll;ll ksm(ll a,ll b,ll p){ ll ans=1; .
2021-10-30 23:24:47 87
原创 21天好习惯第一期—7
牛客小白月赛391.A—憧憬题解:数学题目,详细见代码。AC代码如下:#include <bits/stdc++.h>using namespace std;int main(){ int n; cin>>n; int a[n][4]; for(int i=0;i<n;i++) { cin>>a[i][0]>>a[i][1]>>a[i][2]>>.
2021-10-29 23:53:01 86
原创 21天好习惯第一期—6
计算机组成原理—IEEE754浮点数四则运算规格化浮点加减运算可按以下步骤进行(1)检测能否简化操作一个简单方法是判断操作数是否为零,当两个操作数中只要有一个为零时,加减运算应当简化。以免执行对阶等不必要的后续操作。(2)对阶对阶的基本规则:阶码小的数向解码大的数对齐,以大的阶码为基准,把小的阶码变大。(3)尾数相加/减当两数的对阶对齐后,两个尾数的原码小数点位置按实际权重对齐,可以让两个尾数做原码加/减运算。(4)结果规格化尾数加减后有可能不符合IEEE754浮点数的尾
2021-10-28 23:42:52 208
原创 21天好习惯第一期—5
2021ICPC 江西省大学生程序设计竞赛(正式赛)题解1.B—Continued Fraction题解:给出两个数a,b之间大的数a去除小的数b,然后记录a除以b的值,再将b赋给a,a除以b的余赋给b。AC代码如下:#include <bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--) { int x,y; .
2021-10-27 23:50:25 146
原创 21天好习惯第一期—4
简述十大经典排序算法—2选择排序选择排序的基本思想是:每次从待排序的文件中选择出排序码最小的记录,将该记录放于已排序文件的最后面一个位置,知道已排序文件记录个数等于初始待排序文件的记录个数为止。以{312,126,272,226,28,165,123}为例子作为排序排序过程如下: 312 126 272 226 28 165 123 28 126 272 226 312 165 123 ...
2021-10-26 23:31:53 89
原创 21天好习惯第一期—3
简述十大经典排序算法排序算法是《算法与数据结构》中比较基本的算法之一。排序算法主要可以分为内部排序和外部排序,这里我们主要讲的是内部排序。常见的内部排序有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。在了解之前先了解一下相关概念吧。1.相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。 时间复杂度:对排序数据的总的操作次数。反映当n变化时,操作
2021-10-25 23:51:40 282 1
原创 21天好习惯第一期—2
21天好习惯第一期—2——算法竞赛中较为实用的C++库函数1.__gcd(a,b);作用:求a和b的最大公约数。一般让我们去求两个数的公约数我们会采用辗转相除法。int gcd(int a,int b){ if(a%b==0) return b; return gcd(b,a%b);}殊不知还有更加简洁的方式去求的最大公约数,那就是采用C++的库函数__gcd(a,b);且看例题:题解:求a和b的最小公倍数(两数相乘除以最大公约数)的结果再加一。.
2021-10-24 21:15:16 2066 1
原创 21天好习惯第一期—1
21天好习惯第一期—1 ——2020ICPC 江西省大学生程序设计竞赛签到题题解1.B题—Apple题意:有N个苹果,要分给M个人,要求每个人必须要分到苹果且每个人分到的苹果数量不相等。首先,我们先求出满足每个人分到的苹果数量不相等时,所需要的苹果数量n的最小值是多少,既然是求苹果数量n的最小值,那么这M个人第一个人只能分到1个苹果、第二个人只能分到2个苹果、第三个人只能分到3个苹果......以此类推,这样才能保证所需要的苹果数量n最小。所以1.当N=n时,是可以满足每个人分到的苹..
2021-10-22 17:27:27 153 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人