自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 完美的代价-题解(C++代码)超详细解释

题目描述:回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。交换的定义是:交换两个相邻的字符例如mamad第一次交换 ad : mamda第二次交换 md : madma第三次交换 ma : madam (回文!完美!)输入:第一行是一个整数N,表示接下来的字符串的长度(N < = 8000)第二行是一个字符串,长度为N.只包含小写字母

2020-08-21 16:22:39 576

原创 大数加法【蓝桥杯】【算法提高VIP】

原题链接:蓝桥杯算法提高VIP大数加法此题严重卡 getchar()or gets()输入1.ch=getchar()输入记录字符参考代码:#include<bits/stdc++.h>using namespace std;int a[1005];int b[1005];int c[1005];int main(){ int i=0,len1,len2,j=0; char ch; int temp; while((ch=getchar())!=

2020-08-19 09:53:39 190

原创 [蓝桥杯][基础练习]阶乘计算——题解(C语言)

题目:阶乘计算C语言网链接解题思路:参考代码:#include<stdio.h>#include<stdlib.h>const int maxn=1e5+5;int a[maxn];int main(){ int n,c,d=0; scanf("%d",&n); //初始化 a[0]=1;//important important important //开始计算阶乘 for(int i=2;i<=n;i+

2020-08-19 09:37:54 1124 3

原创 [蓝桥杯][2015第六届真题]奇怪的数列 —— char数组求解

题目:奇怪的数列——原题链接步骤步骤解析参考代码:虽然这个代码可以ac但是如果输入相同数字超过10之后,会出现bug;#include<stdio.h>#include<string.h>char a[1000];char b[105];int n;int main(){ scanf("%s",&a); getchar(); scanf("%d",&n); while(n--){ int len=str

2020-08-19 09:18:52 255

原创 [蓝桥杯][算法提高VIP]产生数-题解(C语言代码——>详细解答)

解题思路:1.本题出现两个大数,超出整型存储范围,so第一个采用string类来定义后期转换成数字即可,第二个是结果输出,若一个数字变换9次则最多需要9^30,需要用高精度乘法计算2.输入:string str;int k//表示变换次数3.利用while循环对flag[][]数组进行初始化,flag[i][j]表示i变换成–>j,将flag[i][j]=1;4.1—>2,2–>3故1—>3可以利用佛洛依德算法进行实现for(int k=1;k<10;k++){

2020-08-18 17:31:33 309

原创 字符串排序—题解(c++代码))

#include<cstdio>#include<vector>#include<algorithm>#include<string>#include<iostream>using namespace std;char s[101];bool cmp(string str1,string str2){ return str1.length()<str2.length();}int main(){ int t;

2020-08-07 19:46:39 565 1

原创 [蓝桥杯][2015年第六届真题]切开字符串-题解(C++代码)

题目:蓝桥杯【2015年六届真题】切开字符串解题思路:1.正回文子串:奇数,且回文数;2.非正回文子串:偶数的回文子串,或 不是回文子串;3.整体把握:在for循环的状态下,首先将字符串s利用substr()分割两个子字符串a,b;a作为前串需求解其正回文子串个数,b作为后串求解其非正回文子串;然后分别将a字符串分割成各个字符串,进行枚举判断是否为正回文子串,利用set进行优化如果此时的字符串已经存在于set中的字符串,不需要将A++;b字符串同理;每次需要更新一下max的结果,直到for循环结束

2020-08-07 19:38:04 412

原创 [蓝桥杯][2015年第六届真题]密文搜索-题解(C语言代码)

解题思路:1.将s从下标i为0—>下标len-8,截取长度为substr(i,8)存放在类型为string的st集合中2.输入n行字符串s密码,需要获取字符串s的所有排列。利用sort对s进行升序排列,判断是否在集合st中;然后用STL中的next_permutation()会获取[first,last)所标识之序列的下一个排列组合,如果没有下一个排列组合,便返回false否则返回true。3.next_persumatation()算法思想:(1)首先从最尾端开始往前寻找两个相邻元素,令第一

2020-08-07 19:34:12 354

原创 表格详细解答——》动态规划求解0/1背包问题

1.动态规划基本思想:(1)将原始问题划分一系列子问题;(2)求解每个子问题仅一次,并将其结果保存在一个表中,以后用到时直接存取,不重 复计算,节省计算时间;(3)自底向上计算。2.解题四个部分:(1)首先确定状态需要2个意识:① 最后一步(最优策略中使用的最后一个物品M-wl的最大价值)② 化成子问题(知道物品能不能装到j-w[i]的最大价值)(0<=j<=M)(2)转移方程:dp[i][j]=max(dp[i-1][j-w[i]]+pi,dp[i-1][j])(0&lt.

2020-05-13 17:25:02 607

原创 上岸后的心得

已经有一年没有写博客了,都不知道咋写了。记录一下此时此刻的心情!现在一年的学习和坚持,一志愿已成功上岸。在这一年的时间里,学习了政治,英语,数学,专业课,过程很枯燥还是坚持下来了。记得后期晚上零下几度,图书馆闭馆之后又会和小伙伴去考研自习室外面背英语作文和肖四。那一段时光,虽然非常辛苦但是还是值得回味的。近期有点颓废,我已经在反省自己。给自己的Tips:这个世界没有什么捷径,如果有,那一定是坚持!应该把最好的青春,最美的青春留给我们的梦想!PS:#毕业季...

2022-04-06 23:37:00 110

原创 素数判断——时间复杂度比较小

【问题描述】给定整数n,请问n以内有多少个素数?限制条件:n<=106【输入形式】 输入n【输出形式】 输出n以内素数的个数【样例输入】 11【样例输出】 5#include<iostream>using namespace std;int n,count;bool panduan(int x){ int flag=0; for(int j=2;j*j<=x;j++){ if(x%j==0){ flag=1; return fa

2020-11-23 22:46:00 763 1

原创 一个字符串删除判断是否达到两字符匹配

【问题描述】输入两个字符串s和t,判断是否可以从t中删除0个或多个字符(其他字符顺序不变),得到字符串s。限制条件:字符串s和t的长度不能超过1024【输入形式】 输入两行数据,第一行输入字符串s,第二行输入字符串t。【输出形式】 输出yes或no【样例输入】bceabcde【样例输出】 yes#include<bits/stdc++.h>using namespace std;int f[1024],flag; int main(){ string s1;

2020-11-23 22:43:36 635

原创 2020蓝桥杯C/C++B组第二场——看看有没有你需要的题目

此题可通过数学观察分析思想就可以求得答案:PS:欢迎小伙伴多多交流!!!

2020-10-26 19:53:22 502

原创 第十一届蓝桥杯大赛软件类省赛第二场——JAVA B组题目

ABCDEFGHIJPS:欢迎小伙伴们多多交流!!

2020-10-26 19:39:29 519

原创 高精度乘法——题解

题目链接:信息学奥赛一本通:高精度乘法输入:363输出:108#include<bits/stdc++.h>using namespace std;const int maxn=1e4+5;int a[maxn],b[maxn];int main(){ string sa,sb; int len1,len2; int c[20005]={0}; cin>>sa>>sb; len1=sa.length(); len2=sb.length()

2020-09-02 11:30:39 129

原创 【字符串的查找删除】——C语言实现

题目描述给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。输入输入只有1组数据。输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。输出删除输入的短字符串(不区分大小写)并去掉空格,输出。思路1.输入:第一行为短字符串(不含空格),可以利用scanf("%s")输入,区别一下gets和scanf;接下来,就是要输入若干字符串,(此时的字符串可能含有空格)可以通过while(gets(a)!=NULL)来判断。2.内部思路:本题涉及模式

2020-09-02 11:17:16 1145

原创 【明明的随机数】——信息学奥赛一本通

题目描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入有2行,第1行为1个正整数,表示所生成的随机数的个数:N;第2行有N个用空格隔开的正整数,为所产生的随机数。输出也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2

2020-09-02 11:01:30 162

原创 汽水瓶———C语言实现

题目描述有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输入输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),表示小张

2020-09-02 10:52:20 651

原创 立个flag于2020.08.27

如果时间允许,且有知识点值得学习就发布博客。记录学习中的知识,便于查看。

2020-08-27 21:08:37 89

原创 回文数——(超清晰解答)

题目:回文数信息学奥赛一本通-T1309题目描述:若一个数(首位不为零)从左向右读与从右向左读都是一样,我们就将其称之为回文数。例如:给定一个 10进制数 56,将 56加 65(即把56从右向左读),得到 121是一个回文数。又如,对于10进制数87:STEP1: 87+78= 165STEP2: 165+561= 726STEP3: 726+627=1353STEP4:1353+3531=4884在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。写一个程序,给定一

2020-08-21 21:25:44 1469

原创 【蓝桥杯】【基础练习VIP】高精度加法getchar()输入

题目:高精度加法链接注意事项:当进行置换时,for(int i=0;i<len/2;i++)参考代码:#include<bits/stdc++.h>using namespace std;int a[105];int b[105];int c[105];int main(){ int i=0,len1,len2,j=0; char ch; int temp; while((ch=getchar())!='\n'){ temp

2020-08-19 09:33:20 129

原创 sort函数实现——字符串内排序

本题可以直接利用c++标准库中的排序函数,比较大小可以利用冒泡排序和选择排序,但其时间复杂度为O(n^2)执行效率不高。sort()算法思想类似于快排的方法,时间复杂度为O(n*logn).1.sort(起始地址,结束地址,排序方法)如果没有排序方法,默认为升序排列,实现从小到大#include<bits/stdc++.h>using namespace std;char s[205];int main(){ //利用c++输入若干字符串时,采用cin.getline(s,长

2020-08-07 20:01:02 2410

原创 [信息学奥赛一本通-T1310]车厢重组-题解(C++代码)

将每组车厢节数从小到大进行排序,相邻两个元素进行交换,此题可采用冒泡算法,i次交换的次数等于前i-1次交换的次数#include<iostream>#include<cstring>using namespace std;int a[10005];int f[10005];int main(){ int N,t; cin>>N; int sum; memset(f,0,sizeof(f)); for(int i=1;i&

2020-05-13 17:38:06 863

原创 [信息学奥赛一本通-T1314]过河卒-题解

思考:1.判断A(0,0)到达B(n,m)可以有两种情况:A点的方向:(1)从B点上方来(2)从B点左边来当n!=0&&m!=0时:F(i,j)=F(i-1,j)+F(i,j-1);2.考虑边界问题:i=0时,F(i,j)+=F(i,j-1),只能从左边来j=0时,F(i,j)+=F(i-1,j),只能从上面来3.用一个二维数组dir[8][2]表示马可以走的8个方向,第1列表示x的移动坐标,第2列表示y的移动坐标4.对于马的坐标和马的控制点,我们需要用一个二维数组d[25]

2020-05-13 17:37:05 633 2

原创 [信息学奥赛一本通-T1179]奖学金-题解(C++代码)

千万别忘记考虑当n<5的情况#include<iostream>#include<algorithm>using namespace std;struct Student { int sno; int score[3]; int sum=0;};bool cmp(Student x,Student y){ if(x.sum!=y.sum){ return x.sum>y.sum; } if(x.

2020-05-13 17:35:48 1313 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除