
蓝桥杯
m714星云
渣渣
展开
-
算法训练 开心的金明
关注微信公众号 CodeFun 更多题解思路状态转移方程如下:dp[i+1][j]dp[i+1][j]dp[i+1][j]从0到i这i+1个物品中选出总重量不超过j的物品时总价值的最大值dp[0][j]=0dp[0][j]=0dp[0][j]=0dp[i+1][j]={dp[i][j](j<w[i])max(dp[i][j],dp[i][j−v[i]]+v[i]×w[i]...原创 2020-01-18 22:01:06 · 311 阅读 · 0 评论 -
算法训练 明明的随机数
关注微信公众号:CodeFun 看更多题解思路因为数据很小,所以可以开一个1010的数组(初始化为0),将输入数据标记为1。然后统计第一次标记为1的个数然后从1到1000循环一遍,输出值为1的数code#include <bits/stdc++.h>using namespace std;int a[1010];int main(){ int n,x,c...原创 2020-01-18 17:51:15 · 236 阅读 · 0 评论 -
算法训练 FBI树
关注微信公众号:CodeFun 看更多题解思路利用递归的思想,分位左一半右一半去判断子串的类型注意点是每次递归的边界条件和结束条件最后按照后序遍历的思想来,递归完左子串和右子串后输出当前子串的类型code#include <bits/stdc++.h>using namespace std;string s;void getFBI(int st,int ed)...原创 2020-01-18 11:30:26 · 417 阅读 · 0 评论 -
算法训练 最大最小公倍数
微信公众号:CodeFun思路奇数的时候,n,n-1,n-2无公因子,直接相乘便是最大的最小公倍数偶数的时候,需要考虑因子为2的情况,但是n-1,n-3这两个最大的奇数需要保留,但是n-3和n可能会有公因子3的情况,所以可能的情况会有n-1,n-3,n或者 n-1,n-2,n-3两者情况举例:考虑6,相邻情况为 2 3 4 5 6 ,最大的最小公倍数为60(3,4,5)而不是30(3,...原创 2020-01-16 19:54:44 · 277 阅读 · 0 评论 -
算法训练 区间k大数查询
微信公众号:CodeFun思路注意题目中给出的数据是无序的所以在给定区间询问的时候,可以将数push到优先队列中,查询到该区间中第k大数,也可以排序后在该区间查询第k大数code#include <bits/stdc++.h>using namespace std;int main(){ int n,x,y,z,t; cin>>n; ...原创 2020-01-16 19:09:31 · 188 阅读 · 0 评论 -
算法训练 P0505
思路在1,2,3,4,5,6,7,8,9中九个数里面,可以产生后尾0的只有包含2因子的数和5相乘的结果,所以计算出阶乘中2与5的因子个数,利用因子个数差和其它的因子相乘%10就可以产生非零的数5的因子怎么乘最后%10都是52的因子相乘最后%10 有四种情况2 4 8 6 。不能直接乘,因为数会溢出code#include <bits/stdc++.h>using nam...原创 2020-01-15 11:35:59 · 142 阅读 · 0 评论 -
基础练习 完美的代价
思路需要弄清楚什么时候impossible?1.当字符串的个数为偶数的时候,一旦有字符的个数是奇数个数就不会构成回文串2.当字符串个数为奇数的时候,可以有字符出现奇数个数,前提是字符串最中间那位是出现奇数位个数的那个字符(只有一个)当出现奇数位的个数的时候,不需要将奇数位的字符移动到中间去。这也就是题目里面提示的贪心思想,即碰到奇数个数的字符最后将其移动到中间去。避免移动到中间后每次移动...原创 2020-01-14 19:00:03 · 141 阅读 · 0 评论 -
算法训练 相邻字母
思路26个字母一个循环code#include <bits/stdc++.h>using namespace std;int main(){ char c; cin>>c; if(islower(c)) cout<<char('a'+(c-'a'+25)%26)<<c<<char('a'+(c-'a'+2...原创 2019-12-27 19:15:51 · 760 阅读 · 0 评论 -
算法训练 求先序排列 递归
题目链接思路在中序序列循环一遍找到根节点,根节点其实就是后序遍历的最后一个节点。这样就将中序遍历划分为左右子树,在左右子树里面分别重复之前的操作。code#include <bits/stdc++.h>using namespace std;string in,post;void preorder(int root,int st,int ed){ if(st>...原创 2019-12-27 18:59:44 · 260 阅读 · 0 评论 -
算法训练 王、后传说 (n皇后问题) 回溯
思路考察搜索给定一个棋盘,设左上角的坐标为原点(1,1)(1,1)(1,1),已经放好的皇后坐标为(i,j)(i,j)(i,j),不同行,不同列,不同斜线的新皇后坐标为(r,c)(r,c)(r,c),则关系如下:横向i≠ri\ne ri=r纵向j≠cj\ne cj=c斜对角从(i,j)(i,j)(i,j)到(r,c)(r,c)(r,c)有四种情况(i+a,j+a),(i−a,j...原创 2019-12-27 14:00:40 · 541 阅读 · 0 评论 -
算法训练 s01串 递归
题目链接思路用两个字符串,第一个字符串是原本的,第二个字符串放变换后的。每次将变换好的复制给原来的,变换好的晴空,循环n次。code#include <bits/stdc++.h>using namespace std;string ans,s="0";void dfs(int n){ if(n==0) return; for(int i=0;i<s...原创 2019-12-27 13:17:30 · 239 阅读 · 1 评论 -
基础练习 Sine之舞 递归
题目链接思路规律的输出用递归。code#include <bits/stdc++.h>using namespace std;int x,y,n;//因为Sn和An是反着的,y要根据每次Sn递归的上界更改void dfs(int n){ if(n==0) return; cout<<"sin("; cout<<y-n+1;...原创 2019-12-27 13:01:09 · 200 阅读 · 0 评论 -
算法训练 幂方分解 递归
题目链接思路这种规律的格式输出利用递归方法解决。code#include <bits/stdc++.h>using namespace std;void dfs(int n){ if(n==0){ cout<<'0'; return; } int cnt=0; for(int i=31;i>=...原创 2019-12-27 12:08:50 · 170 阅读 · 0 评论 -
算法训练 字符串变换 模拟
思路前面四步都是简单的。第五步可以考虑用两个指针,第一个指针定位,第二个指针从当前位置开始,找到最长连续的字母个数,如果子串长度大于等于2了,说明该子串需要缩写。code#include <bits/stdc++.h>using namespace std;int main(){ int n; string s; cin>>n>...原创 2019-12-26 21:52:15 · 235 阅读 · 0 评论 -
基础练习 2n皇后问题 搜索
思路考察搜索给定一个棋盘,设左上角的坐标为原点(0,0)(0,0)(0,0),已经放好的皇后坐标为(i,j)(i,j)(i,j),不同行,不同列,不同斜线的新皇后坐标为(r,c)(r,c)(r,c),则关系如下:横向i≠ri\ne ri=r纵向j≠cj\ne cj=c斜对角从(i,j)(i,j)(i,j)到(r,c)(r,c)(r,c)有四种情况(i+a,j+a),(i−a,j...原创 2019-12-26 18:20:58 · 218 阅读 · 0 评论